UNPKG

tldraw

Version:

A tiny little drawing editor.

30 lines (24 loc) 720 B
import { useGlobalMenuIsOpen, useMaybeEditor } from '@tldraw/editor' import { useCallback } from 'react' import { TLUiEventMap, useUiEvents } from '../context/events' /** @public */ export function useMenuIsOpen(id: string, cb?: (isOpen: boolean) => void) { const editor = useMaybeEditor() const onChange = useCallback( (isOpen: boolean) => { if (isOpen) { editor?.complete() } cb?.(isOpen) }, [editor, cb] ) const trackEvent = useUiEvents() const onEvent = useCallback( (eventName: string) => { trackEvent(eventName as keyof TLUiEventMap, { source: 'unknown', id }) }, [id, trackEvent] ) return useGlobalMenuIsOpen(editor ? `${id}-${editor.contextId}` : id, onChange, onEvent) }