import {useState} from 'react'; import {EventDataSection} from 'sentry/components/events/eventDataSection'; import KeyValueList from 'sentry/components/events/interfaces/keyValueList'; import {AnnotatedText} from 'sentry/components/events/meta/annotatedText'; import {SegmentedControl} from 'sentry/components/segmentedControl'; import {t} from 'sentry/locale'; function getView({ data, meta, view, }: { data: Props['data']; view: View; meta?: Record; }) { switch (view) { case 'report': return !data ? ( ) : ( ({ key, value, subject: key, meta: meta?.[key]?.[''], }))} isContextData /> ); case 'raw': return
{JSON.stringify({'csp-report': data}, null, 2)}
; default: throw new TypeError(`Invalid view: ${view}`); } } type Props = { data: Record | null; type: string; meta?: Record; }; type View = 'report' | 'raw'; export function Generic({type, data, meta}: Props) { const [view, setView] = useState('report'); return ( {t('Report')} {t('Raw')} } > {getView({view, data, meta})} ); }