diff --git a/src/common/auto-update/auto-update-state.injectable.ts b/src/common/auto-update/auto-update-state.injectable.ts index f5a6c59de9..b024c733fa 100644 --- a/src/common/auto-update/auto-update-state.injectable.ts +++ b/src/common/auto-update/auto-update-state.injectable.ts @@ -4,7 +4,7 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { makeObservable, observable } from "mobx"; - + export type AutoUpdateStateName = "checking" | "available" | "not-available" | "done" | "downloading" | "download-failed" | "download-succeeded" | "idle"; let timerId: NodeJS.Timeout; @@ -19,7 +19,7 @@ export class AutoUpdateState { this._state = state; } - get name() : AutoUpdateStateName { + get name(): AutoUpdateStateName { return this._state; } @@ -29,11 +29,11 @@ export class AutoUpdateState { this.triggerIdle(); } - get version() : string | undefined { + get version(): string | undefined { return this._version; } - set version(version: string | undefined ) { + set version(version: string | undefined) { this._version = version; this.triggerIdle(); @@ -42,18 +42,18 @@ export class AutoUpdateState { private triggerIdle(): void { clearTimeout(timerId); - switch(this.name) { + switch (this.name) { case "checking": case "available": case "downloading": case "idle": break; - + case "done": case "not-available": case "download-failed": case "download-succeeded": - timerId = setTimeout(() => this.name = "idle", 5000); + timerId = setTimeout(() => this.name = "idle", 5000); break; } } @@ -63,5 +63,5 @@ const AutoUpdateStateInjectable = getInjectable({ id: "auto-update-state", instantiate: () => new AutoUpdateState("idle"), }); - + export default AutoUpdateStateInjectable; diff --git a/src/renderer/components/status-bar/auto-update-status-bar-item.tsx b/src/renderer/components/status-bar/auto-update-status-bar-item.tsx index ffa082da35..702c427814 100644 --- a/src/renderer/components/status-bar/auto-update-status-bar-item.tsx +++ b/src/renderer/components/status-bar/auto-update-status-bar-item.tsx @@ -8,7 +8,8 @@ import React from "react"; import AutoUpdateStateInjectable from "../../../common/auto-update/auto-update-state.injectable"; import type { AutoUpdateState } from "../../../common/auto-update/auto-update-state.injectable"; import { Spinner } from "../spinner"; -import progressOfUpdateDownloadInjectable, { ProgressOfDownload } from "../../../common/application-update/progress-of-update-download/progress-of-update-download.injectable"; +import progressOfUpdateDownloadInjectable from "../../../common/application-update/progress-of-update-download/progress-of-update-download.injectable"; +import type { ProgressOfDownload } from "../../../common/application-update/progress-of-update-download/progress-of-update-download.injectable"; import type { SyncBox } from "../../../common/utils/sync-box/sync-box-injection-token"; interface Dependencies { @@ -16,14 +17,24 @@ interface Dependencies { progressOfUpdateDownload: SyncBox; } -const checking = () => <>
{"Checking for updates..."}
; +const checking = () => ( + <> + +
{"Checking for updates..."}
+ +); const available = () =>
{"Update is available"}
; const notAvailable = () =>
{"No new updates available"}
; const downloading = (state: AutoUpdateState, percentDone: number) => { - const {version } = state; + const { version } = state; if ( percentDone === 0 ) { - return <>
{`Download for version ${version} started `}
; + return ( + <> +
{`Download for version ${version} started `}
+ + + ); } if ( percentDone < 100 ) { @@ -52,9 +63,11 @@ export const NonInjectedAutoUpdateComponent = observer(({ state, progressOfUpdat case "not-available": return notAvailable(); - case "downloading": + case "downloading": { const roundedPercentage = Math.round(progressOfUpdateDownload.value.get().percentage); + return downloading(state, roundedPercentage); + } case "done": return done(); @@ -62,10 +75,10 @@ export const NonInjectedAutoUpdateComponent = observer(({ state, progressOfUpdat case "download-failed": return downloadFailed(state.version); - case "download-succeeded": - return downloadSucceeded(state.version); - - case "idle": + case "download-succeeded": + return downloadSucceeded(state.version); + + case "idle": return idle(); }