From 0cfa66593d99db0a33d264638b33c58836c7d1bd Mon Sep 17 00:00:00 2001 From: Anton Reshetov Date: Mon, 1 Apr 2024 10:29:08 +0300 Subject: [PATCH] feat: check for updates (#17) --- bun.lockb | Bin 427521 -> 430072 bytes package.json | 1 + src/main.ts | 5 +++ src/menu.ts | 24 +++++++++++- src/preload.ts | 10 ++++- src/renderer/components/sidebar/Sidebar.vue | 15 +++++++- src/renderer/composables/useApp.ts | 20 +++++++++- src/services/updates/index.ts | 39 ++++++++++++++++++++ src/types/index.ts | 5 +++ 9 files changed, 113 insertions(+), 6 deletions(-) create mode 100644 src/services/updates/index.ts diff --git a/bun.lockb b/bun.lockb index ce1e5ea3736711003ef451f8df10023cc353ceea..904add6c6163866377b28ef788a4203fea46b3c1 100755 GIT binary patch delta 77228 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 j%>Qf~p_ delta 76075 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 diff --git a/package.json b/package.json index 15d8587..56ed54a 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "@iconify-json/solar": "^1.1.9", "@vueuse/core": "^10.7.2", "apexcharts": "^3.48.0", + "axios": "^1.6.8", "chroma-js": "^2.4.2", "class-variance-authority": "^0.7.0", "clsx": "^2.1.0", diff --git a/src/main.ts b/src/main.ts index 9dd3ec6..8f8bb7d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -13,6 +13,7 @@ import { author } from '../package.json' import { store } from './services/store' import { timeFormat } from './renderer/utils' import { menu } from './menu' +import { checkForUpdates } from './services/updates' const isDev = process.env.NODE_ENV === 'development' @@ -155,3 +156,7 @@ if (process.platform === 'darwin') { copyright: `${author.name} ©2024-${new Date().getFullYear()}`, }) } + +ipcMain.on('check-for-updates', () => { + checkForUpdates() +}) diff --git a/src/menu.ts b/src/menu.ts index f082900..3e3006c 100644 --- a/src/menu.ts +++ b/src/menu.ts @@ -3,6 +3,7 @@ import os from 'node:os' import type { BrowserWindow, MenuItemConstructorOptions } from 'electron' import { Menu, dialog, shell } from 'electron' import { repository, version } from '../package.json' +import { checkForUpdates } from './services/updates' const isDev = process.env.NODE_ENV === 'development' const isMac = process.platform === 'darwin' @@ -41,7 +42,28 @@ const appMenuCommon: Record = { }, update: { label: 'Check for Updates...', - click: () => console.warn('Check for Updates...'), + click: async (_, focusedWindow) => { + const newVersion = await checkForUpdates() + + if (newVersion) { + const buttonId = dialog.showMessageBoxSync(focusedWindow, { + title: 'Update Available', + message: `Version ${newVersion} is available for download. Your version is ${version}.`, + buttons: ['Go to Download', 'OK'], + defaultId: 0, + cancelId: 1, + }) + + if (buttonId === 0) + shell.openExternal(`${repository.url}/releases/latest`) + } + else { + dialog.showMessageBox(focusedWindow, { + title: 'No Updates Available', + message: 'You are already using the latest version.', + }) + } + }, }, devtools: { label: 'Toggle Developer Tools', diff --git a/src/preload.ts b/src/preload.ts index afd54c5..2d4282d 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -1,6 +1,7 @@ // See the Electron documentation for details on how to use preload scripts: // https://www.electronjs.org/docs/latest/tutorial/process-model#preload-scripts -import { contextBridge, ipcRenderer } from 'electron' +import { contextBridge, ipcRenderer, shell } from 'electron' +import { repository } from '../package.json' import { api } from './services/api' import { store } from './services/store' import type { AppStore } from './services/store/types' @@ -22,4 +23,11 @@ contextBridge.exposeInMainWorld('electron', { onStart: (callback: () => void) => ipcRenderer.on('start', callback), onStop: (callback: () => void) => ipcRenderer.on('stop', callback), }, + updates: { + checkForUpdates: () => ipcRenderer.send('check-for-updates'), + downloadUpdate: () => + shell.openExternal(`${repository.url}/releases/latest`), + onUpdateAvailable: (callback: () => void) => + ipcRenderer.on('update-available', callback), + }, }) diff --git a/src/renderer/components/sidebar/Sidebar.vue b/src/renderer/components/sidebar/Sidebar.vue index 23f86e2..5122ff4 100644 --- a/src/renderer/components/sidebar/Sidebar.vue +++ b/src/renderer/components/sidebar/Sidebar.vue @@ -10,7 +10,7 @@ import { APP_DEFAULTS } from '~/services/store/constants' import SolarPlayBold from '~icons/solar/play-bold' import SolarPauseBold from '~icons/solar/pause-bold' -const { store, tray } = window.electron +const { store, tray, updates } = window.electron const { lastTask, isStarted, timeFormatted, startStop } = useTasks() const { addFolder } = useFolders() @@ -20,7 +20,7 @@ const sidebarRef = ref() const gutterRef = ref<{ $el: HTMLElement }>() const scrollRef = ref() -const { sidebarWidth } = useApp() +const { sidebarWidth, isUpdateAvailable } = useApp() const { width } = useGutter( sidebarRef, gutterRef, @@ -88,6 +88,17 @@ tray.onStart(() => {
+
+ + Update available + +
{ tasksWidthOffset.value = `${Number.parseInt(sidebarWidth.value) + Number.parseInt(tasksWidth.value)}px` }) +updates.checkForUpdates() + +updates.onUpdateAvailable(() => { + isUpdateAvailable.value = true +}) + +setInterval( + () => { + updates.checkForUpdates() + }, + 1000 * 60 * 360, +) // 6 часов + export function useApp() { return { + isUpdateAvailable, sidebarWidth, tasksWidth, tasksWidthOffset, diff --git a/src/services/updates/index.ts b/src/services/updates/index.ts new file mode 100644 index 0000000..71a9a3d --- /dev/null +++ b/src/services/updates/index.ts @@ -0,0 +1,39 @@ +/* eslint-disable node/prefer-global/process */ +import axios from 'axios' +import { BrowserWindow } from 'electron' +import { repository, version } from '../../../package.json' + +const isDev = process.env.NODE_ENV === 'development' + +export async function checkForUpdates() { + if (isDev) + return + + try { + const res = await axios.get(`${repository.url}/releases/latest`) + + const latest = res.request.socket._httpMessage.path + .split('/') + .pop() + .substring(1) + + if (latest !== version) { + BrowserWindow.getFocusedWindow()?.webContents.send('update-available') + return latest + } + } + catch (err) { + console.error(err) + } +} + +export async function checkForUpdatesWithInterval() { + checkForUpdates() + + setInterval( + () => { + checkForUpdates() + }, + 1000 * 60 * 360, + ) // 6 часов +} diff --git a/src/types/index.ts b/src/types/index.ts index 18f49cb..c100f98 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -13,6 +13,11 @@ declare global { onStart: (callback: () => void) => void onStop: (callback: () => void) => void } + updates: { + checkForUpdates: () => void + downloadUpdate: () => void + onUpdateAvailable: (callback: () => void) => void + } } } }