mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
* auto-update notifications on the status bar Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * integrated with new and improved autoupdate code Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * lint Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * refactored to include AutoUpdateComponent in the statusBarItemsInjectable Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * refactor to use a registrator Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * fix lint, remove unused code Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * refactored for the simplified logic for injecting many instances PR Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * using the update syncBox injectables directly for status bar notifications Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * removed update broadcasting/listening, updated snapshots Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * fixing tests Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * fixed tests Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * cleanup after rebase to master Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * address review comments Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * fixed incorrect injectable id Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * address review comments Signed-off-by: Jim Ehrismann <jehrismann@mirantis.com> * Tweak code-style Signed-off-by: Janne Savolainen <janne.savolainen@live.fi> Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>
51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
/**
|
|
* Copyright (c) OpenLens Authors. All rights reserved.
|
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
|
*/
|
|
|
|
import styles from "./status-bar.module.scss";
|
|
|
|
import React from "react";
|
|
import { observer } from "mobx-react";
|
|
import { withInjectables } from "@ogre-tools/injectable-react";
|
|
import type { StatusBarItems } from "./status-bar-items.injectable";
|
|
import statusBarItemsInjectable from "./status-bar-items.injectable";
|
|
import type { IComputedValue } from "mobx";
|
|
|
|
export interface StatusBarProps {}
|
|
|
|
interface Dependencies {
|
|
items: IComputedValue<StatusBarItems>;
|
|
}
|
|
|
|
const NonInjectedStatusBar = observer(({ items }: Dependencies & StatusBarProps) => {
|
|
const { left, right } = items.get();
|
|
|
|
return (
|
|
<div className={styles.StatusBar}>
|
|
<div className={styles.leftSide} data-testid="status-bar-left">
|
|
{left.map((Item, index) => (
|
|
<div className={styles.item} key={index}>
|
|
<Item />
|
|
</div>
|
|
))}
|
|
</div>
|
|
<div className={styles.rightSide} data-testid="status-bar-right">
|
|
{right.map((Item, index) => (
|
|
<div className={styles.item} key={index}>
|
|
<Item />
|
|
</div>
|
|
))}
|
|
</div>
|
|
</div>
|
|
);
|
|
|
|
});
|
|
|
|
export const StatusBar = withInjectables<Dependencies, StatusBarProps>(NonInjectedStatusBar, {
|
|
getProps: (di, props) => ({
|
|
items: di.inject(statusBarItemsInjectable),
|
|
...props,
|
|
}),
|
|
});
|