import React, {PropTypes} from 'react'; import fs from 'fs' import classNames from 'classnames'; import {Flexbox, RetinaImg} from 'nylas-component-kit'; import {Actions, PreferencesUIStore, Utils} from 'nylas-exports'; class PreferencesTabItem extends React.Component { static displayName = 'PreferencesTabItem'; static propTypes = { selection: PropTypes.shape({ accountId: PropTypes.string, tabId: PropTypes.string, }).isRequired, tabItem: PropTypes.instanceOf(PreferencesUIStore.TabItem).isRequired, } _onClick = () => { Actions.switchPreferencesTab(this.props.tabItem.tabId); } _onClickAccount = (event, accountId) => { Actions.switchPreferencesTab(this.props.tabItem.tabId, {accountId}); event.stopPropagation(); } render() { const {selection, tabItem} = this.props const {tabId, displayName} = tabItem; const classes = classNames({ item: true, active: tabId === selection.tabId, }); let path = `icon-preferences-${displayName.toLowerCase().replace(" ", "-")}.png` if (!fs.existsSync(Utils.imageNamed(path))) { path = "icon-preferences-general.png"; } const icon = ( ); return (
{icon}
{displayName}
); } } class PreferencesTabsBar extends React.Component { static displayName = 'PreferencesTabsBar'; static propTypes = { tabs: PropTypes.array.isRequired, selection: PropTypes.shape({ accountId: PropTypes.string, tabId: PropTypes.string, }).isRequired, } renderTabs() { return this.props.tabs.map((tabItem) => ); } render() { return (
{this.renderTabs()}
); } } export default PreferencesTabsBar;