import { getIn, get } from 'immutable'; import cn from 'classnames'; import { withRequest } from 'HOCs'; import { Loader, Modal, Icon, JSONTree } from 'UI'; import { Accordion } from 'semantic-ui-react' import stl from './sentry.css'; @withRequest({ endpoint: props => `/integrations/sentry/events/${ props.event.id }`, dataName: "detailedEvent", loadOnInitialize: true }) export default class SentryEventInfo extends React.PureComponent { makePanelsFromStackTrace(stacktrace) { return get(stacktrace, 'frames', []).map(({ filename, function: method, lineNo, context = [] }) => ({ key: `${ filename }_${ method }_${ lineNo }`, title: { content: ( { filename } { ' in ' } { method } { ' at line '} { lineNo } ), }, content: { content: (
    { context.map(([ ctxLineNo, codeText ]) => (
  1. { codeText }
  2. ))}
)} })); } renderBody() { const { detailedEvent, requestError, event } = this.props; const exceptionEntry = get(detailedEvent, ['entries'], []).find(({ type }) => type === "exception"); const stacktraces = getIn(exceptionEntry, ['data', 'values']); if (!stacktraces) { return } return stacktraces.map(({ type, value, stacktrace }) => (
{ type }

{ value }

)); } render() { const { open, toggleOpen, loading, } = this.props; return (
{ this.renderBody() }
); } }