Dashboard refactory (#3581)

Create Chart component for all chart fetching and rendering, and apply redux architecture in dashboard view.
This commit is contained in:
Grace Guo
2017-11-08 10:46:21 -08:00
committed by GitHub
parent 39e502faae
commit 4fa1f0ab17
47 changed files with 2048 additions and 876 deletions

View File

@@ -0,0 +1,59 @@
/* 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;