From e88de58b5de59a446d50c407ce89bfcfcf6b0b0a Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Wed, 10 May 2023 10:10:22 -0400 Subject: [PATCH] chore: Remove unnecessary use of SingleOrMany Signed-off-by: Sebastian Malton --- .../keyboard-shortcuts/src/keyboard-shortcut-listener.tsx | 4 ++-- .../keyboard-shortcuts/src/keyboard-shortcut-scope.tsx | 4 ++-- packages/core/src/renderer/components/animate/animate.tsx | 4 ++-- packages/core/src/renderer/components/avatar/avatar.tsx | 4 ++-- packages/core/src/renderer/components/badge/badge.tsx | 4 ++-- packages/core/src/renderer/components/checkbox/checkbox.tsx | 4 ++-- packages/core/src/renderer/components/dialog/dialog.tsx | 4 ++-- .../src/renderer/components/drawer/drawer-param-toggler.tsx | 4 ++-- packages/core/src/renderer/components/drawer/drawer.tsx | 4 ++-- packages/core/src/renderer/components/dropdown/dropdown.tsx | 4 ++-- packages/core/src/renderer/components/hotbar/hotbar-cell.tsx | 4 ++-- packages/core/src/renderer/components/icon/icon.tsx | 4 ++-- packages/core/src/renderer/components/layout/main-layout.tsx | 4 ++-- packages/core/src/renderer/components/layout/sub-header.tsx | 4 ++-- packages/core/src/renderer/components/layout/sub-title.tsx | 4 ++-- .../src/renderer/components/line-progress/line-progress.tsx | 4 ++-- .../src/renderer/components/render-delay/render-delay.tsx | 4 ++-- .../src/renderer/components/status-brick/status-brick.tsx | 4 ++-- packages/ui-components/button/src/button.tsx | 4 ++-- packages/ui-components/error-boundary/src/error-boundary.tsx | 4 ++-- packages/ui-components/tooltip/src/withTooltip.test.tsx | 4 ++-- packages/ui-components/tooltip/src/withTooltip.tsx | 2 +- packages/utility-features/utilities/src/isReactNode.ts | 2 +- 23 files changed, 44 insertions(+), 44 deletions(-) diff --git a/packages/business-features/keyboard-shortcuts/src/keyboard-shortcut-listener.tsx b/packages/business-features/keyboard-shortcuts/src/keyboard-shortcut-listener.tsx index 71f1886ffb..70151a4d72 100644 --- a/packages/business-features/keyboard-shortcuts/src/keyboard-shortcut-listener.tsx +++ b/packages/business-features/keyboard-shortcuts/src/keyboard-shortcut-listener.tsx @@ -1,11 +1,11 @@ -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { withInjectables } from "@ogre-tools/injectable-react"; import React, { useEffect } from "react"; import invokeShortcutInjectable, { InvokeShortcut } from "./invoke-shortcut.injectable"; export interface KeyboardShortcutListenerProps { - children: SingleOrMany; + children: SafeReactNode; } interface Dependencies { diff --git a/packages/business-features/keyboard-shortcuts/src/keyboard-shortcut-scope.tsx b/packages/business-features/keyboard-shortcuts/src/keyboard-shortcut-scope.tsx index a06d6d4be5..d54424aea0 100644 --- a/packages/business-features/keyboard-shortcuts/src/keyboard-shortcut-scope.tsx +++ b/packages/business-features/keyboard-shortcuts/src/keyboard-shortcut-scope.tsx @@ -1,9 +1,9 @@ -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import React from "react"; export interface KeyboardShortcutScopeProps { id: string; - children: SingleOrMany; + children: SafeReactNode; } export const KeyboardShortcutScope = ({ id, children }: KeyboardShortcutScopeProps) => ( diff --git a/packages/core/src/renderer/components/animate/animate.tsx b/packages/core/src/renderer/components/animate/animate.tsx index c1381cbc6e..58f9052193 100644 --- a/packages/core/src/renderer/components/animate/animate.tsx +++ b/packages/core/src/renderer/components/animate/animate.tsx @@ -5,7 +5,7 @@ import "./animate.scss"; import React, { useEffect, useState } from "react"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames, noop } from "@k8slens/utilities"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { RequestAnimationFrame } from "./request-animation-frame.injectable"; @@ -22,7 +22,7 @@ export interface AnimateProps { onLeave?: () => void; enterDuration?: number; leaveDuration?: number; - children?: SingleOrMany; + children?: SafeReactNode; } interface Dependencies { diff --git a/packages/core/src/renderer/components/avatar/avatar.tsx b/packages/core/src/renderer/components/avatar/avatar.tsx index 91f0ad7043..b35bb66727 100644 --- a/packages/core/src/renderer/components/avatar/avatar.tsx +++ b/packages/core/src/renderer/components/avatar/avatar.tsx @@ -8,7 +8,7 @@ import styles from "./avatar.module.scss"; import type { ImgHTMLAttributes, MouseEventHandler } from "react"; import React from "react"; import randomColor from "randomcolor"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; import { computeDefaultShortName } from "../../../common/catalog/helpers"; @@ -21,7 +21,7 @@ export interface AvatarProps { variant?: "circle" | "rounded" | "square"; imgProps?: ImgHTMLAttributes; disabled?: boolean; - children?: SingleOrMany; + children?: SafeReactNode; className?: string; id?: string; onClick?: MouseEventHandler; diff --git a/packages/core/src/renderer/components/badge/badge.tsx b/packages/core/src/renderer/components/badge/badge.tsx index d2957c9076..21f0366f49 100644 --- a/packages/core/src/renderer/components/badge/badge.tsx +++ b/packages/core/src/renderer/components/badge/badge.tsx @@ -8,7 +8,7 @@ import styles from "./badge.module.scss"; import React, { useEffect, useRef, useState } from "react"; import { action, observable } from "mobx"; import { observer } from "mobx-react"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; import { withTooltip } from "@k8slens/tooltip"; @@ -19,7 +19,7 @@ export interface BadgeProps extends React.HTMLAttributes { expandable?: boolean; disabled?: boolean; scrollable?: boolean; - children?: SingleOrMany; + children?: SafeReactNode; } // Common handler for all Badge instances diff --git a/packages/core/src/renderer/components/checkbox/checkbox.tsx b/packages/core/src/renderer/components/checkbox/checkbox.tsx index 2b7d35fe51..978f6faf20 100644 --- a/packages/core/src/renderer/components/checkbox/checkbox.tsx +++ b/packages/core/src/renderer/components/checkbox/checkbox.tsx @@ -5,7 +5,7 @@ import "./checkbox.scss"; import React from "react"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames, noop } from "@k8slens/utilities"; export interface CheckboxProps { @@ -15,7 +15,7 @@ export interface CheckboxProps { disabled?: boolean; value?: boolean; onChange?(value: boolean, evt: React.ChangeEvent): void; - children?: SingleOrMany; + children?: SafeReactNode; } export function Checkbox({ label, inline, className, value, children, onChange = noop, disabled, ...inputProps }: CheckboxProps) { diff --git a/packages/core/src/renderer/components/dialog/dialog.tsx b/packages/core/src/renderer/components/dialog/dialog.tsx index 28f2a367cc..91076bc414 100644 --- a/packages/core/src/renderer/components/dialog/dialog.tsx +++ b/packages/core/src/renderer/components/dialog/dialog.tsx @@ -10,7 +10,7 @@ import { createPortal } from "react-dom"; import { disposeOnUnmount, observer } from "mobx-react"; import { reaction } from "mobx"; import { Animate } from "../animate"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames, noop, stopPropagation } from "@k8slens/utilities"; import type { ObservableHistory } from "mobx-observable-history"; import { withInjectables } from "@ogre-tools/injectable-react"; @@ -30,7 +30,7 @@ export interface DialogProps { pinned?: boolean; animated?: boolean; "data-testid"?: string; - children?: SingleOrMany; + children?: SafeReactNode; } interface DialogState { diff --git a/packages/core/src/renderer/components/drawer/drawer-param-toggler.tsx b/packages/core/src/renderer/components/drawer/drawer-param-toggler.tsx index b3ac2f8c6c..b7446607f2 100644 --- a/packages/core/src/renderer/components/drawer/drawer-param-toggler.tsx +++ b/packages/core/src/renderer/components/drawer/drawer-param-toggler.tsx @@ -6,12 +6,12 @@ import "./drawer-param-toggler.scss"; import React from "react"; import { Icon } from "../icon"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; export interface DrawerParamTogglerProps { label: string | number; - children: SingleOrMany; + children: SafeReactNode; } interface State { diff --git a/packages/core/src/renderer/components/drawer/drawer.tsx b/packages/core/src/renderer/components/drawer/drawer.tsx index 44ccccdf4c..d048135ed6 100644 --- a/packages/core/src/renderer/components/drawer/drawer.tsx +++ b/packages/core/src/renderer/components/drawer/drawer.tsx @@ -8,7 +8,7 @@ import "./drawer.scss"; import React from "react"; import { clipboard } from "electron"; import { createPortal } from "react-dom"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames, noop } from "@k8slens/utilities"; import { Icon } from "../icon"; import type { AnimateName } from "../animate"; @@ -39,7 +39,7 @@ export interface DrawerProps { animation?: AnimateName; onClose?: () => void; toolbar?: SafeReactNode; - children?: SingleOrMany; + children?: SafeReactNode; "data-testid"?: string; testIdForClose?: string; } diff --git a/packages/core/src/renderer/components/dropdown/dropdown.tsx b/packages/core/src/renderer/components/dropdown/dropdown.tsx index 3fd6727fa6..71d9bea058 100644 --- a/packages/core/src/renderer/components/dropdown/dropdown.tsx +++ b/packages/core/src/renderer/components/dropdown/dropdown.tsx @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { toSafeReactChildrenArray } from "@k8slens/utilities"; import type { HTMLAttributes } from "react"; import React, { useState } from "react"; @@ -11,7 +11,7 @@ import { Menu } from "../menu"; interface DropdownProps extends HTMLAttributes { contentForToggle: SafeReactNode; - children?: SingleOrMany; + children?: SafeReactNode; } export function Dropdown(props: DropdownProps) { diff --git a/packages/core/src/renderer/components/hotbar/hotbar-cell.tsx b/packages/core/src/renderer/components/hotbar/hotbar-cell.tsx index 44c1f4c7e0..c729cca8b1 100644 --- a/packages/core/src/renderer/components/hotbar/hotbar-cell.tsx +++ b/packages/core/src/renderer/components/hotbar/hotbar-cell.tsx @@ -5,11 +5,11 @@ import "./hotbar-menu.scss"; import React, { useState } from "react"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; export interface HotbarCellProps extends React.HTMLAttributes { - children?: SingleOrMany; + children?: SafeReactNode; index: number; innerRef?: React.Ref; } diff --git a/packages/core/src/renderer/components/icon/icon.tsx b/packages/core/src/renderer/components/icon/icon.tsx index eefbd283cc..7a76280e40 100644 --- a/packages/core/src/renderer/components/icon/icon.tsx +++ b/packages/core/src/renderer/components/icon/icon.tsx @@ -36,7 +36,7 @@ import Workloads from "./workloads.svg"; import type { Logger } from "@k8slens/logger"; import { withInjectables } from "@ogre-tools/injectable-react"; import { loggerInjectionToken } from "@k8slens/logger"; -import type { SingleOrMany, SafeReactNode } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; const hrefValidation = /https?:\/\//; @@ -159,7 +159,7 @@ export interface BaseIconProps { } export interface IconProps extends React.HTMLAttributes, BaseIconProps { - children?: SingleOrMany; + children?: SafeReactNode; } export function isSvg(content: string): boolean { diff --git a/packages/core/src/renderer/components/layout/main-layout.tsx b/packages/core/src/renderer/components/layout/main-layout.tsx index ab83451c86..0b38ba988e 100755 --- a/packages/core/src/renderer/components/layout/main-layout.tsx +++ b/packages/core/src/renderer/components/layout/main-layout.tsx @@ -7,7 +7,7 @@ import styles from "./main-layout.module.scss"; import React from "react"; import { observer } from "mobx-react"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; import { ErrorBoundary } from "@k8slens/error-boundary"; import { ResizeDirection, ResizeGrowthDirection, ResizeSide, ResizingAnchor } from "@k8slens/resizing-anchor"; @@ -20,7 +20,7 @@ export interface MainLayoutProps { sidebar: SafeReactNode; className?: string; footer?: SafeReactNode; - children?: SingleOrMany; + children?: SafeReactNode; } /** diff --git a/packages/core/src/renderer/components/layout/sub-header.tsx b/packages/core/src/renderer/components/layout/sub-header.tsx index 9fa1cd4939..8ef6c5c5c7 100644 --- a/packages/core/src/renderer/components/layout/sub-header.tsx +++ b/packages/core/src/renderer/components/layout/sub-header.tsx @@ -5,14 +5,14 @@ import "./sub-header.scss"; import React from "react"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; export interface SubHeaderProps { className?: string; withLine?: boolean; // add bottom line compact?: boolean; // no extra padding around content - children: SingleOrMany; + children: SafeReactNode; } export class SubHeader extends React.Component { diff --git a/packages/core/src/renderer/components/layout/sub-title.tsx b/packages/core/src/renderer/components/layout/sub-title.tsx index 6489c42483..20f48e1c36 100644 --- a/packages/core/src/renderer/components/layout/sub-title.tsx +++ b/packages/core/src/renderer/components/layout/sub-title.tsx @@ -5,7 +5,7 @@ import "./sub-title.scss"; import React from "react"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; export interface SubTitleProps { @@ -13,7 +13,7 @@ export interface SubTitleProps { title: SafeReactNode; compact?: boolean; // no bottom padding id?: string; - children?: SingleOrMany; + children?: SafeReactNode; } export class SubTitle extends React.Component { diff --git a/packages/core/src/renderer/components/line-progress/line-progress.tsx b/packages/core/src/renderer/components/line-progress/line-progress.tsx index d651a52cc3..a8ee546a92 100644 --- a/packages/core/src/renderer/components/line-progress/line-progress.tsx +++ b/packages/core/src/renderer/components/line-progress/line-progress.tsx @@ -5,7 +5,7 @@ import "./line-progress.scss"; import React from "react"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; import { withTooltip } from "@k8slens/tooltip"; @@ -15,7 +15,7 @@ export interface LineProgressProps extends React.HTMLProps { max?: number; className?: any; precise?: number; - children?: SingleOrMany; + children?: SafeReactNode; } function valuePercent({ value, min, max, precise }: Required>) { diff --git a/packages/core/src/renderer/components/render-delay/render-delay.tsx b/packages/core/src/renderer/components/render-delay/render-delay.tsx index eeadf20a1f..206b5a3576 100644 --- a/packages/core/src/renderer/components/render-delay/render-delay.tsx +++ b/packages/core/src/renderer/components/render-delay/render-delay.tsx @@ -4,7 +4,7 @@ */ import React, { useEffect, useState } from "react"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import type { RequestIdleCallback } from "./request-idle-callback.injectable"; import type { CancelIdleCallback } from "./cancel-idle-callback.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; @@ -14,7 +14,7 @@ import idleCallbackTimeoutInjectable from "./idle-callback-timeout.injectable"; export interface RenderDelayProps { placeholder?: SafeReactNode; - children: SingleOrMany; + children: SafeReactNode; } interface Dependencies { diff --git a/packages/core/src/renderer/components/status-brick/status-brick.tsx b/packages/core/src/renderer/components/status-brick/status-brick.tsx index a329747334..776782264f 100644 --- a/packages/core/src/renderer/components/status-brick/status-brick.tsx +++ b/packages/core/src/renderer/components/status-brick/status-brick.tsx @@ -6,12 +6,12 @@ import "./status-brick.scss"; import React from "react"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { cssNames } from "@k8slens/utilities"; import { withTooltip } from "@k8slens/tooltip"; export interface StatusBrickProps extends React.HTMLAttributes { - children?: SingleOrMany; + children?: SafeReactNode; } export const StatusBrick = withTooltip(({ className, ...elemProps }: StatusBrickProps) => ( diff --git a/packages/ui-components/button/src/button.tsx b/packages/ui-components/button/src/button.tsx index 7e186e20f1..91ff6c80b6 100644 --- a/packages/ui-components/button/src/button.tsx +++ b/packages/ui-components/button/src/button.tsx @@ -6,7 +6,7 @@ import "./button.scss"; import type { ButtonHTMLAttributes } from "react"; import React from "react"; -import { cssNames, SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import { cssNames, SafeReactNode } from "@k8slens/utilities"; import { withTooltip } from "@k8slens/tooltip"; export interface ButtonProps extends ButtonHTMLAttributes { @@ -23,7 +23,7 @@ export interface ButtonProps extends ButtonHTMLAttributes { round?: boolean; href?: string; // render as hyperlink target?: "_blank"; // in case of using @href - children?: SingleOrMany; + children?: SafeReactNode; } export const Button = withTooltip((props: ButtonProps) => { diff --git a/packages/ui-components/error-boundary/src/error-boundary.tsx b/packages/ui-components/error-boundary/src/error-boundary.tsx index 8b6f58f32f..693751a311 100644 --- a/packages/ui-components/error-boundary/src/error-boundary.tsx +++ b/packages/ui-components/error-boundary/src/error-boundary.tsx @@ -9,7 +9,7 @@ import type { ErrorInfo } from "react"; import React from "react"; import { observer } from "mobx-react"; import { Button } from "@k8slens/button"; -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import type { ObservableHistory } from "mobx-observable-history"; import { withInjectables } from "@ogre-tools/injectable-react"; import { observableHistoryInjectionToken } from "@k8slens/routing"; @@ -18,7 +18,7 @@ const issuesTrackerUrl = "https://github.com/lensapp/lens/issues"; const forumsUrl = "https://forums.k8slens.dev"; export interface ErrorBoundaryProps { - children?: SingleOrMany; + children?: SafeReactNode; } interface State { diff --git a/packages/ui-components/tooltip/src/withTooltip.test.tsx b/packages/ui-components/tooltip/src/withTooltip.test.tsx index 28a68bf81e..624bed5a55 100644 --- a/packages/ui-components/tooltip/src/withTooltip.test.tsx +++ b/packages/ui-components/tooltip/src/withTooltip.test.tsx @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import type { SafeReactNode, SingleOrMany } from "@k8slens/utilities"; +import type { SafeReactNode } from "@k8slens/utilities"; import { render, RenderResult } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import React from "react"; @@ -12,7 +12,7 @@ import { withTooltip } from "./withTooltip"; type MyComponentProps = { text: string; id?: string; - children?: SingleOrMany; + children?: SafeReactNode; "data-testid"?: string; }; diff --git a/packages/ui-components/tooltip/src/withTooltip.tsx b/packages/ui-components/tooltip/src/withTooltip.tsx index 14617c9dec..693e34f971 100644 --- a/packages/ui-components/tooltip/src/withTooltip.tsx +++ b/packages/ui-components/tooltip/src/withTooltip.tsx @@ -18,7 +18,7 @@ export interface TooltipDecoratorProps { */ tooltipOverrideDisabled?: boolean; id?: string; - children?: SingleOrMany; + children?: SafeReactNode; } export function withTooltip( diff --git a/packages/utility-features/utilities/src/isReactNode.ts b/packages/utility-features/utilities/src/isReactNode.ts index 2bf72462b8..03372bb1d4 100755 --- a/packages/utility-features/utilities/src/isReactNode.ts +++ b/packages/utility-features/utilities/src/isReactNode.ts @@ -9,7 +9,7 @@ import type { SingleOrMany } from "./types"; export type SafeReactNode = React.ReactElement | React.ReactText | boolean | null | undefined | Iterable; -export function toSafeReactChildrenArray(children: SingleOrMany) { +export function toSafeReactChildrenArray(children: SafeReactNode) { return React.Children.toArray(children) as (Exclude)[]; }