Mailspring/internal_packages/preferences/lib/main.jsx

73 lines
2.1 KiB
React
Raw Normal View History

import {ipcRenderer} from 'electron';
import {PreferencesUIStore,
Actions,
WorkspaceStore,
ComponentRegistry} from 'nylas-exports';
import PreferencesRoot from './preferences-root';
import PreferencesGeneral from './tabs/preferences-general';
import PreferencesAccounts from './tabs/preferences-accounts';
import PreferencesAppearance from './tabs/preferences-appearance';
import PreferencesKeymaps from './tabs/preferences-keymaps';
import PreferencesMailRules from './tabs/preferences-mail-rules';
export function activate() {
PreferencesUIStore.registerPreferencesTab(new PreferencesUIStore.TabItem({
tabId: 'General',
displayName: 'General',
component: PreferencesGeneral,
order: 1,
}))
PreferencesUIStore.registerPreferencesTab(new PreferencesUIStore.TabItem({
tabId: 'Accounts',
displayName: 'Accounts',
component: PreferencesAccounts,
order: 2,
}))
PreferencesUIStore.registerPreferencesTab(new PreferencesUIStore.TabItem({
tabId: 'Appearance',
displayName: 'Appearance',
component: PreferencesAppearance,
order: 3,
}))
PreferencesUIStore.registerPreferencesTab(new PreferencesUIStore.TabItem({
tabId: 'Shortcuts',
displayName: 'Shortcuts',
component: PreferencesKeymaps,
order: 4,
}))
PreferencesUIStore.registerPreferencesTab(new PreferencesUIStore.TabItem({
tabId: 'Mail Rules',
displayName: 'Mail Rules',
component: PreferencesMailRules,
order: 5,
}))
WorkspaceStore.defineSheet('Preferences', {}, {
split: ['Preferences'],
list: ['Preferences'],
});
ComponentRegistry.register(PreferencesRoot, {
location: WorkspaceStore.Location.Preferences,
});
Actions.openPreferences.listen(this._openPreferences);
ipcRenderer.on('open-preferences', () => this._openPreferences());
}
export function _openPreferences() {
ipcRenderer.send('command', 'application:show-main-window');
if (WorkspaceStore.topSheet() !== WorkspaceStore.Sheet.Preferences) {
Actions.pushSheet(WorkspaceStore.Sheet.Preferences);
}
}
export function deactivate() {
}
export function serialize() {
return this.state;
}