Mailspring/internal_packages/preferences/lib/main.jsx
Jackie Luo 6e07dce03c 🎨(preferences): Updates preferences to look prettier
Summary:
Adds new redesigned preferences with horizontal tab bar and refactored code.

Converts Preferences, Plugins, and a few components to ES6.

Test Plan: Tested locally.

Reviewers: evan, bengotow

Reviewed By: bengotow

Subscribers: juan

Differential Revision: https://phab.nylas.com/D2818
2016-04-01 14:01:26 -07:00

72 lines
2.1 KiB
JavaScript

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;
}