-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSettingsModal.tsx
39 lines (38 loc) · 1.31 KB
/
SettingsModal.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import {HARD_MODE_DESCRIPTION, HIGH_CONTRAST_MODE_DESCRIPTION} from '../../constants/strings';
import {
useGlobalContext,
useToggleDarkMode,
useToggleHardMode,
useToggleHighContrastMode,
} from '../../context/GlobalContext';
import {ModalInstanceProps} from '../../types';
import {BaseModal} from './BaseModal';
import {SettingsToggle} from './SettingsToggle';
export const SettingsModal: React.FC<ModalInstanceProps> = props => {
const {
settings: {isHardMode},
theming: {isDarkMode, isHighContrastMode},
} = useGlobalContext();
const toggleHardMode = useToggleHardMode();
const toggleDarkMode = useToggleDarkMode();
const toggleHighContrastMode = useToggleHighContrastMode();
return (
<BaseModal title='Settings' {...props}>
<div className='flex flex-col mt-2 divide-y'>
<SettingsToggle
settingName='Hard Mode'
flag={isHardMode}
handleFlag={toggleHardMode}
description={HARD_MODE_DESCRIPTION}
/>
<SettingsToggle settingName='Dark Mode' flag={isDarkMode} handleFlag={toggleDarkMode} />
<SettingsToggle
settingName='High Contrast Mode'
flag={isHighContrastMode}
handleFlag={toggleHighContrastMode}
description={HIGH_CONTRAST_MODE_DESCRIPTION}
/>
</div>
</BaseModal>
);
};