import React from 'react' import { EventData } from './data/Event' import { Segmented, Input } from 'antd'; import { X, List, Braces, Files } from 'lucide-react'; import copy from 'copy-to-clipboard' function EventDetailsModal({ ev, onClose }: { ev: EventData, onClose: () => void }) { const tabs = [ { label: 'All Properties', value: 'all', }, { label: 'Openreplay Properties', value: 'default', }, { label: 'Custom Properties', value: 'custom', }, ] const views = [ { label: , value: 'pretty', }, { label: , value: 'json', } ] const [query, setQuery] = React.useState('') const [tab, setTab] = React.useState(tabs[0].value) const [view, setView] = React.useState(views[0].value) const tabProps = { all: { ...ev.$_defaultFields, ...ev.$_customFields }, custom: ev.$_customFields, default: ev.$_defaultFields, } const dataFields = tabProps[tab] const fieldArr = Object.entries(dataFields) const filteredArr = view === 'json' ? [] : fieldArr.filter(([key, value]) => { const qReg = new RegExp(query, 'ig') return qReg.test(key) || qReg.test(value) }) const strProps = JSON.stringify({ event: ev.name, properties: dataFields }, null, 4) const highlightedJson = view === 'pretty' ? '' : query ? strProps.replace( new RegExp(query, 'ig'), (match) => `${match}` ) : strProps const onCopy = () => { copy(strProps) } return (
Event
icn
{ev.name}
Play Session
setTab(v)} />
setView(v)} /> setQuery(e.target.value)} placeholder={'Find Property'} />
{view === 'pretty' ?
{filteredArr.map(([key, value]) => (
{key}
{value}
))}
: (
        
)}
); } export function Triangle({ size = 16, color = 'currentColor' }) { return ( ); } export default EventDetailsModal;