From dcbbe8392fcf550c4f4e87c6e9a0b9e605303b2c Mon Sep 17 00:00:00 2001 From: Alex Andreev Date: Mon, 13 Mar 2023 12:46:36 +0300 Subject: [PATCH] Linter fixes Signed-off-by: Alex Andreev --- .../src/extensions/renderer-api/tokens.ts | 6 ++- ...ter-settings-menu-clear-item.injectable.ts | 19 +++++--- .../cluster-settings-menu-injection-token.ts | 16 ++++--- .../cluster-settings/icon-settings.tsx | 45 +++++++++++-------- 4 files changed, 54 insertions(+), 32 deletions(-) diff --git a/packages/core/src/extensions/renderer-api/tokens.ts b/packages/core/src/extensions/renderer-api/tokens.ts index 2a8798fd6d..4dbddc57d4 100644 --- a/packages/core/src/extensions/renderer-api/tokens.ts +++ b/packages/core/src/extensions/renderer-api/tokens.ts @@ -1 +1,5 @@ -export * from "../../renderer/components/cluster-settings/cluster-settings-menu-injection-token"; \ No newline at end of file +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +export * from "../../renderer/components/cluster-settings/cluster-settings-menu-injection-token"; diff --git a/packages/core/src/renderer/components/cluster-settings/cluster-settings-menu-clear-item.injectable.ts b/packages/core/src/renderer/components/cluster-settings/cluster-settings-menu-clear-item.injectable.ts index ba945ad284..458a25a4b1 100644 --- a/packages/core/src/renderer/components/cluster-settings/cluster-settings-menu-clear-item.injectable.ts +++ b/packages/core/src/renderer/components/cluster-settings/cluster-settings-menu-clear-item.injectable.ts @@ -1,6 +1,11 @@ +/** + * 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 type { ClusterPreferences } from "../../../common/cluster-types"; -import { ChangedClusterPreference, clusterIconSettingsMenuInjectionToken } from "./cluster-settings-menu-injection-token"; +import type { ChangedClusterPreference } from "./cluster-settings-menu-injection-token"; +import { clusterIconSettingsMenuInjectionToken } from "./cluster-settings-menu-injection-token"; const clusterIconSettingsMenuClearItem = getInjectable({ id: "cluster-icon-settings-menu-clear-item", @@ -9,18 +14,18 @@ const clusterIconSettingsMenuClearItem = getInjectable({ id: "clear-icon-menu-item", title: "Clear", disabled: (preferences: ClusterPreferences) => !preferences.icon, - onClick: (preferences: ClusterPreferences) => { + onClick: () => { /** * NOTE: this needs to be `null` rather than `undefined` so that we can * tell the difference between it not being there and being cleared. */ - const data: ChangedClusterPreference = ["icon", null] + const data: ChangedClusterPreference = ["icon", null]; return data; - } + }, }), - injectionToken: clusterIconSettingsMenuInjectionToken -}) + injectionToken: clusterIconSettingsMenuInjectionToken, +}); -export default clusterIconSettingsMenuClearItem; \ No newline at end of file +export default clusterIconSettingsMenuClearItem; diff --git a/packages/core/src/renderer/components/cluster-settings/cluster-settings-menu-injection-token.ts b/packages/core/src/renderer/components/cluster-settings/cluster-settings-menu-injection-token.ts index 90d0d99c08..89c60137aa 100644 --- a/packages/core/src/renderer/components/cluster-settings/cluster-settings-menu-injection-token.ts +++ b/packages/core/src/renderer/components/cluster-settings/cluster-settings-menu-injection-token.ts @@ -1,15 +1,19 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ import { getInjectionToken } from "@ogre-tools/injectable"; import type { ClusterPreferences } from "../../../common/cluster-types"; export type ChangedClusterPreference = [keyof ClusterPreferences, any]; -export type ClusterIconMenuItem = { - id: string, - title: string, - disabled: (preferences: ClusterPreferences) => boolean, - onClick: (preferences: ClusterPreferences) => ChangedClusterPreference, +export interface ClusterIconMenuItem { + id: string; + title: string; + disabled?: (preferences: ClusterPreferences) => boolean; + onClick: (preferences: ClusterPreferences) => ChangedClusterPreference; } export const clusterIconSettingsMenuInjectionToken = getInjectionToken({ id: "cluster-icon-settings-menu-injection-token", -}); \ No newline at end of file +}); diff --git a/packages/core/src/renderer/components/cluster-settings/icon-settings.tsx b/packages/core/src/renderer/components/cluster-settings/icon-settings.tsx index 0b0f5e1788..81d492db1f 100644 --- a/packages/core/src/renderer/components/cluster-settings/icon-settings.tsx +++ b/packages/core/src/renderer/components/cluster-settings/icon-settings.tsx @@ -15,7 +15,8 @@ import { FilePicker, OverSizeLimitStyle } from "../file-picker"; import { MenuActions, MenuItem } from "../menu"; import type { ShowNotification } from "../notifications"; import showErrorNotificationInjectable from "../notifications/show-error-notification.injectable"; -import { ChangedClusterPreference, ClusterIconMenuItem, clusterIconSettingsMenuInjectionToken } from "./cluster-settings-menu-injection-token"; +import type { ChangedClusterPreference, ClusterIconMenuItem } from "./cluster-settings-menu-injection-token"; +import { clusterIconSettingsMenuInjectionToken } from "./cluster-settings-menu-injection-token"; export interface ClusterIconSettingProps { cluster: Cluster; @@ -23,7 +24,7 @@ export interface ClusterIconSettingProps { } interface Dependencies { - menuItems: IComputedValue + menuItems: IComputedValue; showErrorNotification: ShowNotification; } @@ -31,6 +32,7 @@ interface Dependencies { const NonInjectedClusterIconSetting = observer((props: ClusterIconSettingProps & Dependencies) => { const element = React.createRef(); const { cluster, entity } = props; + const menuId = `menu-actions-for-cluster-icon-settings-for-${entity.getId()}`; const onIconPick = async ([file]: File[]) => { if (!file) { @@ -42,20 +44,20 @@ const NonInjectedClusterIconSetting = observer((props: ClusterIconSettingProps & cluster.preferences.icon = `data:${file.type};base64,${buf.toString("base64")}`; } catch (e) { - props.showErrorNotification(String(e)) + props.showErrorNotification(String(e)); } - } + }; const onUploadClick = () => { element .current ?.querySelector("input[type=file]") ?.click(); - } + }; const save = ([kind, value]: ChangedClusterPreference) => { - cluster.preferences[kind] = value - } + cluster.preferences[kind] = value; + }; return (
@@ -76,7 +78,8 @@ const NonInjectedClusterIconSetting = observer((props: ClusterIconSettingProps & />
Upload Icon - {props.menuItems.get().map(item => - save(item.onClick(cluster.preferences))} key={item.id} disabled={item.disabled(cluster.preferences)}>{item.title} + {props.menuItems.get().map(item => ( + save(item.onClick(cluster.preferences))} + key={item.id} + disabled={item.disabled?.(cluster.preferences)}> + {item.title} + + ), )} @@ -95,12 +104,12 @@ const NonInjectedClusterIconSetting = observer((props: ClusterIconSettingProps & export const ClusterIconSetting = withInjectables(NonInjectedClusterIconSetting, { getProps: (di, props) => { - const computedInjectMany = di.inject(computedInjectManyInjectable); + const computedInjectMany = di.inject(computedInjectManyInjectable); - return { - ...props, - menuItems: computedInjectMany(clusterIconSettingsMenuInjectionToken), - showErrorNotification: di.inject(showErrorNotificationInjectable), - } - } -}); \ No newline at end of file + return { + ...props, + menuItems: computedInjectMany(clusterIconSettingsMenuInjectionToken), + showErrorNotification: di.inject(showErrorNotificationInjectable), + }; + }, +});