mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-11-14 13:44:41 +08:00
50 lines
922 B
React
50 lines
922 B
React
|
import React from 'react';
|
||
|
|
||
|
import TabsStore from './tabs-store';
|
||
|
import Tabs from './tabs';
|
||
|
|
||
|
|
||
|
class PluginsView extends React.Component {
|
||
|
|
||
|
static displayName = 'PluginsView';
|
||
|
|
||
|
constructor() {
|
||
|
super();
|
||
|
this.state = this._getStateFromStores();
|
||
|
}
|
||
|
|
||
|
componentDidMount() {
|
||
|
this._unsubscribers = [];
|
||
|
this._unsubscribers.push(TabsStore.listen(this._onChange));
|
||
|
}
|
||
|
|
||
|
componentWillUnmount() {
|
||
|
this._unsubscribers.forEach(unsubscribe => unsubscribe());
|
||
|
}
|
||
|
|
||
|
static containerStyles = {
|
||
|
minWidth: 500,
|
||
|
maxWidth: 99999,
|
||
|
}
|
||
|
|
||
|
_getStateFromStores() {
|
||
|
return {tabIndex: TabsStore.tabIndex()};
|
||
|
}
|
||
|
|
||
|
_onChange = () => {
|
||
|
this.setState(this._getStateFromStores());
|
||
|
}
|
||
|
|
||
|
render() {
|
||
|
const PluginsTabComponent = Tabs[this.state.tabIndex].component;
|
||
|
return (
|
||
|
<div className="plugins-view">
|
||
|
<PluginsTabComponent />
|
||
|
</div>
|
||
|
);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
export default PluginsView;
|