From 5d9cdee31f0f56a16fdddcb01828b490302c2100 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Wed, 19 Apr 2023 10:17:22 -0400 Subject: [PATCH] docs: Fix initial warnings from generating API docs Signed-off-by: Sebastian Malton --- .../core/src/common/catalog/catalog-entity.ts | 2 +- .../src/extensions/base-extension-store.ts | 2 +- .../src/renderer/components/icon/icon.tsx | 48 +++++++------- .../renderer/components/table/table-cell.tsx | 2 +- .../renderer/components/table/table-row.tsx | 16 ++++- .../src/renderer/components/table/table.tsx | 66 +++++++++++++++---- 6 files changed, 93 insertions(+), 43 deletions(-) diff --git a/packages/core/src/common/catalog/catalog-entity.ts b/packages/core/src/common/catalog/catalog-entity.ts index bb45f4cb27..346fd3d87e 100644 --- a/packages/core/src/common/catalog/catalog-entity.ts +++ b/packages/core/src/common/catalog/catalog-entity.ts @@ -118,7 +118,7 @@ export interface CatalogCategoryMetadata { */ readonly name: string; /** - * Either an `` or the name of an icon from {@link IconProps} + * Either an `` or one of the provided svg names from {@link Renderer.Component.NamedSvg} */ readonly icon: string; } diff --git a/packages/core/src/extensions/base-extension-store.ts b/packages/core/src/extensions/base-extension-store.ts index 703edfafd0..ae35c82f60 100644 --- a/packages/core/src/extensions/base-extension-store.ts +++ b/packages/core/src/extensions/base-extension-store.ts @@ -86,7 +86,7 @@ export abstract class BaseExtensionStore { } /** - * @deprecated Never use this method. Instead call {@link BaseExtensionStore.loadExtension} + * @deprecated Never use this method. Instead call {@link Common.Store.ExtensionStore.loadExtension} */ load() { this.persistentStorage?.loadAndStartSyncing(); diff --git a/packages/core/src/renderer/components/icon/icon.tsx b/packages/core/src/renderer/components/icon/icon.tsx index 6dd47ac3d3..5b500b9531 100644 --- a/packages/core/src/renderer/components/icon/icon.tsx +++ b/packages/core/src/renderer/components/icon/icon.tsx @@ -73,6 +73,29 @@ const localSvgIcons = new Map([ ["workloads", Workloads], ]); +export type NamedSvg = + | "configuration" + | "crane" + | "group" + | "helm" + | "install" + | "kube" + | "lens-logo" + | "license" + | "logo-lens" + | "logout" + | "nodes" + | "push_off" + | "push_pin" + | "spinner" + | "ssh" + | "storage" + | "terminal" + | "user" + | "users" + | "wheel" + | "workloads"; + export interface BaseIconProps { /** * One of the names from https://material.io/icons/ @@ -80,30 +103,9 @@ export interface BaseIconProps { material?: string; /** - * Either an SVG XML or one of the following names - * - configuration - * - crane - * - group - * - helm - * - install - * - kube - * - lens-logo - * - license - * - logo-lens - * - logout - * - nodes - * - push_off - * - push_pin - * - spinner - * - ssh - * - storage - * - terminal - * - user - * - users - * - wheel - * - workloads + * Either an SVG XML or one of {@link NamedSvg} */ - svg?: string; + svg?: NamedSvg | string; /** * render icon as NavLink from react-router-dom diff --git a/packages/core/src/renderer/components/table/table-cell.tsx b/packages/core/src/renderer/components/table/table-cell.tsx index 6226b5ab53..29f68f457a 100644 --- a/packages/core/src/renderer/components/table/table-cell.tsx +++ b/packages/core/src/renderer/components/table/table-cell.tsx @@ -47,7 +47,7 @@ export interface TableCellProps extends React.DOMAttributes { isChecked?: boolean; /** - * column name, must be same as key in sortable object + * column name, must be same as key in sortable object `
` */ sortBy?: TableSortBy; diff --git a/packages/core/src/renderer/components/table/table-row.tsx b/packages/core/src/renderer/components/table/table-row.tsx index aaf4a0a2fb..aef609ddca 100644 --- a/packages/core/src/renderer/components/table/table-row.tsx +++ b/packages/core/src/renderer/components/table/table-row.tsx @@ -15,9 +15,19 @@ export interface TableRowProps extends React.DOMAttributes className?: string; selected?: boolean; style?: CSSProperties; - nowrap?: boolean; // white-space: nowrap, align inner in one line - sortItem?: Item; // data for sorting callback in - searchItem?: Item; // data for searching filters in
+ /** + * Should the inner `` be aligned to one line + * `white-space: nowrap` + */ + nowrap?: boolean; + /** + * data for sorting callback in `
` + */ + sortItem?: Item; + /** + * data for searching filters in `
` + */ + searchItem?: Item; disabled?: boolean; testId?: string; } diff --git a/packages/core/src/renderer/components/table/table.tsx b/packages/core/src/renderer/components/table/table.tsx index 9c1cbcae70..6930ed4bd3 100644 --- a/packages/core/src/renderer/components/table/table.tsx +++ b/packages/core/src/renderer/components/table/table.tsx @@ -36,23 +36,61 @@ export type TableSortCallback = (data: Item) => undefined | string | numbe export type TableSortCallbacks = Record>; export interface TableProps extends React.DOMAttributes { - tableId?: string; - items?: Item[]; // Raw items data - className?: string; - autoSize?: boolean; // Setup auto-sizing for all columns (flex: 1 0) - selectable?: boolean; // Highlight rows on hover - scrollable?: boolean; // Use scrollbar if content is bigger than parent's height - storageKey?: string; // Keep some data in localStorage & restore on page reload, e.g sorting params /** - * Define sortable callbacks for every column in - * @sortItem argument in the callback is an object, provided in + * Used for persisting sort order and visible columns + */ + tableId?: string; + /** + * The raw data for the table + */ + items?: Item[]; + /** + * Optional addition class names for the root HTML element + */ + className?: string; + /** + * Setup auto-sizing for all columns (flex: 1 0) + */ + autoSize?: boolean; + /** + * Highlight rows on hover + */ + selectable?: boolean; + /** + * Use scrollbar if content is bigger than parent's height + */ + scrollable?: boolean; + /** + * @deprecated Unused + */ + storageKey?: string; + /** + * Define sortable callbacks for every column in `` + * @sortItem argument in the callback is an object, provided in `` */ sortable?: TableSortCallbacks; - sortSyncWithUrl?: boolean; // sorting state is managed globally from url params - sortByDefault?: Partial; // default sorting params - onSort?: (params: TableSortParams) => void; // callback on sort change, default: global sync with url - noItems?: React.ReactNode; // Show no items state table list is empty - selectedItemId?: string; // Allows to scroll list to selected item + /** + * sorting state is managed globally from url params + */ + sortSyncWithUrl?: boolean; + /** + * default sorting params + */ + sortByDefault?: Partial; + /** + * callback on sort change + * + * Default: global sync with url + */ + onSort?: (params: TableSortParams) => void; + /** + * This is shown when {@link TableProps.items} is empty + */ + noItems?: React.ReactNode; + /** + * Allows to scroll list to selected item + */ + selectedItemId?: string; /** * Use virtual list component to render only visible rows. By default uses a