import React from "react"; import { useDevice, useExcalidrawAppState, useExcalidrawSetAppState, } from "../App"; import DropdownMenu from "../dropdownMenu/DropdownMenu"; import * as DefaultItems from "./DefaultItems"; import { UserList } from "../UserList"; import { t } from "../../i18n"; import { HamburgerMenuIcon } from "../icons"; import { composeEventHandlers } from "../../utils"; const MainMenu = ({ children, onSelect, }: { children?: React.ReactNode; /** * Called when any menu item is selected (clicked on). */ onSelect?: (event: Event) => void; }) => { const device = useDevice(); const appState = useExcalidrawAppState(); const setAppState = useExcalidrawSetAppState(); const onClickOutside = device.isMobile ? undefined : () => setAppState({ openMenu: null }); return ( { setAppState({ openMenu: appState.openMenu === "canvas" ? null : "canvas", }); }} > {HamburgerMenuIcon} { setAppState({ openMenu: null }); })} > {children} {device.isMobile && appState.collaborators.size > 0 && (
{t("labels.collaborators")}
)}
); }; MainMenu.Trigger = DropdownMenu.Trigger; MainMenu.Item = DropdownMenu.Item; MainMenu.ItemLink = DropdownMenu.ItemLink; MainMenu.ItemCustom = DropdownMenu.ItemCustom; MainMenu.Group = DropdownMenu.Group; MainMenu.Separator = DropdownMenu.Separator; MainMenu.DefaultItems = DefaultItems; export default MainMenu; MainMenu.displayName = "Menu";