Skip to content

Commit 265c2b7

Browse files
committed
Merge branch 'feat/mode-airplane' of github.com:medyo/hackertab.dev into feat/mode-airplane
2 parents 8596e60 + 1b66c20 commit 265c2b7

2 files changed

Lines changed: 65 additions & 18 deletions

File tree

src/features/settings/components/PauseSettings.tsx

Lines changed: 62 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { useState } from 'react'
22
import Select from 'react-select'
33
import Toggle from 'react-toggle'
4+
import { ChipsSet } from 'src/components/Elements'
45

56
type PauseSettingsProps = {
67
onSubmit: (pauseToValue: number) => void
@@ -19,6 +20,8 @@ const pauseOptions: PauseOptionType[] = [
1920

2021
export const PauseSettings = ({ onSubmit }: PauseSettingsProps) => {
2122
const [isPauseChecked, setIsPauseChecked] = useState(false)
23+
const [pauseValue, setPauseValue] = useState(0)
24+
const [isCustomInput, setIsCustomInput] = useState(false)
2225
const [selectedNumber, setSelectedNumber] = useState('')
2326
const [selectedPeriod, setSelectedPeriod] = useState<PauseOptionType>(pauseOptions[0])
2427

@@ -27,8 +30,11 @@ export const PauseSettings = ({ onSubmit }: PauseSettingsProps) => {
2730
}
2831
const onSubmitClick = () => {
2932
try {
30-
let pauseValue = parseInt(selectedNumber) * selectedPeriod.value
31-
if (pauseValue <= 0) {
33+
let value = pauseValue
34+
if (isCustomInput) {
35+
value = parseInt(selectedNumber) * selectedPeriod.value
36+
}
37+
if (value <= 0) {
3238
throw Error('Invalid value')
3339
}
3440
const futureDate = new Date(new Date().getTime() + pauseValue * 60000)
@@ -38,31 +44,69 @@ export const PauseSettings = ({ onSubmit }: PauseSettingsProps) => {
3844
}
3945
}
4046

47+
const onChipsChange = (selectedChip) => {
48+
let value = parseInt(selectedChip.value)
49+
if (value === -1) {
50+
setPauseValue(0)
51+
return setIsCustomInput(true)
52+
}
53+
setIsCustomInput(false)
54+
setPauseValue(value)
55+
}
4156
return (
4257
<div className="settingRow">
4358
<p className="settingTitle">Pause App</p>
4459
<div className="settingContent">
4560
<Toggle checked={isPauseChecked} icons={false} onChange={onPauseAppChange} />
61+
4662
{isPauseChecked && (
4763
<div className="pauseFormWrapper">
48-
<div className="pauseForm">
49-
<input
50-
type="number"
51-
value={selectedNumber}
52-
onChange={(e) => setSelectedNumber(e.target.value)}
53-
// value={rssUrl || ''}
54-
// onChange={(e) => setRssUrl(e.target.value)}
55-
placeholder="Number"
56-
/>
57-
<Select
58-
value={selectedPeriod}
59-
options={pauseOptions}
60-
isClearable={false}
61-
isSearchable={false}
62-
classNamePrefix={'hackertab'}
63-
onChange={(newValue) => setSelectedPeriod(newValue as PauseOptionType)}
64+
<div className="pauseChips">
65+
<ChipsSet
66+
className={'noMargin alternative-color'}
67+
canSelectMultiple={false}
68+
options={[
69+
{
70+
label: '30 Minutes',
71+
value: '30',
72+
},
73+
{
74+
label: '1 Hour',
75+
value: '60',
76+
},
77+
{
78+
label: '1 Day',
79+
value: '1440',
80+
},
81+
{
82+
label: 'Custom',
83+
value: '-1',
84+
},
85+
]}
86+
defaultValues={['60']}
87+
onChange={(_, selectedChips) => {
88+
onChipsChange(selectedChips[0])
89+
}}
6490
/>
6591
</div>
92+
{isCustomInput && (
93+
<div className="pauseForm">
94+
<input
95+
type="number"
96+
value={selectedNumber}
97+
onChange={(e) => setSelectedNumber(e.target.value)}
98+
placeholder="Number"
99+
/>
100+
<Select
101+
value={selectedPeriod}
102+
options={pauseOptions}
103+
isClearable={false}
104+
isSearchable={false}
105+
classNamePrefix={'hackertab'}
106+
onChange={(newValue) => setSelectedPeriod(newValue as PauseOptionType)}
107+
/>
108+
</div>
109+
)}
66110
<div className="buttonWrapper">
67111
<button className="pauseButton" onClick={onSubmitClick}>
68112
Done

src/features/settings/components/settings.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,10 @@ Select styles
207207
.pauseFormWrapper {
208208
margin: 6px 0 0 6px;
209209
}
210+
.pauseChips {
211+
margin: 8px auto;
210212

213+
}
211214
.pauseForm {
212215
display: flex;
213216
flex-direction: row;

0 commit comments

Comments
 (0)