import {useCallback, type FunctionComponent, type PropsWithChildren} from 'react' import type {VisualEditingNode} from '../../types' import {events, TelemetryContext, type TelemetryContextValue} from './TelemetryContext' export const TelemetryProvider: FunctionComponent< PropsWithChildren<{comlink?: VisualEditingNode}> > = ({children, comlink}) => { const log = useCallback( (name, data) => { if (!comlink) return const event = events[name] if (!event) { throw new Error(`Telemetry event: ${name} does not exist`) } else { comlink.post('visual-editing/telemetry-log', {event, data}) } }, [comlink], ) return {children} }