diff options
Diffstat (limited to 'excalidraw-app/components/AppMainMenu.tsx')
| -rw-r--r-- | excalidraw-app/components/AppMainMenu.tsx | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/excalidraw-app/components/AppMainMenu.tsx b/excalidraw-app/components/AppMainMenu.tsx new file mode 100644 index 0000000..426ec69 --- /dev/null +++ b/excalidraw-app/components/AppMainMenu.tsx @@ -0,0 +1,86 @@ +import React from "react"; +import { + loginIcon, + ExcalLogo, + eyeIcon, +} from "@excalidraw/excalidraw/components/icons"; +import type { Theme } from "@excalidraw/excalidraw/element/types"; +import { MainMenu } from "@excalidraw/excalidraw/index"; +import { isExcalidrawPlusSignedUser } from "../app_constants"; +import { LanguageList } from "../app-language/LanguageList"; +import { saveDebugState } from "./DebugCanvas"; + +export const AppMainMenu: React.FC<{ + onCollabDialogOpen: () => any; + isCollaborating: boolean; + isCollabEnabled: boolean; + theme: Theme | "system"; + setTheme: (theme: Theme | "system") => void; + refresh: () => void; +}> = React.memo((props) => { + return ( + <MainMenu> + <MainMenu.DefaultItems.LoadScene /> + <MainMenu.DefaultItems.SaveToActiveFile /> + <MainMenu.DefaultItems.Export /> + <MainMenu.DefaultItems.SaveAsImage /> + {props.isCollabEnabled && ( + <MainMenu.DefaultItems.LiveCollaborationTrigger + isCollaborating={props.isCollaborating} + onSelect={() => props.onCollabDialogOpen()} + /> + )} + <MainMenu.DefaultItems.CommandPalette className="highlighted" /> + <MainMenu.DefaultItems.SearchMenu /> + <MainMenu.DefaultItems.Help /> + <MainMenu.DefaultItems.ClearCanvas /> + <MainMenu.Separator /> + <MainMenu.ItemLink + icon={ExcalLogo} + href={`${ + import.meta.env.VITE_APP_PLUS_LP + }/plus?utm_source=excalidraw&utm_medium=app&utm_content=hamburger`} + className="" + > + kj-diagramming cloud + </MainMenu.ItemLink> + <MainMenu.DefaultItems.Socials /> + <MainMenu.ItemLink + icon={loginIcon} + href={`${import.meta.env.VITE_APP_PLUS_APP}${ + isExcalidrawPlusSignedUser ? "" : "/sign-up" + }?utm_source=signin&utm_medium=app&utm_content=hamburger`} + className="highlighted" + > + {isExcalidrawPlusSignedUser ? "Sign in" : "Sign up"} + </MainMenu.ItemLink> + {import.meta.env.DEV && ( + <MainMenu.Item + icon={eyeIcon} + onClick={() => { + if (window.visualDebug) { + delete window.visualDebug; + saveDebugState({ enabled: false }); + } else { + window.visualDebug = { data: [] }; + saveDebugState({ enabled: true }); + } + props?.refresh(); + }} + > + Visual Debug + </MainMenu.Item> + )} + <MainMenu.Separator /> + <MainMenu.DefaultItems.ToggleTheme + allowSystemTheme + theme={props.theme} + onSelect={props.setTheme} + /> + <MainMenu.ItemCustom> + <LanguageList style={{ width: "100%" }} /> + </MainMenu.ItemCustom> + <MainMenu.DefaultItems.ChangeCanvasBackground /> + </MainMenu> + ); +}); |
