From 87efd274593c1e104f839e5e103d39dcd39f341e Mon Sep 17 00:00:00 2001 From: Brendan Allan Date: Tue, 16 Dec 2025 18:33:04 +0800 Subject: tauri: macos-only app menu --- packages/tauri/src/menu.ts | 94 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 packages/tauri/src/menu.ts (limited to 'packages/tauri/src/menu.ts') diff --git a/packages/tauri/src/menu.ts b/packages/tauri/src/menu.ts new file mode 100644 index 000000000..72ba9b754 --- /dev/null +++ b/packages/tauri/src/menu.ts @@ -0,0 +1,94 @@ +import { Menu, MenuItem, PredefinedMenuItem, Submenu } from "@tauri-apps/api/menu" +import { type as ostype } from "@tauri-apps/plugin-os" + +import { runUpdater, UPDATER_ENABLED } from "./updater" + +export async function createMenu() { + if (ostype() !== "macos") return; + + const menu = await Menu.new({ + items: [ + await Submenu.new({ + text: "OpenCode", + items: [ + await PredefinedMenuItem.new({ + item: { About: null }, + }), + await MenuItem.new({ + enabled: UPDATER_ENABLED, + action: () => runUpdater(), + text: "Check For Updates...", + }), + await PredefinedMenuItem.new({ + item: "Separator", + }), + await PredefinedMenuItem.new({ + item: "Hide", + }), + await PredefinedMenuItem.new({ + item: "HideOthers", + }), + await PredefinedMenuItem.new({ + item: "ShowAll", + }), + await PredefinedMenuItem.new({ + item: "Separator", + }), + await PredefinedMenuItem.new({ + item: "Quit", + }), + ].filter(Boolean), + }), + // await Submenu.new({ + // text: "File", + // items: [ + // await MenuItem.new({ + // enabled: false, + // text: "Open Project...", + // }), + // await PredefinedMenuItem.new({ + // item: "Separator" + // }), + // await MenuItem.new({ + // enabled: false, + // text: "New Session", + // }), + // await PredefinedMenuItem.new({ + // item: "Separator" + // }), + // await MenuItem.new({ + // enabled: false, + // text: "Close Project", + // }) + // ] + // }), + await Submenu.new({ + text: "Edit", + items: [ + await PredefinedMenuItem.new({ + item: "Undo", + }), + await PredefinedMenuItem.new({ + item: "Redo", + }), + await PredefinedMenuItem.new({ + item: "Separator", + }), + await PredefinedMenuItem.new({ + item: "Cut", + }), + await PredefinedMenuItem.new({ + item: "Copy", + }), + await PredefinedMenuItem.new({ + item: "Paste", + }), + await PredefinedMenuItem.new({ + item: "SelectAll", + }), + ], + }), + ], + }) + menu.setAsAppMenu() +} -- cgit v1.2.3 From 75e5130cf8f58b32ee3f3ba2249d5917e7e3d6fc Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Tue, 16 Dec 2025 10:33:49 +0000 Subject: chore: format code --- packages/tauri/src/menu.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'packages/tauri/src/menu.ts') diff --git a/packages/tauri/src/menu.ts b/packages/tauri/src/menu.ts index 72ba9b754..d32506d32 100644 --- a/packages/tauri/src/menu.ts +++ b/packages/tauri/src/menu.ts @@ -4,7 +4,7 @@ import { type as ostype } from "@tauri-apps/plugin-os" import { runUpdater, UPDATER_ENABLED } from "./updater" export async function createMenu() { - if (ostype() !== "macos") return; + if (ostype() !== "macos") return const menu = await Menu.new({ items: [ -- cgit v1.2.3