summaryrefslogtreecommitdiffhomepage
path: root/packages/tauri/src/menu.ts
diff options
context:
space:
mode:
authorDavid Hill <[email protected]>2025-12-16 10:54:51 +0000
committerDavid Hill <[email protected]>2025-12-16 10:54:51 +0000
commit05e0759878cb0f24c981c69ae26f6be3ea5583c6 (patch)
tree39aaf6b86a6f2b8e653120e80d8f0facb528051b /packages/tauri/src/menu.ts
parent2330ec6dc3000ae8b86810e9d59b414ad4f05f47 (diff)
parent75e5130cf8f58b32ee3f3ba2249d5917e7e3d6fc (diff)
downloadopencode-05e0759878cb0f24c981c69ae26f6be3ea5583c6.tar.gz
opencode-05e0759878cb0f24c981c69ae26f6be3ea5583c6.zip
Merge branch 'dev' of https://github.com/sst/opencode into dev
Diffstat (limited to 'packages/tauri/src/menu.ts')
-rw-r--r--packages/tauri/src/menu.ts94
1 files changed, 94 insertions, 0 deletions
diff --git a/packages/tauri/src/menu.ts b/packages/tauri/src/menu.ts
new file mode 100644
index 000000000..d32506d32
--- /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()
+}