core: add support for passing data fetch function to Table

Signed-off-by: Patrik Oldsberg <poldsberg@gmail.com>
This commit is contained in:
Patrik Oldsberg
2021-03-10 21:54:39 +01:00
parent cbb85fd86e
commit ff4d666abc
2 changed files with 11 additions and 3 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/core': patch
---
Add support for passing a fetch function instead of data to Table `data` prop.
+6 -3
View File
@@ -278,6 +278,9 @@ export function Table<T extends object = {}>({
);
useEffect(() => {
if (typeof data === 'function') {
return;
}
if (!selectedFilters) {
setTableData(data as any[]);
return;
@@ -429,7 +432,7 @@ export function Table<T extends object = {}>({
const Body = useCallback(
bodyProps => {
if (emptyContent && data.length === 0) {
if (emptyContent && typeof data !== 'function' && data.length === 0) {
return (
<tbody>
<tr>
@@ -446,7 +449,7 @@ export function Table<T extends object = {}>({
return (
<div className={tableClasses.root}>
{filtersOpen && data && filters?.length && (
{filtersOpen && data && typeof data !== 'function' && filters?.length && (
<Filters
filters={constructFilters(filters, data as any[])}
selectedFilters={selectedFilters}
@@ -474,7 +477,7 @@ export function Table<T extends object = {}>({
)}
</>
}
data={tableData}
data={typeof data === 'function' ? data : tableData}
style={{ width: '100%' }}
{...propsWithoutData}
/>