diff --git a/.changeset/loud-rivers-sit.md b/.changeset/loud-rivers-sit.md new file mode 100644 index 0000000000..5a4d346126 --- /dev/null +++ b/.changeset/loud-rivers-sit.md @@ -0,0 +1,5 @@ +--- +'@backstage/core': patch +--- + +Add support for passing a fetch function instead of data to Table `data` prop. diff --git a/packages/core/src/components/Table/Table.tsx b/packages/core/src/components/Table/Table.tsx index 3892d82bb3..d061be6d60 100644 --- a/packages/core/src/components/Table/Table.tsx +++ b/packages/core/src/components/Table/Table.tsx @@ -278,6 +278,9 @@ export function Table({ ); useEffect(() => { + if (typeof data === 'function') { + return; + } if (!selectedFilters) { setTableData(data as any[]); return; @@ -429,7 +432,7 @@ export function Table({ const Body = useCallback( bodyProps => { - if (emptyContent && data.length === 0) { + if (emptyContent && typeof data !== 'function' && data.length === 0) { return ( @@ -446,7 +449,7 @@ export function Table({ return (
- {filtersOpen && data && filters?.length && ( + {filtersOpen && data && typeof data !== 'function' && filters?.length && ( ({ )} } - data={tableData} + data={typeof data === 'function' ? data : tableData} style={{ width: '100%' }} {...propsWithoutData} />