Skip to content

Commit

Permalink
Merge pull request backstage#15813 from ryan-hanchett/feat/doc-table-…
Browse files Browse the repository at this point in the history
…pagesize

feat: add option to override material table options for DocsTable
  • Loading branch information
benjdlambert authored Jan 30, 2023
2 parents 08e2d39 + f82dad6 commit 7f11883
Show file tree
Hide file tree
Showing 8 changed files with 30 additions and 2 deletions.
5 changes: 5 additions & 0 deletions .changeset/cuddly-boxes-agree.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@backstage/plugin-techdocs': minor
---

Update DocsTable and EntityListDocsTable to accept overrides for Material Table options.
5 changes: 5 additions & 0 deletions .changeset/pretty-ladybugs-taste.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@backstage/core-components': patch
---

Adds new type, TableOptions, extending Material Table Options.
6 changes: 6 additions & 0 deletions packages/core-components/api-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -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<T extends object = {}> extends Options_2<T> {}

// 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)
Expand Down
2 changes: 2 additions & 0 deletions packages/core-components/src/components/Table/Table.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,8 @@ export interface TableProps<T extends object = {}>
onStateChange?: (state: TableState) => any;
}

export interface TableOptions<T extends object = {}> extends Options<T> {}

export function TableToolbar(toolbarProps: {
toolbarRef: MutableRefObject<any>;
setSearch: (value: string) => void;
Expand Down
1 change: 1 addition & 0 deletions packages/core-components/src/components/Table/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ export type {
TableColumn,
TableFilter,
TableProps,
TableOptions,
TableState,
TableClassKey,
FiltersContainerClassKey,
Expand Down
3 changes: 3 additions & 0 deletions plugins/techdocs/api-report.md
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -100,6 +101,7 @@ export type DocsTableProps = {
loading?: boolean | undefined;
columns?: TableColumn<DocsTableRow>[];
actions?: TableProps<DocsTableRow>['actions'];
options?: TableOptions<DocsTableRow>;
};

// @public
Expand Down Expand Up @@ -159,6 +161,7 @@ export const EntityListDocsTable: {
export type EntityListDocsTableProps = {
columns?: TableColumn<DocsTableRow>[];
actions?: TableProps<DocsTableRow>['actions'];
options?: TableOptions<DocsTableRow>;
};

// @public
Expand Down
5 changes: 4 additions & 1 deletion plugins/techdocs/src/home/components/Tables/DocsTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ import {
EmptyState,
Table,
TableColumn,
TableOptions,
TableProps,
} from '@backstage/core-components';
import { actionFactories } from './actions';
Expand All @@ -47,6 +48,7 @@ export type DocsTableProps = {
loading?: boolean | undefined;
columns?: TableColumn<DocsTableRow>[];
actions?: TableProps<DocsTableRow>['actions'];
options?: TableOptions<DocsTableRow>;
};

/**
Expand All @@ -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);
Expand Down Expand Up @@ -102,6 +104,7 @@ export const DocsTable = (props: DocsTableProps) => {
pageSize: 20,
search: true,
actionsColumnIndex: -1,
...options,
}}
data={documents}
columns={columns || defaultColumns}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import { capitalize } from 'lodash';
import {
CodeSnippet,
TableColumn,
TableOptions,
TableProps,
WarningPanel,
} from '@backstage/core-components';
Expand All @@ -40,6 +41,7 @@ import { DocsTableRow } from './types';
export type EntityListDocsTableProps = {
columns?: TableColumn<DocsTableRow>[];
actions?: TableProps<DocsTableRow>['actions'];
options?: TableOptions<DocsTableRow>;
};

/**
Expand All @@ -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();
Expand Down Expand Up @@ -81,6 +83,7 @@ export const EntityListDocsTable = (props: EntityListDocsTableProps) => {
loading={loading}
actions={actions || defaultActions}
columns={columns}
options={options}
/>
);
};
Expand Down

0 comments on commit 7f11883

Please sign in to comment.