superset/caravel/assets/javascripts/SqlLab/components/QuerySearch.jsx

74 lines
1.9 KiB
React
Raw Normal View History

import React from 'react';
import Select from 'react-select';
2016-09-23 19:28:21 -04:00
import { Button } from 'react-bootstrap';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
import * as Actions from '../actions';
import QueryTable from './QueryTable';
class QuerySearch extends React.Component {
constructor(props) {
super(props);
this.state = {
2016-09-23 19:28:21 -04:00
queryText: '',
};
}
2016-09-23 19:28:21 -04:00
changeQueryText(value) {
this.setState({ queryText: value });
}
render() {
2016-09-23 19:28:21 -04:00
const queries = this.props.queries;
return (
<div>
2016-09-23 19:28:21 -04:00
<div className="pane-cell pane-west m-t-5">
<div className="panel panel-default Workspace">
<div className="panel-heading">
<h6>
<i className="fa fa-search" /> Search Queries
</h6>
</div>
<div className="panel-body">
<input type="text" className="form-control" placeholder="Query Text" />
<Select
name="select-user"
placeholder="[User]"
options={['maxime_beauchemin', 'someone else']}
value={'maxime_beauchemin'}
className="m-t-10"
autosize={false}
/>
</div>
</div>
</div>
2016-09-23 19:28:21 -04:00
<div className="pane-cell">
<QueryTable
columns={['state', 'started', 'duration', 'rows', 'sql', 'actions']}
queries={queries}
/>
</div>
<Button>Search!</Button>
</div>
);
}
}
2016-09-23 19:28:21 -04:00
QuerySearch.propTypes = {
queries: React.PropTypes.array,
};
QuerySearch.defaultProps = {
queries: [],
};
2016-09-23 19:28:21 -04:00
function mapStateToProps(state) {
return {
queries: state.queries,
};
}
function mapDispatchToProps(dispatch) {
return {
actions: bindActionCreators(Actions, dispatch),
};
}
2016-09-23 19:28:21 -04:00
export default connect(mapStateToProps, mapDispatchToProps)(QuerySearch);