From 1f1aa6cd32c7a8c629d480060e7b4d8c2f062077 Mon Sep 17 00:00:00 2001 From: Alex Andreev Date: Mon, 30 May 2022 13:05:58 +0300 Subject: [PATCH] Make update function injectable for button Signed-off-by: Alex Andreev --- .../components/layout/top-bar/top-bar.tsx | 2 +- .../update-button/update-app.injectable.ts | 20 +++++++++++++++++++ .../update-button/update-button.tsx | 8 +++++--- 3 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 src/renderer/components/update-button/update-app.injectable.ts diff --git a/src/renderer/components/layout/top-bar/top-bar.tsx b/src/renderer/components/layout/top-bar/top-bar.tsx index adc5457747..76ef857db8 100644 --- a/src/renderer/components/layout/top-bar/top-bar.tsx +++ b/src/renderer/components/layout/top-bar/top-bar.tsx @@ -130,7 +130,7 @@ const NonInjectedTopBar = observer(({ onClick={goForward} disabled={!nextEnabled.get()} /> - +
{renderRegisteredItems(items.get())} diff --git a/src/renderer/components/update-button/update-app.injectable.ts b/src/renderer/components/update-button/update-app.injectable.ts new file mode 100644 index 0000000000..65e46fa87e --- /dev/null +++ b/src/renderer/components/update-button/update-app.injectable.ts @@ -0,0 +1,20 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +import { getInjectable } from "@ogre-tools/injectable"; +import { AutoUpdateQuitAndInstalledChannel } from "../../../common/ipc"; +import broadcastMessageInjectable from "../../../common/ipc/broadcast-message.injectable"; + +const updateAppInjectable = getInjectable({ + id: "update-app", + + instantiate: (di) => { + const broadcast = di.inject(broadcastMessageInjectable); + + return () => broadcast(AutoUpdateQuitAndInstalledChannel); + }, +}); + +export default updateAppInjectable; \ No newline at end of file diff --git a/src/renderer/components/update-button/update-button.tsx b/src/renderer/components/update-button/update-button.tsx index 10674d83ae..9cd0f24840 100644 --- a/src/renderer/components/update-button/update-button.tsx +++ b/src/renderer/components/update-button/update-button.tsx @@ -15,13 +15,14 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import { observer } from "mobx-react"; import appUpdateWarningLevelInjectable from "../../app-update-warning/app-update-warning-level.injectable"; import type { IComputedValue } from "mobx"; +import updateAppInjectable from "./update-app.injectable"; interface UpdateButtonProps extends HTMLAttributes { - update: () => void; } interface Dependencies { warningLevel?: IComputedValue<"light" | "medium" | "high" | "">; + update: () => void; } export const NonInjectedUpdateButton = observer(({ warningLevel, update, id }: UpdateButtonProps & Dependencies) => { @@ -33,7 +34,7 @@ export const NonInjectedUpdateButton = observer(({ warningLevel, update, id }: U setOpened(!opened); }; - if (!warningLevel) { + if (!warningLevel || !warningLevel.get()) { return null; } @@ -41,7 +42,7 @@ export const NonInjectedUpdateButton = observer(({ warningLevel, update, id }: U <>