import { actionLoadScene, actionShortcuts } from "../../actions"; import { getShortcutFromShortcutName } from "../../actions/shortcuts"; import { t, useI18n } from "../../i18n"; import { useDevice, useExcalidrawActionManager } from "../App"; import { useTunnels } from "../../context/tunnels"; import { HelpIcon, LoadIcon, usersIcon } from "../icons"; import { useUIAppState } from "../../context/ui-appState"; import { ExcalidrawLogo } from "../ExcalidrawLogo"; const WelcomeScreenMenuItemContent = ({ icon, shortcut, children, }: { icon?: JSX.Element; shortcut?: string | null; children: React.ReactNode; }) => { const device = useDevice(); return ( <>
{icon}
{children}
{shortcut && !device.editor.isMobile && (
{shortcut}
)} ); }; WelcomeScreenMenuItemContent.displayName = "WelcomeScreenMenuItemContent"; const WelcomeScreenMenuItem = ({ onSelect, children, icon, shortcut, className = "", ...props }: { onSelect: () => void; children: React.ReactNode; icon?: JSX.Element; shortcut?: string | null; } & React.ButtonHTMLAttributes) => { return ( ); }; WelcomeScreenMenuItem.displayName = "WelcomeScreenMenuItem"; const WelcomeScreenMenuItemLink = ({ children, href, icon, shortcut, className = "", ...props }: { children: React.ReactNode; href: string; icon?: JSX.Element; shortcut?: string | null; } & React.AnchorHTMLAttributes) => { return ( {children} ); }; WelcomeScreenMenuItemLink.displayName = "WelcomeScreenMenuItemLink"; const Center = ({ children }: { children?: React.ReactNode }) => { const { WelcomeScreenCenterTunnel } = useTunnels(); return (
{children || ( <> {t("welcomeScreen.defaults.center_heading")} )}
); }; Center.displayName = "Center"; const Logo = ({ children }: { children?: React.ReactNode }) => { return (
{children || }
); }; Logo.displayName = "Logo"; const Heading = ({ children }: { children: React.ReactNode }) => { return (
{children}
); }; Heading.displayName = "Heading"; const Menu = ({ children }: { children?: React.ReactNode }) => { return
{children}
; }; Menu.displayName = "Menu"; const MenuItemHelp = () => { const actionManager = useExcalidrawActionManager(); return ( actionManager.executeAction(actionShortcuts)} shortcut="?" icon={HelpIcon} > {t("helpDialog.title")} ); }; MenuItemHelp.displayName = "MenuItemHelp"; const MenuItemLoadScene = () => { const appState = useUIAppState(); const actionManager = useExcalidrawActionManager(); if (appState.viewModeEnabled) { return null; } return ( actionManager.executeAction(actionLoadScene)} shortcut={getShortcutFromShortcutName("loadScene")} icon={LoadIcon} > {t("buttons.load")} ); }; MenuItemLoadScene.displayName = "MenuItemLoadScene"; const MenuItemLiveCollaborationTrigger = ({ onSelect, }: { onSelect: () => any; }) => { const { t } = useI18n(); return ( {t("labels.liveCollaboration")} ); }; MenuItemLiveCollaborationTrigger.displayName = "MenuItemLiveCollaborationTrigger"; // ----------------------------------------------------------------------------- Center.Logo = Logo; Center.Heading = Heading; Center.Menu = Menu; Center.MenuItem = WelcomeScreenMenuItem; Center.MenuItemLink = WelcomeScreenMenuItemLink; Center.MenuItemHelp = MenuItemHelp; Center.MenuItemLoadScene = MenuItemLoadScene; Center.MenuItemLiveCollaborationTrigger = MenuItemLiveCollaborationTrigger; export { Center };