|
1 | | -import React, { useCallback } from 'react' |
| 1 | +import React, { useMemo } from 'react' |
2 | 2 | import { Stack, Toggle } from 'office-ui-fabric-react' |
3 | 3 | import { useTranslation } from 'react-i18next' |
4 | 4 |
|
5 | 5 | import { StateWithDispatch } from 'states/stateProvider/reducer' |
6 | | -import { toggleAddressBook } from 'states/stateProvider/actionCreators' |
| 6 | +import { toggleAddressBook, setSkipDataAndType } from 'states/stateProvider/actionCreators' |
7 | 7 |
|
8 | | -const GeneralSetting = ({ settings: { showAddressBook }, dispatch }: React.PropsWithoutRef<StateWithDispatch>) => { |
| 8 | +const GeneralSetting = ({ |
| 9 | + settings: { |
| 10 | + general: { showAddressBook, skipDataAndType }, |
| 11 | + }, |
| 12 | + dispatch, |
| 13 | +}: React.PropsWithoutRef<StateWithDispatch>) => { |
9 | 14 | const [t] = useTranslation() |
10 | | - const onToggle = useCallback(() => { |
11 | | - dispatch(toggleAddressBook()) |
12 | | - }, [dispatch]) |
| 15 | + const [onToggleAddressVisibility, onSetSkipDataAndType] = useMemo( |
| 16 | + () => [() => dispatch(toggleAddressBook()), () => setSkipDataAndType(!skipDataAndType)(dispatch)], |
| 17 | + [dispatch, skipDataAndType] |
| 18 | + ) |
13 | 19 | return ( |
14 | 20 | <Stack tokens={{ childrenGap: 15 }}> |
15 | 21 | <Toggle |
16 | 22 | checked={showAddressBook} |
17 | 23 | label={t('settings.general.display-address-book-in-the-navbar')} |
18 | 24 | onText={t('common.toggle.on')} |
19 | 25 | offText={t('common.toggle.off')} |
20 | | - onChange={onToggle} |
| 26 | + onChange={onToggleAddressVisibility} |
| 27 | + /> |
| 28 | + <Toggle |
| 29 | + checked={skipDataAndType} |
| 30 | + label={t('settings.general.skip-data-and-type')} |
| 31 | + onText={t('common.toggle.on')} |
| 32 | + offText={t('common.toggle.off')} |
| 33 | + onChange={onSetSkipDataAndType} |
21 | 34 | /> |
22 | 35 | </Stack> |
23 | 36 | ) |
|
0 commit comments