import React from 'react'; import PropTypes from 'prop-types'; import shortid from 'shortid'; import { Alert, Tab, Tabs } from 'react-bootstrap'; import { connect } from 'react-redux'; import { bindActionCreators } from 'redux'; import * as Actions from '../actions'; import QueryHistory from './QueryHistory'; import ResultSet from './ResultSet'; /* editorQueries are queries executed by users passed from SqlEditor component dataPrebiewQueries are all queries executed for preview of table data (from SqlEditorLeft) */ const propTypes = { editorQueries: PropTypes.array.isRequired, dataPreviewQueries: PropTypes.array.isRequired, actions: PropTypes.object.isRequired, activeSouthPaneTab: PropTypes.string, height: PropTypes.number, }; const defaultProps = { activeSouthPaneTab: 'Results', }; class SouthPane extends React.PureComponent { switchTab(id) { this.props.actions.setActiveSouthPaneTab(id); } render() { const innerTabHeight = this.props.height - 55; let latestQuery; const props = this.props; if (props.editorQueries.length > 0) { latestQuery = props.editorQueries[props.editorQueries.length - 1]; } let results; if (latestQuery) { results = ( ); } else { results = Run a query to display results here; } const dataPreviewTabs = props.dataPreviewQueries.map(query => ( )); return (
{results}
{dataPreviewTabs}
); } } function mapStateToProps(state) { return { activeSouthPaneTab: state.activeSouthPaneTab, }; } function mapDispatchToProps(dispatch) { return { actions: bindActionCreators(Actions, dispatch), }; } SouthPane.propTypes = propTypes; SouthPane.defaultProps = defaultProps; export default connect(mapStateToProps, mapDispatchToProps)(SouthPane);