From 3fcafedc6f6515abf17e04e612eb5824505254c3 Mon Sep 17 00:00:00 2001 From: Vendicated Date: Mon, 10 Apr 2023 22:48:11 +0200 Subject: [PATCH] improve further --- package.json | 2 +- src/shared/IpcEvents.ts | 1 + src/shared/settings.d.ts | 1 + src/updater/main.ts | 8 ++++++- src/updater/preload.ts | 1 + static/updater.html | 46 ++++++++++++++++++++++++++++++++++------ 6 files changed, 51 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 81018a4..281b097 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "VencordDesktop", - "version": "0.1.5", + "version": "0.1.4", "private": true, "description": "", "keywords": [], diff --git a/src/shared/IpcEvents.ts b/src/shared/IpcEvents.ts index efe095d..09ab674 100644 --- a/src/shared/IpcEvents.ts +++ b/src/shared/IpcEvents.ts @@ -23,6 +23,7 @@ export const enum IpcEvents { UPDATER_GET_DATA = "VCD_UPDATER_GET_DATA", UPDATER_DOWNLOAD = "VCD_UPDATER_DOWNLOAD", + UPDATE_IGNORE = "VCD_UPDATE_IGNORE", CLOSE = "VCD_CLOSE" } diff --git a/src/shared/settings.d.ts b/src/shared/settings.d.ts index cae4826..2f310b1 100644 --- a/src/shared/settings.d.ts +++ b/src/shared/settings.d.ts @@ -16,4 +16,5 @@ export interface Settings { disableMinSize?: boolean; tray?: boolean; minimizeToTray?: boolean; + skippedUpdate?: string; } diff --git a/src/updater/main.ts b/src/updater/main.ts index 1bed9dc..4c7d59b 100644 --- a/src/updater/main.ts +++ b/src/updater/main.ts @@ -5,6 +5,7 @@ */ import { app, BrowserWindow, ipcMain, shell } from "electron"; +import { Settings } from "main/settings"; import { githubGet, ReleaseData } from "main/utils/vencordLoader"; import { join } from "path"; import { SplashProps } from "shared/browserWinProperties"; @@ -38,6 +39,10 @@ ipcMain.handle(IpcEvents.UPDATER_DOWNLOAD, () => { shell.openExternal(url); }); +ipcMain.handle(IpcEvents.UPDATE_IGNORE, () => { + Settings.store.skippedUpdate = updateData.latestVersion; +}); + function isOutdated(oldVersion: string, newVersion: string) { const oldParts = oldVersion.split("."); const newParts = newVersion.split("."); @@ -67,12 +72,13 @@ export async function checkUpdates() { const oldVersion = app.getVersion(); const newVersion = data.tag_name.replace(/^v/, ""); - if (isOutdated(oldVersion, newVersion)) { + if (Settings.store.skippedUpdate !== newVersion && isOutdated(oldVersion, newVersion)) { updateData = { currentVersion: oldVersion, latestVersion: newVersion, release: data }; + openNewUpdateWindow(); } } catch (e) { diff --git a/src/updater/preload.ts b/src/updater/preload.ts index 0b7b978..8b539b8 100644 --- a/src/updater/preload.ts +++ b/src/updater/preload.ts @@ -16,5 +16,6 @@ contextBridge.exposeInMainWorld("Updater", { invoke(IpcEvents.UPDATER_DOWNLOAD); invoke(IpcEvents.CLOSE); }, + ignore: () => invoke(IpcEvents.UPDATE_IGNORE), close: () => invoke(IpcEvents.CLOSE) }); diff --git a/static/updater.html b/static/updater.html index d574e8a..53add25 100644 --- a/static/updater.html +++ b/static/updater.html @@ -14,9 +14,9 @@ justify-content: space-between; box-sizing: border-box; height: 100%; - background-color: hsl(223 6.7% 20.6%); + background-color: #313338; border-radius: 8px; - border: 1px solid hsl(220 6.5% 18%); + border: 1px solid #248046; padding: 1em; } @@ -37,6 +37,7 @@ border: none; border-radius: 3px; font-weight: bold; + transition: filter 0.2 ease-in-out; } button:hover, @@ -58,7 +59,7 @@

Update Available

-

There's a new update for Vencord Desktop! Update now to get new fixes and features

+

There's a new update for Vencord Desktop! Update now to get new fixes and features!

Current:
@@ -66,9 +67,16 @@

-
- - +
+ + +
+ + +
@@ -77,4 +85,30 @@ const data = await Updater.getData(); document.getElementById("current").textContent = data.currentVersion; document.getElementById("latest").textContent = data.latestVersion; + + document.querySelector("#disable-remind > span").textContent += data.latestVersion; + + function checkDisableRemind() { + const checkbox = document.querySelector("#disable-remind > input"); + if (checkbox.checked) { + Updater.ignore(); + } + } + + const onClicks = { + download() { + checkDisableRemind(); + Updater.download(); + }, + close() { + checkDisableRemind(); + Updater.close(); + } + }; + + for (const name in onClicks) { + document.querySelectorAll(`button[name="${name}"]`).forEach(button => { + button.addEventListener("click", onClicks[name]); + }); + }