mirror of
				https://github.com/excalidraw/excalidraw.git
				synced 2025-10-26 08:24:20 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import React from "react";
 | |
| import {
 | |
|   arrowBarToLeftIcon,
 | |
|   ExcalLogo,
 | |
| } from "../../packages/excalidraw/components/icons";
 | |
| import { Theme } from "../../packages/excalidraw/element/types";
 | |
| import { MainMenu } from "../../packages/excalidraw/index";
 | |
| import { isExcalidrawPlusSignedUser } from "../app_constants";
 | |
| import { LanguageList } from "./LanguageList";
 | |
| 
 | |
| export const AppMainMenu: React.FC<{
 | |
|   onCollabDialogOpen: () => any;
 | |
|   isCollaborating: boolean;
 | |
|   isCollabEnabled: boolean;
 | |
|   theme: Theme | "system";
 | |
|   setTheme: (theme: Theme | "system") => 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.Help />
 | |
|       <MainMenu.DefaultItems.ClearCanvas />
 | |
|       <MainMenu.Separator />
 | |
|       <MainMenu.ItemLink
 | |
|         icon={ExcalLogo}
 | |
|         href={`${
 | |
|           import.meta.env.VITE_APP_PLUS_APP
 | |
|         }/plus?utm_source=excalidraw&utm_medium=app&utm_content=hamburger`}
 | |
|         className=""
 | |
|       >
 | |
|         Excalidraw+
 | |
|       </MainMenu.ItemLink>
 | |
|       <MainMenu.DefaultItems.Socials />
 | |
|       <MainMenu.ItemLink
 | |
|         icon={arrowBarToLeftIcon}
 | |
|         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>
 | |
|       <MainMenu.Separator />
 | |
|       <MainMenu.DefaultItems.ToggleTheme
 | |
|         allowSystemTheme
 | |
|         theme={props.theme}
 | |
|         onSelect={props.setTheme}
 | |
|       />
 | |
|       <MainMenu.ItemCustom>
 | |
|         <LanguageList style={{ width: "100%" }} />
 | |
|       </MainMenu.ItemCustom>
 | |
|       <MainMenu.DefaultItems.ChangeCanvasBackground />
 | |
|     </MainMenu>
 | |
|   );
 | |
| });
 | 
