mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Make update function injectable for button
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
parent
315f0a73da
commit
1f1aa6cd32
@ -130,7 +130,7 @@ const NonInjectedTopBar = observer(({
|
|||||||
onClick={goForward}
|
onClick={goForward}
|
||||||
disabled={!nextEnabled.get()}
|
disabled={!nextEnabled.get()}
|
||||||
/>
|
/>
|
||||||
<UpdateButton update={noop} />
|
<UpdateButton />
|
||||||
</div>
|
</div>
|
||||||
<div className={styles.items}>
|
<div className={styles.items}>
|
||||||
{renderRegisteredItems(items.get())}
|
{renderRegisteredItems(items.get())}
|
||||||
|
|||||||
@ -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;
|
||||||
@ -15,13 +15,14 @@ import { withInjectables } from "@ogre-tools/injectable-react";
|
|||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import appUpdateWarningLevelInjectable from "../../app-update-warning/app-update-warning-level.injectable";
|
import appUpdateWarningLevelInjectable from "../../app-update-warning/app-update-warning-level.injectable";
|
||||||
import type { IComputedValue } from "mobx";
|
import type { IComputedValue } from "mobx";
|
||||||
|
import updateAppInjectable from "./update-app.injectable";
|
||||||
|
|
||||||
interface UpdateButtonProps extends HTMLAttributes<HTMLButtonElement> {
|
interface UpdateButtonProps extends HTMLAttributes<HTMLButtonElement> {
|
||||||
update: () => void;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interface Dependencies {
|
interface Dependencies {
|
||||||
warningLevel?: IComputedValue<"light" | "medium" | "high" | "">;
|
warningLevel?: IComputedValue<"light" | "medium" | "high" | "">;
|
||||||
|
update: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const NonInjectedUpdateButton = observer(({ warningLevel, update, id }: UpdateButtonProps & Dependencies) => {
|
export const NonInjectedUpdateButton = observer(({ warningLevel, update, id }: UpdateButtonProps & Dependencies) => {
|
||||||
@ -33,7 +34,7 @@ export const NonInjectedUpdateButton = observer(({ warningLevel, update, id }: U
|
|||||||
setOpened(!opened);
|
setOpened(!opened);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!warningLevel) {
|
if (!warningLevel || !warningLevel.get()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,7 +42,7 @@ export const NonInjectedUpdateButton = observer(({ warningLevel, update, id }: U
|
|||||||
<>
|
<>
|
||||||
<button
|
<button
|
||||||
data-testid="update-button"
|
data-testid="update-button"
|
||||||
data-warning-level={warningLevel}
|
data-warning-level={warningLevel.get()}
|
||||||
id={buttonId}
|
id={buttonId}
|
||||||
className={cssNames(styles.updateButton, {
|
className={cssNames(styles.updateButton, {
|
||||||
[styles.warningHigh]: warningLevel.get() === "high",
|
[styles.warningHigh]: warningLevel.get() === "high",
|
||||||
@ -75,6 +76,7 @@ export const UpdateButton = withInjectables<Dependencies, UpdateButtonProps>(Non
|
|||||||
return {
|
return {
|
||||||
...props,
|
...props,
|
||||||
warningLevel: di.inject(appUpdateWarningLevelInjectable),
|
warningLevel: di.inject(appUpdateWarningLevelInjectable),
|
||||||
|
update: di.inject(updateAppInjectable),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user