import React, { Component, PropTypes } from 'react'; import AceEditor from 'react-ace'; import { isEqual } from 'lodash'; import Icon from 'components/icons/Icon'; import queryInterface from 'interfaces/query'; import Dropdown from 'components/forms/fields/Dropdown'; const baseClass = 'search-pack-query'; class SearchPackQuery extends Component { static propTypes = { allQueries: PropTypes.arrayOf(queryInterface), onSelectQuery: PropTypes.func, selectedQuery: queryInterface, }; static defaultProps = { allQueries: [], }; constructor (props) { super(props); this.state = { queryDropdownOptions: [], }; } componentWillMount () { const { allQueries } = this.props; const queryDropdownOptions = allQueries.map((query) => { return { label: query.name, value: String(query.id) }; }); this.setState({ queryDropdownOptions }); } componentWillReceiveProps (nextProps) { const { allQueries } = nextProps; if (!isEqual(allQueries, this.props.allQueries)) { const queryDropdownOptions = allQueries.map((query) => { return { label: query.name, value: String(query.id) }; }); this.setState({ queryDropdownOptions }); } } renderHeader = () => { const { selectedQuery } = this.props; if (selectedQuery) { return (
{selectedQuery.description || No description available.}