import PropTypes from 'prop-types' import React from 'react' import ReactDOM from 'react-dom' import { connect } from 'react-redux' import HotkeyTab from './HotkeyTab' import UiTab from './UiTab' import InfoTab from './InfoTab' import Crowdfunding from './Crowdfunding' import StoragesTab from './StoragesTab' import ModalEscButton from 'browser/components/ModalEscButton' import CSSModules from 'browser/lib/CSSModules' import styles from './PreferencesModal.styl' import RealtimeNotification from 'browser/components/RealtimeNotification' class Preferences extends React.Component { constructor (props) { super(props) this.state = { currentTab: 'STORAGES', UI: null, Hotkey: null } } componentDidMount () { this.refs.root.focus() const boundingBox = this.getContentBoundingBox() this.setState({ boundingBox }) } switchTeam (teamId) { this.setState({currentTeamId: teamId}) } handleNavButtonClick (tab) { return (e) => { this.setState({currentTab: tab}) } } handleEscButtonClick () { this.props.close() } renderContent () { const { boundingBox } = this.state const { dispatch, config, data } = this.props switch (this.state.currentTab) { case 'INFO': return ( ) case 'HOTKEY': return ( this.setState({Hotkey: msg})} /> ) case 'UI': return ( this.setState({UI: msg})} /> ) case 'CROWDFUNDING': return ( ) case 'STORAGES': default: return ( ) } } handleKeyDown (e) { if (e.keyCode === 27) { this.props.close() } } getContentBoundingBox () { const node = ReactDOM.findDOMNode(this.refs.content) return node.getBoundingClientRect() } render () { const content = this.renderContent() const tabs = [ {target: 'STORAGES', label: 'Storages'}, {target: 'HOTKEY', label: 'Hotkey', Hotkey: this.state.Hotkey}, {target: 'UI', label: 'UI', UI: this.state.UI}, {target: 'INFO', label: 'Community / Info'}, {target: 'CROWDFUNDING', label: 'Crowdfunding'} ] const navButtons = tabs.map((tab) => { const isActive = this.state.currentTab === tab.target const isOk = typeof tab[tab.label] !== 'undefined' && tab[tab.label] !== null return ( ) }) return (
this.handleKeyDown(e)} >

Your preferences for Boostnote

this.handleEscButtonClick(e)} />
{navButtons}
{content}
) } } Preferences.propTypes = { dispatch: PropTypes.func } export default connect((x) => x)(CSSModules(Preferences, styles))