From 9795e4a5325e8eba4366bee7725497976d0676e5 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Mon, 3 Oct 2016 10:40:27 -0700 Subject: [PATCH] [SQLLab] Fix updating the database state. (#1225) --- .../SqlLab/components/DatabaseSelect.jsx | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/caravel/assets/javascripts/SqlLab/components/DatabaseSelect.jsx b/caravel/assets/javascripts/SqlLab/components/DatabaseSelect.jsx index cac31609ee81a..0835e40b846a7 100644 --- a/caravel/assets/javascripts/SqlLab/components/DatabaseSelect.jsx +++ b/caravel/assets/javascripts/SqlLab/components/DatabaseSelect.jsx @@ -1,6 +1,9 @@ const $ = window.$ = require('jquery'); import React from 'react'; +import { bindActionCreators } from 'redux'; import Select from 'react-select'; +import { connect } from 'react-redux'; +import * as Actions from '../actions'; class DatabaseSelect extends React.Component { constructor(props) { @@ -11,7 +14,7 @@ class DatabaseSelect extends React.Component { databaseId: null, }; } - componentWillMount() { + componentDidMount() { this.fetchDatabaseOptions(); } changeDb(db) { @@ -25,6 +28,7 @@ class DatabaseSelect extends React.Component { $.get(url, (data) => { const options = data.result.map((db) => ({ value: db.id, label: db.database_name })); this.setState({ databaseOptions: options, databaseLoading: false }); + this.props.actions.setDatabases(data.result); }); } render() { @@ -46,6 +50,13 @@ class DatabaseSelect extends React.Component { DatabaseSelect.propTypes = { onChange: React.PropTypes.func, + actions: React.PropTypes.object, }; -export default DatabaseSelect; +function mapDispatchToProps(dispatch) { + return { + actions: bindActionCreators(Actions, dispatch), + }; +} + +export default connect(null, mapDispatchToProps)(DatabaseSelect);