Put formData in store (#1281)

* Put formData in store

* Reform actions and reducers

* Maded modifications based on comments:
This commit is contained in:
vera-liu
2016-10-07 14:53:36 -07:00
committed by GitHub
parent 3384e7598e
commit b7d1f78f5e
13 changed files with 283 additions and 390 deletions

View File

@@ -1,5 +1,5 @@
import React from 'react';
import Select from 'react-select';
import SelectArray from './SelectArray';
import { bindActionCreators } from 'redux';
import * as actions from '../actions/exploreActions';
import { connect } from 'react-redux';
@@ -16,54 +16,39 @@ const defaultProps = {
rowLimit: null,
};
class Options extends React.Component {
changeTimeStampFormat(timeStampFormat) {
const val = (timeStampFormat) ? timeStampFormat.value : null;
this.props.actions.setTimeStampFormat(val);
}
changeRowLimit(rowLimit) {
this.props.actions.setRowLimit(rowLimit);
}
render() {
return (
<div className="panel space-1">
<div className="panel-header">Options</div>
<div className="panel-body">
<div className="row">
<h5 className="section-heading">Table Timestamp Format</h5>
<Select
name="select-timestamp-format"
placeholder="Select timestamp format"
options={timestampOptions.map((t) => ({ value: t[0], label: t[1] }))}
value={this.props.timeStampFormat}
autosize={false}
onChange={this.changeTimeStampFormat.bind(this)}
/>
</div>
<div className="row">
<h5 className="section-heading">Row Limit</h5>
<Select
name="select-row-limit"
placeholder="Select row limit"
options={rowLimitOptions.map((r) => ({ value: r, label: r }))}
value={this.props.rowLimit}
autosize={false}
onChange={this.changeRowLimit.bind(this)}
/>
</div>
</div>
const Options = (props) => {
const selects = [
{
key: 'timeStampFormat',
title: 'Timestamp Format',
options: timestampOptions.map((t) => ({ value: t[0], label: t[1] })),
value: props.timeStampFormat,
width: '12',
},
{
key: 'rowLimit',
title: 'Row Limit',
options: rowLimitOptions.map((r) => ({ value: r, label: r })),
value: props.rowLimit,
width: '12',
}];
return (
<div className="panel">
<div className="panel-header">Options</div>
<div className="panel-body">
<SelectArray selectArray={selects} />
</div>
);
}
}
</div>
);
};
Options.propTypes = propTypes;
Options.defaultProps = defaultProps;
function mapStateToProps(state) {
return {
timeStampFormat: state.timeStampFormat,
rowLimit: state.rowLimit,
timeStampFormat: state.viz.formData.timeStampFormat,
rowLimit: state.viz.formData.rowLimit,
};
}