|
1 | | -import { Excalidraw } from '@excalidraw/excalidraw'; |
| 1 | +import { Excalidraw, MainMenu } from '@excalidraw/excalidraw'; |
2 | 2 | import { ExcalidrawImperativeAPI } from '@excalidraw/excalidraw/types/types'; |
3 | 3 | import { useEffect, useRef, useState } from 'react'; |
4 | 4 | import { ExcalidrawAPI, ServerConfig } from '../lib/api'; |
5 | 5 | import { localStorage as localStorageAPI } from '../lib/storage'; |
6 | 6 | import '@excalidraw/excalidraw/index.css'; |
| 7 | + |
7 | 8 | interface ExcalidrawWrapperProps { |
8 | 9 | serverConfig: ServerConfig; |
| 10 | + onOpenSettings: () => void; |
9 | 11 | } |
10 | 12 |
|
11 | | -export function ExcalidrawWrapper({ serverConfig }: ExcalidrawWrapperProps) { |
| 13 | +export function ExcalidrawWrapper({ serverConfig, onOpenSettings }: ExcalidrawWrapperProps) { |
12 | 14 | const excalidrawRef = useRef<ExcalidrawImperativeAPI>(null); |
13 | 15 | const [api, setApi] = useState<ExcalidrawAPI | null>(null); |
14 | 16 | const [currentDrawingId, setCurrentDrawingId] = useState<string | null>(null); |
@@ -103,7 +105,21 @@ export function ExcalidrawWrapper({ serverConfig }: ExcalidrawWrapperProps) { |
103 | 105 | ref={excalidrawRef} |
104 | 106 | onChange={handleChange} |
105 | 107 | theme="light" |
106 | | - /> |
| 108 | + > |
| 109 | + <MainMenu> |
| 110 | + <MainMenu.DefaultItems.LoadScene /> |
| 111 | + <MainMenu.DefaultItems.SaveToActiveFile /> |
| 112 | + <MainMenu.DefaultItems.Export /> |
| 113 | + <MainMenu.DefaultItems.SaveAsImage /> |
| 114 | + <MainMenu.Separator /> |
| 115 | + <MainMenu.Item onSelect={onOpenSettings}> |
| 116 | + 🔌 Server Settings |
| 117 | + </MainMenu.Item> |
| 118 | + <MainMenu.Separator /> |
| 119 | + <MainMenu.DefaultItems.Help /> |
| 120 | + <MainMenu.DefaultItems.ClearCanvas /> |
| 121 | + </MainMenu> |
| 122 | + </Excalidraw> |
107 | 123 | </div> |
108 | 124 | ); |
109 | 125 | } |
|
0 commit comments