2016-03-09 09:32:23 +08:00
|
|
|
import React from 'react';
|
|
|
|
import Actions from '../../../src/flux/actions';
|
2016-03-09 09:08:09 +08:00
|
|
|
import NylasStore from 'nylas-store';
|
|
|
|
import {APMWrapper} from 'nylas-exports';
|
|
|
|
|
2016-03-09 09:32:23 +08:00
|
|
|
import ThemePicker from './theme-picker';
|
2016-03-09 09:08:09 +08:00
|
|
|
import ThemePickerActions from './theme-picker-actions';
|
|
|
|
|
|
|
|
|
|
|
|
class ThemePickerStore extends NylasStore {
|
|
|
|
|
|
|
|
constructor() {
|
|
|
|
super();
|
|
|
|
}
|
|
|
|
|
|
|
|
activate = ()=> {
|
2016-03-09 09:32:23 +08:00
|
|
|
this._apm = new APMWrapper();
|
2016-03-09 09:08:09 +08:00
|
|
|
this.unlisten = ThemePickerActions.uninstallTheme.listen(this.uninstallTheme);
|
2016-03-09 09:32:23 +08:00
|
|
|
this.disposable = NylasEnv.commands.add("body", "window:launch-theme-picker", () => {
|
|
|
|
Actions.openModal(
|
|
|
|
children=<ThemePicker />,
|
|
|
|
height=400,
|
|
|
|
width=250,
|
|
|
|
);
|
|
|
|
});
|
2016-03-09 09:08:09 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
uninstallTheme = (theme)=> {
|
|
|
|
if (NylasEnv.packages.isPackageLoaded(theme.name)) {
|
|
|
|
NylasEnv.packages.disablePackage(theme.name);
|
|
|
|
NylasEnv.packages.unloadPackage(theme.name);
|
|
|
|
}
|
|
|
|
this._apm.uninstall(theme);
|
|
|
|
}
|
|
|
|
|
|
|
|
deactivate = ()=> {
|
|
|
|
this.unlisten();
|
2016-03-09 09:32:23 +08:00
|
|
|
this.disposable.dispose();
|
2016-03-09 09:08:09 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
export default new ThemePickerStore();
|