import React from 'react' import { IDataParamSource } from './Dropbox' import { getAggregatorLocale, decodeMetricName } from '../util' import { PIVOT_DEFAULT_SCATTER_SIZE_TIMES } from 'app/globalConstants' import { Tabs, Slider } from 'antd' const TabPane = Tabs.TabPane const styles = require('./Workbench.less') const utilStyles = require('assets/less/util.less') interface ISizePanelProps { list: IDataParamSource[] value: object hasTabs: boolean onValueChange: (key: string, value: string) => void } interface ISizePanelStates { size: number selectedTab: string } export class SizePanel extends React.PureComponent { constructor (props) { super(props) this.state = { size: PIVOT_DEFAULT_SCATTER_SIZE_TIMES, selectedTab: 'all' } } public componentWillMount () { this.initSize(this.props.value) } public componentWillReceiveProps (nextProps) { if (nextProps.list !== this.props.list) { this.setState({ selectedTab: 'all', size: nextProps.value['all'] }) } else { this.initSize(nextProps.value) } } private initSize = (value) => { this.setState({ size: value[this.state.selectedTab] }) } private tabSelect = (key) => { const { value } = this.props this.setState({ selectedTab: key, size: value[key] || PIVOT_DEFAULT_SCATTER_SIZE_TIMES }) } private sizeChange = (value) => { this.props.onValueChange(this.state.selectedTab, value) } public render () { const { list, hasTabs } = this.props const { size, selectedTab } = this.state const tabPanes = [( )].concat(list.map((l) => ( ))) return (
{tabPanes}
) } } export default SizePanel