mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Change update warning level over time (#5445)
* Give an UpdateButton injectables Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * AppUpdateWarning class and injectable Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Rename folder to app-update-warning Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Add appPublishDateInjectable Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Inject ipcRenderer into app-update-warning Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Add setter for downloadedUpdateDate Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Add tests for AppUpdateWarning Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * appPublishDate initial test Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Parsing app release date from the package version Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Introduce appUpdateWarningLevelInjectable Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fix withInjectables props Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Determine warning from days passed after update available Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Save update available date in session storage Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Move quitAndInstall() to separate function Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Register quit-and-install ipc channel Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Make update function injectable for button Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Update tests Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Set proper timeframes Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Setting global UTC timezone for tests Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Refresh tests Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Testing warning level changes over time Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Remove unused app-publish-date files Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Make linter happy Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Pass quitAndInstallUpdateInjectable to UpdateButton Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Remove updateAppInjectable Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Initial tests for installing update using topbar button Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Refactor AppUpdateWarning class using injectables Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Permit side effects in injectable periodicalCheckForUpdateWarningInjectable Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Temporarily set noop for UpdateButton update() Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Remove previous implementation files Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Unoverriding topbar injectables Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Render TopBar inside ApplicationBuilder Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Move updateWarningLevelInjectable to /common subfolders from /main Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Make UpdateButton warning prop observable by using computed() structure Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Updating snapshots Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Add sync box files allowing to restart & install update from renderer process Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Add Update button dropdown tests Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Fix jest.advanceTimersByTime usage Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Check for severe warning level Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Linter fixes Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Remove usage of legacy global causing trouble in unit tests Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Make update warning level completely reactive and responsibility of a renderer Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove dead code Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove tests that are covered by behaviour Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Fix restarting and installing update when pressing update button Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Update snapshots Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove dead code Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Update more snapshots Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Remove duplication from behavioural unit test Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> * Reducing too large MenuItems height Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Reduce too large UpdateButton paddings Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Add jest globalSetup into package.json to fix timezone test Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> * Do not triggering computed value every time it is being used Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com> Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
1 parent
1e8ba07cc3
commit
3084b7b8d9
47 files changed
+5534
-145
No files matched your search
@@ -8,8 +8,7 @@ import React, { useEffect, useRef } from "react";
|
||||
import { observer } from "mobx-react";
|
||||
import type { IComputedValue } from "mobx";
|
||||
import { Icon } from "../../icon";
|
||||
import { watchHistoryState } from "../../../remote-helpers/history-updater";
|
||||
import { cssNames, noop } from "../../../utils";
|
||||
import { cssNames } from "../../../utils";
|
||||
import topBarItemsInjectable from "./top-bar-items/top-bar-items.injectable";
|
||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||
import type { TopBarRegistration } from "./top-bar-registration";
|
||||
@@ -28,6 +27,7 @@ import goForwardInjectable from "./go-forward.injectable";
|
||||
import closeWindowInjectable from "./close-window.injectable";
|
||||
import maximizeWindowInjectable from "./maximize-window.injectable";
|
||||
import toggleMaximizeWindowInjectable from "./toggle-maximize-window.injectable";
|
||||
import watchHistoryStateInjectable from "../../../remote-helpers/watch-history-state.injectable";
|
||||
|
||||
interface Dependencies {
|
||||
navigateToCatalog: NavigateToCatalog;
|
||||
@@ -43,6 +43,7 @@ interface Dependencies {
|
||||
minimizeWindow: () => void;
|
||||
toggleMaximizeWindow: () => void;
|
||||
closeWindow: () => void;
|
||||
watchHistoryState: () => () => void;
|
||||
}
|
||||
|
||||
const NonInjectedTopBar = observer(({
|
||||
@@ -59,6 +60,7 @@ const NonInjectedTopBar = observer(({
|
||||
closeWindow,
|
||||
minimizeWindow,
|
||||
toggleMaximizeWindow,
|
||||
watchHistoryState,
|
||||
}: Dependencies) => {
|
||||
const elem = useRef<HTMLDivElement | null>(null);
|
||||
|
||||
@@ -115,7 +117,7 @@ const NonInjectedTopBar = observer(({
|
||||
onClick={goForward}
|
||||
disabled={!nextEnabled.get()}
|
||||
/>
|
||||
<UpdateButton update={noop} />
|
||||
<UpdateButton />
|
||||
</div>
|
||||
<div className={styles.items}>
|
||||
{renderRegisteredItems(items.get())}
|
||||
@@ -196,5 +198,6 @@ export const TopBar = withInjectables<Dependencies>(NonInjectedTopBar, {
|
||||
closeWindow: di.inject(closeWindowInjectable),
|
||||
minimizeWindow: di.inject(maximizeWindowInjectable),
|
||||
toggleMaximizeWindow: di.inject(toggleMaximizeWindowInjectable),
|
||||
watchHistoryState: di.inject(watchHistoryStateInjectable),
|
||||
}),
|
||||
});
|
||||
Reference in new issue
Block a user