mirror of
https://github.com/zulip/zulip-desktop.git
synced 2025-10-24 16:43:38 +00:00
And enable the import/unambiguous ESLint rule as a check on our
partition between scripts and modules. After this commit, if you add
a new file and get this error:
✖ 1:1 This module could be parsed as a valid script. import/unambiguous
* For a module, add an `import` or `export` declaration to make the
file unambiguously a module (the empty `export {};` declaration
suffices).
* For a script, add the file to the xo overrides section of
package.json that marks it "sourceType": "script", and add a 'use
strict' declaration.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import * as ConfigUtil from './config-util';
|
|
|
|
// TODO: TypeScript - add to Setting interface
|
|
// the list of settings since we have fixed amount of them
|
|
// We want to do this by creating a new module that exports
|
|
// this interface
|
|
interface Setting {
|
|
[key: string]: any;
|
|
}
|
|
|
|
interface Toggle {
|
|
dnd: boolean;
|
|
newSettings: Setting;
|
|
}
|
|
|
|
export function toggle(): Toggle {
|
|
const dnd = !ConfigUtil.getConfigItem('dnd', false);
|
|
const dndSettingList = ['showNotification', 'silent'];
|
|
if (process.platform === 'win32') {
|
|
dndSettingList.push('flashTaskbarOnMessage');
|
|
}
|
|
|
|
let newSettings: Setting;
|
|
if (dnd) {
|
|
const oldSettings: Setting = {};
|
|
newSettings = {};
|
|
|
|
// Iterate through the dndSettingList.
|
|
for (const settingName of dndSettingList) {
|
|
// Store the current value of setting.
|
|
oldSettings[settingName] = ConfigUtil.getConfigItem(settingName);
|
|
// New value of setting.
|
|
newSettings[settingName] = (settingName === 'silent');
|
|
}
|
|
|
|
// Store old value in oldSettings.
|
|
ConfigUtil.setConfigItem('dndPreviousSettings', oldSettings);
|
|
} else {
|
|
newSettings = ConfigUtil.getConfigItem('dndPreviousSettings');
|
|
}
|
|
|
|
for (const settingName of dndSettingList) {
|
|
ConfigUtil.setConfigItem(settingName, newSettings[settingName]);
|
|
}
|
|
|
|
ConfigUtil.setConfigItem('dnd', dnd);
|
|
return {dnd, newSettings};
|
|
}
|