import React, { PropTypes } from 'react'; import ModalTrigger from './../../components/ModalTrigger'; import SyntaxHighlighter from 'react-syntax-highlighter'; import { github } from 'react-syntax-highlighter/dist/styles'; const $ = window.$ = require('jquery'); const propTypes = { query: PropTypes.string, queryEndpoint: PropTypes.string.isRequired, }; export default class DisplayQueryButton extends React.PureComponent { constructor(props) { super(props); this.state = { modalBody:
,
    };
  }
  beforeOpen() {
    this.setState({
      modalBody:
        (Loading...),
    });
    if (this.props.query) {
      const modalBody = (
        
{this.props.query}
); this.setState({ modalBody }); } else { $.ajax({ type: 'GET', url: this.props.queryEndpoint, success: (data) => { const modalBody = data.language ? {data.query} :
{data.query}
; this.setState({ modalBody }); }, error(data) { this.setState({ modalBody: (
{data.error}
) }); }, }); } } render() { return ( Query} modalTitle="Query" bsSize="large" beforeOpen={this.beforeOpen.bind(this)} modalBody={this.state.modalBody} /> ); } } DisplayQueryButton.propTypes = propTypes;