import {Component, Fragment} from 'react'; import styled from '@emotion/styled'; import JsonViewer from 'sentry/components/events/attachmentViewers/jsonViewer'; import {ViewerProps} from 'sentry/components/events/attachmentViewers/utils'; import PanelAlert from 'sentry/components/panels/panelAlert'; import {tct} from 'sentry/locale'; type State = { showRawJson: boolean; }; export default class RRWebJsonViewer extends Component { state: State = { showRawJson: false, }; render() { const {showRawJson} = this.state; return ( {tct( 'This is an attachment containing a session replay. [replayLink:View the replay] or [jsonLink:view the raw JSON].', { replayLink: , jsonLink: ( this.setState(state => ({ showRawJson: !state.showRawJson, })) } /> ), } )} {showRawJson && } ); } } const StyledPanelAlert = styled(PanelAlert)<{border: boolean}>` margin: 0; border-bottom: ${p => (p.border ? `1px solid ${p.theme.border}` : null)}; `;