finish update dialog
This commit is contained in:
		| @@ -1,13 +1,16 @@ | |||||||
| const semver = require("semver"); | const semver = require("semver"); | ||||||
| const { appVersion } = require("./appInfo"); | const { appVersion } = require("./appInfo"); | ||||||
|  |  | ||||||
| const repoUrl = | const repoApiUrl = | ||||||
|   "https://git.ez-pp.farm/api/v1/repos/EZPPFarm/EZPPLauncher/releases?limit=1"; |   "https://git.ez-pp.farm/api/v1/repos/EZPPFarm/EZPPLauncher/releases?limit=1"; | ||||||
|  |  | ||||||
|  | const releasesUrl = | ||||||
|  |   "https://git.ez-pp.farm/EZPPFarm/EZPPLauncher/releases/latest"; | ||||||
|  |  | ||||||
| module.exports = { | module.exports = { | ||||||
|   updateAvailable: async () => { |   updateAvailable: async () => { | ||||||
|     try { |     try { | ||||||
|       const latestRelease = await fetch(repoUrl); |       const latestRelease = await fetch(repoApiUrl); | ||||||
|       const json = await latestRelease.json(); |       const json = await latestRelease.json(); | ||||||
|       if (json.length <= 0) return false; |       if (json.length <= 0) return false; | ||||||
|       return { |       return { | ||||||
| @@ -18,4 +21,5 @@ module.exports = { | |||||||
|       return { update: false }; |       return { update: false }; | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|  |   releasesUrl, | ||||||
| }; | }; | ||||||
|   | |||||||
							
								
								
									
										15
									
								
								main.js
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								main.js
									
									
									
									
									
								
							| @@ -1,5 +1,7 @@ | |||||||
| // Modules to control application life and create native browser window | // Modules to control application life and create native browser window | ||||||
| const { app, BrowserWindow, Menu, ipcMain, dialog } = require("electron"); | const { app, BrowserWindow, Menu, ipcMain, dialog, shell } = require( | ||||||
|  |   "electron", | ||||||
|  | ); | ||||||
| const path = require("path"); | const path = require("path"); | ||||||
| const serve = require("electron-serve"); | const serve = require("electron-serve"); | ||||||
| const loadURL = serve({ directory: "public" }); | const loadURL = serve({ directory: "public" }); | ||||||
| @@ -31,7 +33,7 @@ const richPresence = require("./electron/richPresence"); | |||||||
| const cryptUtil = require("./electron/cryptoUtil"); | const cryptUtil = require("./electron/cryptoUtil"); | ||||||
| const { getHwId } = require("./electron/hwidUtil"); | const { getHwId } = require("./electron/hwidUtil"); | ||||||
| const { appName, appVersion } = require("./electron/appInfo"); | const { appName, appVersion } = require("./electron/appInfo"); | ||||||
| const { updateAvailable } = require("./electron/updateCheck"); | const { updateAvailable, releasesUrl } = require("./electron/updateCheck"); | ||||||
|  |  | ||||||
| // Keep a global reference of the window object, if you don't, the window will | // Keep a global reference of the window object, if you don't, the window will | ||||||
| // be closed automatically when the JavaScript object is garbage collected. | // be closed automatically when the JavaScript object is garbage collected. | ||||||
| @@ -319,6 +321,11 @@ function registerIPCPipes() { | |||||||
|     return config.all(); |     return config.all(); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|  |   ipcMain.handle("ezpplauncher:exitAndUpdate", async (e) => { | ||||||
|  |     await shell.openExternal(releasesUrl); | ||||||
|  |     app.exit(); | ||||||
|  |   }); | ||||||
|  |  | ||||||
|   ipcMain.handle("ezpplauncher:launch", async (e) => { |   ipcMain.handle("ezpplauncher:launch", async (e) => { | ||||||
|     const configPatch = config.get("patch"); |     const configPatch = config.get("patch"); | ||||||
|     patch = configPatch != undefined ? configPatch == "true" : true; |     patch = configPatch != undefined ? configPatch == "true" : true; | ||||||
| @@ -580,7 +587,7 @@ function createWindow() { | |||||||
|   // Open the DevTools and also disable Electron Security Warning. |   // Open the DevTools and also disable Electron Security Warning. | ||||||
|   if (isDev()) { |   if (isDev()) { | ||||||
|     process.env["ELECTRON_DISABLE_SECURITY_WARNINGS"] = true; |     process.env["ELECTRON_DISABLE_SECURITY_WARNINGS"] = true; | ||||||
|     // mainWindow.webContents.openDevTools({ mode: "detach" }); |     mainWindow.webContents.openDevTools({ mode: "detach" }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   // Emitted when the window is closed. |   // Emitted when the window is closed. | ||||||
| @@ -595,7 +602,7 @@ function createWindow() { | |||||||
|   // This helps in showing the window gracefully. |   // This helps in showing the window gracefully. | ||||||
|   mainWindow.once("ready-to-show", async () => { |   mainWindow.once("ready-to-show", async () => { | ||||||
|     const updateInfo = await updateAvailable(); |     const updateInfo = await updateAvailable(); | ||||||
|     if (!updateInfo.update) { |     if (updateInfo.update) { | ||||||
|       mainWindow.webContents.send("ezpplauncher:update", updateInfo.release); |       mainWindow.webContents.send("ezpplauncher:update", updateInfo.release); | ||||||
|     } |     } | ||||||
|     mainWindow.show(); |     mainWindow.show(); | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										10
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -22,6 +22,7 @@ | |||||||
|         "regedit-rs": "^1.0.2", |         "regedit-rs": "^1.0.2", | ||||||
|         "semver": "^7.5.4", |         "semver": "^7.5.4", | ||||||
|         "svelte-french-toast": "^1.2.0", |         "svelte-french-toast": "^1.2.0", | ||||||
|  |         "sweetalert2": "^11.10.3", | ||||||
|         "systeminformation": "^5.21.22" |         "systeminformation": "^5.21.22" | ||||||
|       }, |       }, | ||||||
|       "devDependencies": { |       "devDependencies": { | ||||||
| @@ -8484,6 +8485,15 @@ | |||||||
|       "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", |       "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|  |     "node_modules/sweetalert2": { | ||||||
|  |       "version": "11.10.3", | ||||||
|  |       "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.10.3.tgz", | ||||||
|  |       "integrity": "sha512-mZYtQR7v+khyEruq0SsVUa6XIdI9Aue8s2XAIpAwdlLN1T0w7mxKEjyubiBZ3/bLbHC/wGS4wNABvXWubCizvA==", | ||||||
|  |       "funding": { | ||||||
|  |         "type": "individual", | ||||||
|  |         "url": "https://github.com/sponsors/limonte" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "node_modules/systeminformation": { |     "node_modules/systeminformation": { | ||||||
|       "version": "5.21.22", |       "version": "5.21.22", | ||||||
|       "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.22.tgz", |       "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.22.tgz", | ||||||
|   | |||||||
| @@ -49,6 +49,7 @@ | |||||||
|     "regedit-rs": "^1.0.2", |     "regedit-rs": "^1.0.2", | ||||||
|     "semver": "^7.5.4", |     "semver": "^7.5.4", | ||||||
|     "svelte-french-toast": "^1.2.0", |     "svelte-french-toast": "^1.2.0", | ||||||
|  |     "sweetalert2": "^11.10.3", | ||||||
|     "systeminformation": "^5.21.22" |     "systeminformation": "^5.21.22" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|   | |||||||
| @@ -82,6 +82,10 @@ window.addEventListener("settings-set", async (e) => { | |||||||
|   await ipcRenderer.invoke("ezpplauncher:settings-set", e.detail); |   await ipcRenderer.invoke("ezpplauncher:settings-set", e.detail); | ||||||
| }); | }); | ||||||
|  |  | ||||||
|  | window.addEventListener("updateExit", async () => { | ||||||
|  |   await ipcRenderer.invoke("ezpplauncher:exitAndUpdate"); | ||||||
|  | }); | ||||||
|  |  | ||||||
| ipcRenderer.addListener("ezpplauncher:launchabort", (e, args) => { | ipcRenderer.addListener("ezpplauncher:launchabort", (e, args) => { | ||||||
|   window.dispatchEvent( |   window.dispatchEvent( | ||||||
|     new CustomEvent("launch-abort"), |     new CustomEvent("launch-abort"), | ||||||
|   | |||||||
| @@ -6,7 +6,6 @@ | |||||||
|     DropdownHeader, |     DropdownHeader, | ||||||
|     DropdownDivider, |     DropdownDivider, | ||||||
|     Button, |     Button, | ||||||
|     Modal, |  | ||||||
|     Indicator, |     Indicator, | ||||||
|   } from "flowbite-svelte"; |   } from "flowbite-svelte"; | ||||||
|   import { |   import { | ||||||
| @@ -30,11 +29,11 @@ | |||||||
|   import toast, { Toaster } from "svelte-french-toast"; |   import toast, { Toaster } from "svelte-french-toast"; | ||||||
|   import type { User } from "./types/user"; |   import type { User } from "./types/user"; | ||||||
|   import Settings from "./pages/Settings.svelte"; |   import Settings from "./pages/Settings.svelte"; | ||||||
|  |   import Swal from "sweetalert2"; | ||||||
|  |  | ||||||
|   let user: User | undefined = undefined; |   let user: User | undefined = undefined; | ||||||
|   let loggedIn = false; |   let loggedIn = false; | ||||||
|  |  | ||||||
|   let showUpdateDialog = false; |  | ||||||
|   let updateInfo: Record<string, unknown>; |   let updateInfo: Record<string, unknown>; | ||||||
|  |  | ||||||
|   currentUser.subscribe((newUser) => { |   currentUser.subscribe((newUser) => { | ||||||
| @@ -54,14 +53,17 @@ | |||||||
|     }); |     }); | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   window.addEventListener("update", (e) => { |   window.addEventListener("update", async (e) => { | ||||||
|     const update = (e as CustomEvent).detail; |     const update = (e as CustomEvent).detail; | ||||||
|     setTimeout(() => { |     await Swal.fire({ | ||||||
|       showUpdateDialog = true; |       html: `EZPPLauncher ${update.tag_name} is now available!<br>Click the Button bellow to download the latest release!`, | ||||||
|       updateInfo = update; |       title: "It's your lucky day!", | ||||||
|  |       allowOutsideClick: false, | ||||||
|       document.getElementById("updateDialog")?.blur(); |       allowEscapeKey: false, | ||||||
|     }, 2000); |       allowEnterKey: false, | ||||||
|  |       confirmButtonText: "Thanks!", | ||||||
|  |     }); | ||||||
|  |     window.dispatchEvent(new CustomEvent("updateExit")); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|   window.addEventListener("launchStatusUpdate", (e) => { |   window.addEventListener("launchStatusUpdate", (e) => { | ||||||
| @@ -117,9 +119,8 @@ | |||||||
|  |  | ||||||
| <Toaster></Toaster> | <Toaster></Toaster> | ||||||
|  |  | ||||||
| <!-- TODO: Update dialog--> | {#if !updateInfo} | ||||||
|  |   <div class="p-2 flex flex-row justify-between items-center"> | ||||||
| <div class="p-2 flex flex-row justify-between items-center"> |  | ||||||
|     <div class="flex flex-row items-center animate-fadeIn opacity-0"> |     <div class="flex flex-row items-center animate-fadeIn opacity-0"> | ||||||
|       {#if $currentPage == Page.Settings} |       {#if $currentPage == Page.Settings} | ||||||
|         <Button |         <Button | ||||||
| @@ -209,12 +210,13 @@ | |||||||
|         {/if} |         {/if} | ||||||
|       </Dropdown> |       </Dropdown> | ||||||
|     {/if} |     {/if} | ||||||
| </div> |   </div> | ||||||
|  |  | ||||||
| {#if $currentPage == Page.Login} |   {#if $currentPage == Page.Login} | ||||||
|     <Login /> |     <Login /> | ||||||
| {:else if $currentPage == Page.Settings} |   {:else if $currentPage == Page.Settings} | ||||||
|     <Settings /> |     <Settings /> | ||||||
| {:else} |   {:else} | ||||||
|     <Launch /> |     <Launch /> | ||||||
|  |   {/if} | ||||||
| {/if} | {/if} | ||||||
|   | |||||||
| @@ -58,6 +58,15 @@ html .cet-titlebar .cet-control-icon svg { | |||||||
|     background-color: #202020 !important; |     background-color: #202020 !important; | ||||||
|     color: #ececec !important; |     color: #ececec !important; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   .swal2-container { | ||||||
|  |     background: #202020 !important; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   .swal2-container .swal2-popup { | ||||||
|  |     background: #323232 !important; | ||||||
|  |     color: #fff !important; | ||||||
|  |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| .animatedProgress div { | .animatedProgress div { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user