From 21c64d53bb11791bc3b06cb7221c17fa741d0df7 Mon Sep 17 00:00:00 2001 From: Ryan Hanchett Date: Tue, 17 Jan 2023 14:30:28 -0800 Subject: [PATCH 1/6] feat: enable passing material table options to docs table via entity list docs table Signed-off-by: Ryan Hanchett --- packages/core-components/src/components/Table/Table.tsx | 2 ++ plugins/techdocs/src/home/components/Tables/DocsTable.tsx | 5 ++++- .../src/home/components/Tables/EntityListDocsTable.tsx | 5 ++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/core-components/src/components/Table/Table.tsx b/packages/core-components/src/components/Table/Table.tsx index c799402cbc288..89a1d69b96078 100644 --- a/packages/core-components/src/components/Table/Table.tsx +++ b/packages/core-components/src/components/Table/Table.tsx @@ -240,6 +240,8 @@ export interface TableProps onStateChange?: (state: TableState) => any; } +export interface TableOptions extends Options {} + export function TableToolbar(toolbarProps: { toolbarRef: MutableRefObject; setSearch: (value: string) => void; diff --git a/plugins/techdocs/src/home/components/Tables/DocsTable.tsx b/plugins/techdocs/src/home/components/Tables/DocsTable.tsx index 883c4961918c0..842c80018f578 100644 --- a/plugins/techdocs/src/home/components/Tables/DocsTable.tsx +++ b/plugins/techdocs/src/home/components/Tables/DocsTable.tsx @@ -29,6 +29,7 @@ import { EmptyState, Table, TableColumn, + TableOptions, TableProps, } from '@backstage/core-components'; import { actionFactories } from './actions'; @@ -47,6 +48,7 @@ export type DocsTableProps = { loading?: boolean | undefined; columns?: TableColumn[]; actions?: TableProps['actions']; + options?: TableOptions; }; /** @@ -55,7 +57,7 @@ export type DocsTableProps = { * @public */ export const DocsTable = (props: DocsTableProps) => { - const { entities, title, loading, columns, actions } = props; + const { entities, title, loading, columns, actions, options } = props; const [, copyToClipboard] = useCopyToClipboard(); const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef); const config = useApi(configApiRef); @@ -102,6 +104,7 @@ export const DocsTable = (props: DocsTableProps) => { pageSize: 20, search: true, actionsColumnIndex: -1, + ...options, }} data={documents} columns={columns || defaultColumns} diff --git a/plugins/techdocs/src/home/components/Tables/EntityListDocsTable.tsx b/plugins/techdocs/src/home/components/Tables/EntityListDocsTable.tsx index d47ddb13c40ba..0042cc941889d 100644 --- a/plugins/techdocs/src/home/components/Tables/EntityListDocsTable.tsx +++ b/plugins/techdocs/src/home/components/Tables/EntityListDocsTable.tsx @@ -20,6 +20,7 @@ import { capitalize } from 'lodash'; import { CodeSnippet, TableColumn, + TableOptions, TableProps, WarningPanel, } from '@backstage/core-components'; @@ -40,6 +41,7 @@ import { DocsTableRow } from './types'; export type EntityListDocsTableProps = { columns?: TableColumn[]; actions?: TableProps['actions']; + options?: TableOptions; }; /** @@ -48,7 +50,7 @@ export type EntityListDocsTableProps = { * @public */ export const EntityListDocsTable = (props: EntityListDocsTableProps) => { - const { columns, actions } = props; + const { columns, actions, options } = props; const { loading, error, entities, filters } = useEntityList(); const { isStarredEntity, toggleStarredEntity } = useStarredEntities(); const [, copyToClipboard] = useCopyToClipboard(); @@ -81,6 +83,7 @@ export const EntityListDocsTable = (props: EntityListDocsTableProps) => { loading={loading} actions={actions || defaultActions} columns={columns} + options={options} /> ); }; From fd93c6b859add484a7855a6b3d3a26524df6a2c7 Mon Sep 17 00:00:00 2001 From: Ryan Hanchett Date: Tue, 17 Jan 2023 14:36:08 -0800 Subject: [PATCH 2/6] fix: add missing export of table options to table component index Signed-off-by: Ryan Hanchett --- packages/core-components/src/components/Table/index.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/core-components/src/components/Table/index.ts b/packages/core-components/src/components/Table/index.ts index 7fc245d6d0235..00e1ae9de53e2 100644 --- a/packages/core-components/src/components/Table/index.ts +++ b/packages/core-components/src/components/Table/index.ts @@ -22,6 +22,7 @@ export type { TableColumn, TableFilter, TableProps, + TableOptions, TableState, TableClassKey, FiltersContainerClassKey, From 20840b36b4d503f588a22e9e6b3b54c9db3052ce Mon Sep 17 00:00:00 2001 From: Ryan Hanchett Date: Tue, 17 Jan 2023 14:40:16 -0800 Subject: [PATCH 3/6] chore: add changesets Signed-off-by: Ryan Hanchett --- .changeset/cuddly-boxes-agree.md | 5 +++++ .changeset/pretty-ladybugs-taste.md | 5 +++++ 2 files changed, 10 insertions(+) create mode 100644 .changeset/cuddly-boxes-agree.md create mode 100644 .changeset/pretty-ladybugs-taste.md diff --git a/.changeset/cuddly-boxes-agree.md b/.changeset/cuddly-boxes-agree.md new file mode 100644 index 0000000000000..681881c007257 --- /dev/null +++ b/.changeset/cuddly-boxes-agree.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-techdocs': patch +--- + +Update DocsTable and EntityListDocsTable to accept overrides for Material Table options. diff --git a/.changeset/pretty-ladybugs-taste.md b/.changeset/pretty-ladybugs-taste.md new file mode 100644 index 0000000000000..5c87cde123e66 --- /dev/null +++ b/.changeset/pretty-ladybugs-taste.md @@ -0,0 +1,5 @@ +--- +'@backstage/core-components': patch +--- + +Adds new type, TableOptions, extending Material Table Options. From bd939999a9ce7e6881ad9b7ba968aabb04358e22 Mon Sep 17 00:00:00 2001 From: Ryan Hanchett Date: Wed, 18 Jan 2023 10:11:53 -0800 Subject: [PATCH 4/6] fix: generate new api reports Signed-off-by: Ryan Hanchett --- packages/core-components/api-report.md | 6 ++++++ plugins/techdocs/api-report.md | 3 +++ 2 files changed, 9 insertions(+) diff --git a/packages/core-components/api-report.md b/packages/core-components/api-report.md index 4cdc42ee79c00..19bdfced2745e 100644 --- a/packages/core-components/api-report.md +++ b/packages/core-components/api-report.md @@ -31,6 +31,7 @@ import MaterialBreadcrumbs from '@material-ui/core/Breadcrumbs'; import { MaterialTableProps } from '@material-table/core'; import { NavLinkProps } from 'react-router-dom'; import { Options } from 'react-markdown'; +import { Options as Options_2 } from '@material-table/core'; import { Overrides } from '@material-ui/core/styles/overrides'; import { ProfileInfo } from '@backstage/core-plugin-api'; import { ProfileInfoApi } from '@backstage/core-plugin-api'; @@ -1392,6 +1393,11 @@ export type TableFiltersClassKey = 'root' | 'value' | 'heder' | 'filters'; // @public (undocumented) export type TableHeaderClassKey = 'header'; +// Warning: (ae-missing-release-tag) "TableOptions" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export interface TableOptions extends Options_2 {} + // Warning: (ae-missing-release-tag) "TableProps" is part of the package's API, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) diff --git a/plugins/techdocs/api-report.md b/plugins/techdocs/api-report.md index d1c05f5b8e647..d403f4582e4c2 100644 --- a/plugins/techdocs/api-report.md +++ b/plugins/techdocs/api-report.md @@ -20,6 +20,7 @@ import { ReactNode } from 'react'; import { ResultHighlight } from '@backstage/plugin-search-common'; import { RouteRef } from '@backstage/core-plugin-api'; import { TableColumn } from '@backstage/core-components'; +import { TableOptions } from '@backstage/core-components'; import { TableProps } from '@backstage/core-components'; import { TechDocsEntityMetadata as TechDocsEntityMetadata_2 } from '@backstage/plugin-techdocs-react'; import { TechDocsMetadata as TechDocsMetadata_2 } from '@backstage/plugin-techdocs-react'; @@ -100,6 +101,7 @@ export type DocsTableProps = { loading?: boolean | undefined; columns?: TableColumn[]; actions?: TableProps['actions']; + options?: TableOptions; }; // @public @@ -159,6 +161,7 @@ export const EntityListDocsTable: { export type EntityListDocsTableProps = { columns?: TableColumn[]; actions?: TableProps['actions']; + options?: TableOptions; }; // @public From 40bceabf36399b0d8fe4507f0a33c22044767f70 Mon Sep 17 00:00:00 2001 From: Ryan Hanchett Date: Thu, 19 Jan 2023 11:41:48 -0800 Subject: [PATCH 5/6] chore: convert changesets from patch to minor Signed-off-by: Ryan Hanchett --- .changeset/cuddly-boxes-agree.md | 2 +- .changeset/pretty-ladybugs-taste.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.changeset/cuddly-boxes-agree.md b/.changeset/cuddly-boxes-agree.md index 681881c007257..83f027ecb5478 100644 --- a/.changeset/cuddly-boxes-agree.md +++ b/.changeset/cuddly-boxes-agree.md @@ -1,5 +1,5 @@ --- -'@backstage/plugin-techdocs': patch +'@backstage/plugin-techdocs': minor --- Update DocsTable and EntityListDocsTable to accept overrides for Material Table options. diff --git a/.changeset/pretty-ladybugs-taste.md b/.changeset/pretty-ladybugs-taste.md index 5c87cde123e66..b4620f4c51b0e 100644 --- a/.changeset/pretty-ladybugs-taste.md +++ b/.changeset/pretty-ladybugs-taste.md @@ -1,5 +1,5 @@ --- -'@backstage/core-components': patch +'@backstage/core-components': minor --- Adds new type, TableOptions, extending Material Table Options. From f82dad6ebd9e1a23570bf949901b1695d3eddce8 Mon Sep 17 00:00:00 2001 From: Ryan Hanchett Date: Mon, 23 Jan 2023 15:40:27 -0800 Subject: [PATCH 6/6] chore: set core-components change to patch Signed-off-by: Ryan Hanchett --- .changeset/pretty-ladybugs-taste.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/pretty-ladybugs-taste.md b/.changeset/pretty-ladybugs-taste.md index b4620f4c51b0e..5c87cde123e66 100644 --- a/.changeset/pretty-ladybugs-taste.md +++ b/.changeset/pretty-ladybugs-taste.md @@ -1,5 +1,5 @@ --- -'@backstage/core-components': minor +'@backstage/core-components': patch --- Adds new type, TableOptions, extending Material Table Options.