import { Content, Portal, Root, Trigger } from '@radix-ui/react-dropdown-menu' import { useContainer } from '@tldraw/editor' import * as React from 'react' import { MenuChild } from '../hooks/menuHelpers' import { useHelpMenuSchema } from '../hooks/useHelpMenuSchema' import { useMenuIsOpen } from '../hooks/useMenuIsOpen' import { useReadonly } from '../hooks/useReadonly' import { TLTranslationKey } from '../hooks/useTranslation/TLTranslationKey' import { useTranslation } from '../hooks/useTranslation/useTranslation' import { TLUiIconType } from '../icon-types' import { LanguageMenu } from './LanguageMenu' import * as M from './primitives/DropdownMenu' import { Icon } from './primitives/Icon' interface HelpMenuLink { label: TLTranslationKey icon: TLUiIconType url: string } /** @public */ export interface HelpMenuProps { links?: HelpMenuLink[] } /** @public */ export const HelpMenu = React.memo(function HelpMenu() { const container = useContainer() const msg = useTranslation() const onOpenChange = useMenuIsOpen('help menu') return (
) }) function HelpMenuContent() { const menuSchema = useHelpMenuSchema() const isReadonly = useReadonly() function getHelpMenuItem(item: MenuChild) { if (isReadonly && !item.readonlyOk) return null switch (item.type) { case 'custom': { if (item.id === 'LANGUAGE_MENU') { return } break } case 'group': { return ( {item.children.map(getHelpMenuItem)} ) } case 'submenu': { return ( {item.children.map(getHelpMenuItem)} ) } case 'item': { const { id, kbd, label, onSelect, icon } = item.actionItem return ( onSelect('help-menu')} iconLeft={icon} /> ) } } } return <>{menuSchema.map(getHelpMenuItem)} }