|
|
@@ -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()
|
|
|
+}
|