Skip to content

Commit

Permalink
feat: implemented search settings in general settings
Browse files Browse the repository at this point in the history
  • Loading branch information
dhavaldodiya committed Jan 13, 2022
1 parent 43c51df commit d788780
Show file tree
Hide file tree
Showing 3 changed files with 95 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/settings/general-settings.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import { SETTINGS_APP_ID } from '../constants';
import { editSettings } from '../network/edit-settings';
import { Mods } from '../../types';
import LanguageAndTimeZoneSettings from './language-and-timezone-settings';
import SearchSettingsView from './search-settings-view';

export const DisplayerHeader: FC<{
label: string;
Expand Down Expand Up @@ -205,6 +206,7 @@ const GeneralSettings: FC = () => {
/>

<OutOfOfficeSettings settings={settings} addMod={addMod} />
<SearchSettingsView settings={settings} addMod={addMod} />
<ModuleVersionSettings />
<UserQuota mobileView={false} />
<Logout />
Expand Down
83 changes: 83 additions & 0 deletions src/settings/search-settings-view.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
/*
* SPDX-FileCopyrightText: 2021 Zextras <https://www.zextras.com>
*
* SPDX-License-Identifier: AGPL-3.0-only
*/

import React, { useState, FC, useEffect, useCallback } from 'react';
import { Container, FormSubSection, Checkbox } from '@zextras/zapp-ui';
import { useTranslation } from 'react-i18next';
import { AccountSettings } from '../../types';

const SearchSettingsView: FC<{
settings: AccountSettings;
addMod: (type: 'prefs' | 'props', key: string, value: { value: any; app: string }) => void;
}> = ({ settings, addMod }) => {
const { t } = useTranslation();
const [searchInSpamFolder, setSearchInSpamFolder] = useState<boolean>(
settings.prefs.zimbraPrefIncludeSpamInSearch === 'TRUE'
);
const [searchInSharedFolder, setSearchInSharedFolder] = useState<boolean>(
settings.prefs.zimbraPrefIncludeSharedItemsInSearch === 'TRUE'
);
const [searchInTrashFolder, setSearchInTrashFolder] = useState<boolean>(
settings.prefs.zimbraPrefIncludeTrashInSearch === 'TRUE'
);

const setMode = useCallback(
(v, p) => {
const value: any = v ? 'TRUE' : 'FALSE';
addMod('prefs', p, value);
},
[addMod]
);

useEffect(() => {
setMode(searchInSpamFolder, 'zimbraPrefIncludeSpamInSearch');
setMode(searchInTrashFolder, 'zimbraPrefIncludeTrashInSearch');
setMode(searchInSharedFolder, 'zimbraPrefIncludeSharedItemsInSearch');
}, [searchInSpamFolder, searchInTrashFolder, searchInSharedFolder, setMode]);

return (
<FormSubSection
label={t('settings.search_settings.headings.search_settings_label', 'Search')}
minWidth="calc(min(100%, 512px))"
width="50%"
>
<Container crossAlignment="baseline" padding={{ all: 'small' }}>
<Checkbox
label={t(
'settings.search_settings.labels.include_search_in_spam_folder',
'Include Spam Folder in Searches'
)}
defaultChecked={searchInSpamFolder}
onChange={(e: boolean): void => {
setSearchInSpamFolder(e);
}}
/>
<Checkbox
label={t(
'settings.search_settings.labels.include_search_in_trash_folder',
'Include Trash Folder in Searches'
)}
defaultChecked={searchInTrashFolder}
onChange={(e: boolean): void => {
setSearchInTrashFolder(e);
}}
/>
<Checkbox
label={t(
'settings.search_settings.labels.include_search_in_shared_folder',
'Include Shared Folder in Searches'
)}
defaultChecked={searchInSharedFolder}
onChange={(e: boolean): void => {
setSearchInSharedFolder(e);
}}
/>
</Container>
</FormSubSection>
);
};

export default SearchSettingsView;
10 changes: 10 additions & 0 deletions translations/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,16 @@
"busy": "Busy"
}
},
"search_settings": {
"headings": {
"search_settings_label": "Search"
},
"labels": {
"include_search_in_shared_folder": "Include Shared Folder in Searches",
"include_search_in_spam_folder": "Include Spam Folder in Searches",
"include_search_in_trash_folder": "Include Trash Folder in Searches"
}
},
"timezone_and_language": "Time Zone and Language"
},
"snackbar": {
Expand Down

0 comments on commit d788780

Please sign in to comment.