Răsfoiți Sursa

tauri: only alert on update failure when triggered manually

Brendan Allan 2 luni în urmă
părinte
comite
c6f84f32d7
3 a modificat fișierele cu 14 adăugiri și 14 ștergeri
  1. 1 1
      packages/tauri/src/index.tsx
  2. 1 1
      packages/tauri/src/menu.ts
  3. 12 12
      packages/tauri/src/updater.ts

+ 1 - 1
packages/tauri/src/index.tsx

@@ -54,7 +54,7 @@ createMenu()
 
 render(() => {
   onMount(() => {
-    if (UPDATER_ENABLED) runUpdater()
+    if (UPDATER_ENABLED) runUpdater({ alertOnFail: false })
   })
 
   return (

+ 1 - 1
packages/tauri/src/menu.ts

@@ -16,7 +16,7 @@ export async function createMenu() {
           }),
           await MenuItem.new({
             enabled: UPDATER_ENABLED,
-            action: () => runUpdater(),
+            action: () => runUpdater({ alertOnFail: true }),
             text: "Check For Updates...",
           }),
           await PredefinedMenuItem.new({

+ 12 - 12
packages/tauri/src/updater.ts

@@ -1,42 +1,42 @@
-import { check, DownloadEvent } from "@tauri-apps/plugin-updater"
+import { check } from "@tauri-apps/plugin-updater"
 import { relaunch } from "@tauri-apps/plugin-process"
 import { ask, message } from "@tauri-apps/plugin-dialog"
 import { invoke } from "@tauri-apps/api/core"
 
 export const UPDATER_ENABLED = window.__OPENCODE__?.updaterEnabled ?? false
 
-export async function runUpdater(onDownloadEvent?: (progress: DownloadEvent) => void) {
+export async function runUpdater({ alertOnFail }: { alertOnFail: boolean }) {
   let update
   try {
     update = await check()
   } catch {
-    await message("Failed to check for updates")
-    return false
+    if(alertOnFail) await message("Failed to check for updates", { title: "Update Check Failed"})
   }
 
-  if (!update) return
-  if (update.version <= update.currentVersion) return
+  if (!update){
+    if(alertOnFail) await message("You are already using the latest version of OpenCode", { title: "No Update Available"})
+
+    return
+  }
 
   try {
-    await update.download(onDownloadEvent)
+    await update.download()
   } catch {
-    return false
+    if(alertOnFail) await message("Failed to download update", { title: "Update Failed" })
   }
 
   const shouldUpdate = await ask(
     `Version ${update.version} of OpenCode has been downloaded, would you like to install it and relaunch?`,
+    { title: "Update Downloaded" }
   )
   if (!shouldUpdate) return
 
   try {
     await update.install()
   } catch {
-    await message("Failed to install update")
-    return false
+    await message("Failed to install update", { title: "Update Failed" })
   }
 
   await invoke("kill_sidecar")
   await relaunch()
-
-  return true
 }