1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com>
This commit is contained in:
Jim Ehrismann 2022-06-08 22:39:56 -04:00
parent 7cab54e6de
commit 5cae38406a
2 changed files with 30 additions and 17 deletions

View File

@ -19,7 +19,7 @@ export class AutoUpdateState {
this._state = state; this._state = state;
} }
get name() : AutoUpdateStateName { get name(): AutoUpdateStateName {
return this._state; return this._state;
} }
@ -29,11 +29,11 @@ export class AutoUpdateState {
this.triggerIdle(); this.triggerIdle();
} }
get version() : string | undefined { get version(): string | undefined {
return this._version; return this._version;
} }
set version(version: string | undefined ) { set version(version: string | undefined) {
this._version = version; this._version = version;
this.triggerIdle(); this.triggerIdle();
@ -42,7 +42,7 @@ export class AutoUpdateState {
private triggerIdle(): void { private triggerIdle(): void {
clearTimeout(timerId); clearTimeout(timerId);
switch(this.name) { switch (this.name) {
case "checking": case "checking":
case "available": case "available":
case "downloading": case "downloading":

View File

@ -8,7 +8,8 @@ import React from "react";
import AutoUpdateStateInjectable from "../../../common/auto-update/auto-update-state.injectable"; import AutoUpdateStateInjectable from "../../../common/auto-update/auto-update-state.injectable";
import type { AutoUpdateState } from "../../../common/auto-update/auto-update-state.injectable"; import type { AutoUpdateState } from "../../../common/auto-update/auto-update-state.injectable";
import { Spinner } from "../spinner"; 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"; import type { SyncBox } from "../../../common/utils/sync-box/sync-box-injection-token";
interface Dependencies { interface Dependencies {
@ -16,14 +17,24 @@ interface Dependencies {
progressOfUpdateDownload: SyncBox<ProgressOfDownload>; progressOfUpdateDownload: SyncBox<ProgressOfDownload>;
} }
const checking = () => <><Spinner/><div>{"Checking for updates..."}</div></>; const checking = () => (
<>
<Spinner/>
<div>{"Checking for updates..."}</div>
</>
);
const available = () => <div>{"Update is available"}</div>; const available = () => <div>{"Update is available"}</div>;
const notAvailable = () => <div>{"No new updates available"}</div>; const notAvailable = () => <div>{"No new updates available"}</div>;
const downloading = (state: AutoUpdateState, percentDone: number) => { const downloading = (state: AutoUpdateState, percentDone: number) => {
const {version } = state; const { version } = state;
if ( percentDone === 0 ) { if ( percentDone === 0 ) {
return <><div>{`Download for version ${version} started `}</div><Spinner/></>; return (
<>
<div>{`Download for version ${version} started `}</div>
<Spinner/>
</>
);
} }
if ( percentDone < 100 ) { if ( percentDone < 100 ) {
@ -52,9 +63,11 @@ export const NonInjectedAutoUpdateComponent = observer(({ state, progressOfUpdat
case "not-available": case "not-available":
return notAvailable(); return notAvailable();
case "downloading": case "downloading": {
const roundedPercentage = Math.round(progressOfUpdateDownload.value.get().percentage); const roundedPercentage = Math.round(progressOfUpdateDownload.value.get().percentage);
return downloading(state, roundedPercentage); return downloading(state, roundedPercentage);
}
case "done": case "done":
return done(); return done();