summaryrefslogtreecommitdiffhomepage
path: root/packages/tauri/src/menu.ts
diff options
context:
space:
mode:
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..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()
+}