mirror of
https://github.com/apache/superset.git
synced 2026-04-21 17:14:57 +00:00
Create Chart component for all chart fetching and rendering, and apply redux architecture in dashboard view.
60 lines
1.3 KiB
JavaScript
60 lines
1.3 KiB
JavaScript
/* eslint-disable react/no-danger */
|
|
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import { Alert, Collapse } from 'react-bootstrap';
|
|
|
|
const propTypes = {
|
|
message: PropTypes.string,
|
|
queryResponse: PropTypes.object,
|
|
showStackTrace: PropTypes.bool,
|
|
};
|
|
const defaultProps = {
|
|
showStackTrace: false,
|
|
};
|
|
|
|
class StackTraceMessage extends React.PureComponent {
|
|
constructor(props) {
|
|
super(props);
|
|
|
|
this.state = {
|
|
showStackTrace: props.showStackTrace,
|
|
};
|
|
}
|
|
|
|
hasTrace() {
|
|
return this.props.queryResponse && this.props.queryResponse.stacktrace;
|
|
}
|
|
|
|
render() {
|
|
const msg = (
|
|
<div>
|
|
<p
|
|
dangerouslySetInnerHTML={{ __html: this.props.message }}
|
|
/>
|
|
</div>);
|
|
|
|
return (
|
|
<div className={`stack-trace-container${this.hasTrace() ? ' has-trace' : ''}`}>
|
|
<Alert
|
|
bsStyle="warning"
|
|
onClick={() => this.setState({ showStackTrace: !this.state.showStackTrace })}
|
|
>
|
|
{msg}
|
|
</Alert>
|
|
{this.hasTrace() &&
|
|
<Collapse in={this.state.showStackTrace}>
|
|
<pre>
|
|
{this.props.queryResponse.stacktrace}
|
|
</pre>
|
|
</Collapse>
|
|
}
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
StackTraceMessage.propTypes = propTypes;
|
|
StackTraceMessage.defaultProps = defaultProps;
|
|
|
|
export default StackTraceMessage;
|