// @refresh reload import { render } from "solid-js/web" import { App, PlatformProvider, Platform } from "@opencode-ai/desktop" import { onMount } from "solid-js" import { open, save } from "@tauri-apps/plugin-dialog" import { open as shellOpen } from "@tauri-apps/plugin-shell" import { type as ostype } from "@tauri-apps/plugin-os" import { runUpdater, UPDATER_ENABLED } from "./updater" import { createMenu } from "./menu" const root = document.getElementById("root") if (import.meta.env.DEV && !(root instanceof HTMLElement)) { throw new Error( "Root element not found. Did you forget to add it to your index.html? Or maybe the id attribute got misspelled?", ) } const platform: Platform = { platform: "tauri", async openDirectoryPickerDialog(opts) { const result = await open({ directory: true, multiple: opts?.multiple ?? false, title: opts?.title ?? "Choose a folder", }) return result }, async openFilePickerDialog(opts) { const result = await open({ directory: false, multiple: opts?.multiple ?? false, title: opts?.title ?? "Choose a file", }) return result }, async saveFilePickerDialog(opts) { const result = await save({ title: opts?.title ?? "Save file", defaultPath: opts?.defaultPath, }) return result }, openLink(url: string) { shellOpen(url) }, } createMenu() render(() => { onMount(() => { if (UPDATER_ENABLED) runUpdater() }) return ( {ostype() === "macos" && (
)} ) }, root!)