tldraw
Version:
A tiny little drawing editor.
8 lines (7 loc) • 3.05 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../../../src/lib/ui/components/MainMenu/DefaultMainMenu.tsx"],
"sourcesContent": ["import { useContainer } from '@tldraw/editor'\nimport { DropdownMenu as _DropdownMenu } from 'radix-ui'\nimport { ReactNode, memo } from 'react'\nimport { useMenuIsOpen } from '../../hooks/useMenuIsOpen'\nimport { useTranslation } from '../../hooks/useTranslation/useTranslation'\nimport { TldrawUiButton } from '../primitives/Button/TldrawUiButton'\nimport { TldrawUiButtonIcon } from '../primitives/Button/TldrawUiButtonIcon'\nimport { TldrawUiMenuContextProvider } from '../primitives/menus/TldrawUiMenuContext'\nimport { DefaultMainMenuContent } from './DefaultMainMenuContent'\n\n/** @public */\nexport interface TLUiMainMenuProps {\n\tchildren?: ReactNode\n}\n\n/** @public @react */\nexport const DefaultMainMenu = memo(function DefaultMainMenu({ children }: TLUiMainMenuProps) {\n\tconst container = useContainer()\n\tconst [isOpen, onOpenChange] = useMenuIsOpen('main menu')\n\tconst msg = useTranslation()\n\n\t// Get the main menu content, either the default component or the user's\n\t// override. If there's no menu content, then the user has set it to null,\n\t// so skip rendering the menu.\n\tconst content = children ?? <DefaultMainMenuContent />\n\n\treturn (\n\t\t<_DropdownMenu.Root dir=\"ltr\" open={isOpen} onOpenChange={onOpenChange} modal={false}>\n\t\t\t<_DropdownMenu.Trigger asChild dir=\"ltr\">\n\t\t\t\t<TldrawUiButton type=\"icon\" data-testid=\"main-menu.button\" title={msg('menu.title')}>\n\t\t\t\t\t<TldrawUiButtonIcon icon=\"menu\" small />\n\t\t\t\t</TldrawUiButton>\n\t\t\t</_DropdownMenu.Trigger>\n\t\t\t<_DropdownMenu.Portal container={container}>\n\t\t\t\t<_DropdownMenu.Content\n\t\t\t\t\tclassName=\"tlui-menu\"\n\t\t\t\t\tside=\"bottom\"\n\t\t\t\t\talign=\"start\"\n\t\t\t\t\tcollisionPadding={4}\n\t\t\t\t\talignOffset={0}\n\t\t\t\t\tsideOffset={6}\n\t\t\t\t>\n\t\t\t\t\t<TldrawUiMenuContextProvider type=\"menu\" sourceId=\"main-menu\">\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</TldrawUiMenuContextProvider>\n\t\t\t\t</_DropdownMenu.Content>\n\t\t\t</_DropdownMenu.Portal>\n\t\t</_DropdownMenu.Root>\n\t)\n})\n"],
"mappings": "AAwB6B,cAG3B,YAH2B;AAxB7B,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB,qBAAqB;AAC9C,SAAoB,YAAY;AAChC,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AACnC,SAAS,mCAAmC;AAC5C,SAAS,8BAA8B;AAQhC,MAAM,kBAAkB,KAAK,SAASA,iBAAgB,EAAE,SAAS,GAAsB;AAC7F,QAAM,YAAY,aAAa;AAC/B,QAAM,CAAC,QAAQ,YAAY,IAAI,cAAc,WAAW;AACxD,QAAM,MAAM,eAAe;AAK3B,QAAM,UAAU,YAAY,oBAAC,0BAAuB;AAEpD,SACC,qBAAC,cAAc,MAAd,EAAmB,KAAI,OAAM,MAAM,QAAQ,cAA4B,OAAO,OAC9E;AAAA,wBAAC,cAAc,SAAd,EAAsB,SAAO,MAAC,KAAI,OAClC,8BAAC,kBAAe,MAAK,QAAO,eAAY,oBAAmB,OAAO,IAAI,YAAY,GACjF,8BAAC,sBAAmB,MAAK,QAAO,OAAK,MAAC,GACvC,GACD;AAAA,IACA,oBAAC,cAAc,QAAd,EAAqB,WACrB;AAAA,MAAC,cAAc;AAAA,MAAd;AAAA,QACA,WAAU;AAAA,QACV,MAAK;AAAA,QACL,OAAM;AAAA,QACN,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,YAAY;AAAA,QAEZ,8BAAC,+BAA4B,MAAK,QAAO,UAAS,aAChD,mBACF;AAAA;AAAA,IACD,GACD;AAAA,KACD;AAEF,CAAC;",
"names": ["DefaultMainMenu"]
}