import * as React from 'react' import { AppState } from '../reducers' import { Divider, Drawer, IconButton, Input, InputLabel, MenuItem, Select, Typography, } from '@material-ui/core' import { StyleRulesCallback, withStyles } from '@material-ui/core/styles' import ChevronRight from '@material-ui/icons/ChevronRight' import { bindActionCreators } from 'redux' import { connect } from 'react-redux' import { settingsActions, treeActions } from '../actions' import { TopicOrder } from '../reducers/Settings' import BrokerStatistics from './BrokerStatistics' export const autoExpandLimitSet = [{ limit: 0, name: 'Collapsed', }, { limit: 2, name: 'Few', }, { limit: 3, name: 'Some', }, { limit: 10, name: 'Most', }, { limit: 1E6, name: 'All', }] const styles: StyleRulesCallback = theme => ({ drawer: { backgroundColor: theme.palette.background.default, flexShrink: 0, }, paper: { width: '300px', }, title: { color: theme.palette.text.primary, paddingTop: theme.spacing(1), ...theme.mixins.toolbar, }, input: { minWidth: '150px', margin: `auto ${theme.spacing(1)} auto ${theme.spacing(2)}px`, }, }) interface Props { autoExpandLimit: number visible: boolean store?: any topicOrder: TopicOrder classes: any actions: typeof settingsActions } class Settings extends React.Component { constructor(props: any) { super(props) this.state = {} } public render() { const { classes, actions, visible } = this.props return (
Settings {this.renderAutoExpand()} {this.renderNodeOrder()}
) } private renderAutoExpand() { const { classes, autoExpandLimit } = this.props const limits = autoExpandLimitSet.map(limit => {limit.name}) return (
Auto Expand
) } private onChangeAutoExpand = (e: React.ChangeEvent) => { this.props.actions.setAutoExpandLimit(parseInt(e.target.value, 10)) } private renderNodeOrder() { const { classes, topicOrder } = this.props return (
Topic order
) } private onChangeSorting = (e: React.ChangeEvent) => { this.props.actions.setTopicOrder(e.target.value as TopicOrder) } } const mapStateToProps = (state: AppState) => { return { autoExpandLimit: state.settings.autoExpandLimit, topicOrder: state.settings.topicOrder, visible: state.settings.visible, } } const mapDispatchToProps = (dispatch: any) => { return { actions: bindActionCreators(settingsActions, dispatch), } } export default withStyles(styles)(connect(mapStateToProps, mapDispatchToProps)(Settings))