diff options
Diffstat (limited to 'src/main/preload.ts')
| -rw-r--r-- | src/main/preload.ts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main/preload.ts b/src/main/preload.ts index 52e947b..44467db 100644 --- a/src/main/preload.ts +++ b/src/main/preload.ts | |||
| @@ -62,6 +62,10 @@ export interface ClaudeFlowAPI { | |||
| 62 | 62 | ||
| 63 | // Dialogs | 63 | // Dialogs |
| 64 | selectDirectory: () => Promise<string | null>; | 64 | selectDirectory: () => Promise<string | null>; |
| 65 | |||
| 66 | // Window | ||
| 67 | toggleMaximize: () => Promise<void>; | ||
| 68 | onWindowMaximized: (cb: (isMaximized: boolean) => void) => () => void; | ||
| 65 | } | 69 | } |
| 66 | 70 | ||
| 67 | const api: ClaudeFlowAPI = { | 71 | const api: ClaudeFlowAPI = { |
| @@ -127,6 +131,14 @@ const api: ClaudeFlowAPI = { | |||
| 127 | const result = await ipcRenderer.invoke("dialog:selectDirectory"); | 131 | const result = await ipcRenderer.invoke("dialog:selectDirectory"); |
| 128 | return result; | 132 | return result; |
| 129 | }, | 133 | }, |
| 134 | |||
| 135 | // Window | ||
| 136 | toggleMaximize: () => ipcRenderer.invoke("window:toggleMaximize"), | ||
| 137 | onWindowMaximized: (cb) => { | ||
| 138 | const handler = (_: IpcRendererEvent, val: boolean) => cb(val); | ||
| 139 | ipcRenderer.on("window:maximized", handler); | ||
| 140 | return () => ipcRenderer.removeListener("window:maximized", handler); | ||
| 141 | }, | ||
| 130 | }; | 142 | }; |
| 131 | 143 | ||
| 132 | contextBridge.exposeInMainWorld("api", api); | 144 | contextBridge.exposeInMainWorld("api", api); |
