UPDATE: Add self update
This commit is contained in:
38
frontend/src/helper/launcher.ts
Normal file
38
frontend/src/helper/launcher.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import useLauncherStore from "@/stores/launcherStore";
|
||||
import { AppService, GitService } from "@bindings/firefly-launcher/internal";
|
||||
import { toast } from "react-toastify";
|
||||
import { sleep } from "./sleep";
|
||||
|
||||
export async function CheckUpdateLauncher() : Promise<{isUpdate: boolean, version: string}> {
|
||||
let isUpdateLauncher = false
|
||||
let version = ""
|
||||
const [launcherCurrentOk, launcherCurrentVersion] = await AppService.GetCurrentLauncherVersion()
|
||||
if (!launcherCurrentOk) {
|
||||
toast.error("Launcher error: cannot get current version")
|
||||
} else {
|
||||
const [launcherNewOk, launcherNewVersion, launcherNewError] = await GitService.GetLatestLauncherVersion()
|
||||
version = launcherCurrentVersion
|
||||
if (launcherNewOk && launcherNewVersion && launcherNewVersion !== launcherCurrentVersion) {
|
||||
isUpdateLauncher = true
|
||||
version = launcherNewVersion
|
||||
} else if (!launcherNewOk) {
|
||||
toast.error("Launcher error: " + launcherNewError)
|
||||
}
|
||||
}
|
||||
return { isUpdate: isUpdateLauncher, version: version }
|
||||
}
|
||||
|
||||
export async function UpdateLauncher(launcherVersion: string) : Promise<void> {
|
||||
const {setDownloadType } = useLauncherStore.getState()
|
||||
setDownloadType("update:launcher:downloading")
|
||||
const [ok, error] = await GitService.UpdateLauncherProgress(launcherVersion)
|
||||
if (ok) {
|
||||
setDownloadType("update:launcher:success")
|
||||
|
||||
} else {
|
||||
toast.error(error)
|
||||
setDownloadType("update:launcher:failed")
|
||||
}
|
||||
AppService.CloseAppAfterTimeout(5)
|
||||
await sleep(5000)
|
||||
}
|
||||
Reference in New Issue
Block a user