'use client'; import { createContext, type ReactNode, useCallback, useContext, useMemo, useState } from 'react'; import type { Event } from '@/lib/types'; interface Ctx { event: Event | null; open: (e: Event) => void; close: () => void; } const EventDrawerCtx = createContext({ event: null, open: () => undefined, close: () => undefined }); /** Mounted once in the root layout: any event row can open the evidence drawer with the event it already has. */ export function EventDrawerProvider({ children }: { children: ReactNode }) { const [event, setEvent] = useState(null); const open = useCallback((e: Event) => setEvent(e), []); const close = useCallback(() => setEvent(null), []); const value = useMemo(() => ({ event, open, close }), [event, open, close]); return {children}; } export function useEventDrawer() { return useContext(EventDrawerCtx); }