12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- import {
- loginIcon,
- ExcalLogo,
- eyeIcon,
- } from "@excalidraw/excalidraw/components/icons";
- import { MainMenu } from "@excalidraw/excalidraw/index";
- import React from "react";
- import { isDevEnv } from "@excalidraw/common";
- import type { Theme } from "@excalidraw/element/types";
- import { LanguageList } from "../app-language/LanguageList";
- import { isExcalidrawPlusSignedUser } from "../app_constants";
- 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=""
- >
- Excalidraw+
- </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>
- {isDevEnv() && (
- <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>
- );
- });
|