Skip to content

Commit ac2fd19

Browse files
committed
feat: add dataset type in task dataset tab
1 parent f8dd348 commit ac2fd19

File tree

1 file changed

+51
-6
lines changed

1 file changed

+51
-6
lines changed

src/modules/tasks/task/TaskDatasetsTable.tsx

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,50 @@
11
import { DETAIL_TABLE_LENGTH, TABLE_REFETCH_INTERVAL } from '@/config';
2+
import { SchemaSearchPaginatedQuery } from '@/graphql/dataprotector/graphql';
3+
import { DatasetsQuery } from '@/graphql/poco/graphql';
24
import { execute } from '@/graphql/pocoBulk/execute';
35
import { useQuery } from '@tanstack/react-query';
46
import { DataTable } from '@/components/DataTable';
57
import { ErrorAlert } from '@/modules/ErrorAlert';
68
import { columns } from '@/modules/datasets/datasetsTable/columns';
9+
import { useDatasetsSchemas } from '@/modules/datasets/hooks/useDatasetsSchemas';
10+
import { SchemaFilter } from '@/modules/datasets/schemaFilters';
711
import useUserStore from '@/stores/useUser.store';
812
import { createPlaceholderDataFnForQueryKey } from '@/utils/createPlaceholderDataFnForQueryKey';
913
import { taskDatasetsQuery } from './taskDatasetsPocoBulkQuery';
1014

15+
function formatDataset({
16+
dataset,
17+
schema,
18+
isSchemasLoading,
19+
}: {
20+
dataset:
21+
| DatasetsQuery['datasets'][number]
22+
| SchemaSearchPaginatedQuery['protectedDatas'][number];
23+
schema?: SchemaFilter[];
24+
isSchemasLoading: boolean;
25+
}) {
26+
return {
27+
address: dataset.address ?? '',
28+
name: dataset.name ?? '',
29+
schema: schema ?? [],
30+
isSchemasLoading: isSchemasLoading,
31+
owner: { address: dataset.owner?.address ?? '' },
32+
timestamp: dataset.timestamp,
33+
transfers:
34+
dataset.transfers ??
35+
('transactionHash' in dataset && dataset.transactionHash
36+
? [
37+
{
38+
transaction: {
39+
txHash: dataset.transactionHash,
40+
},
41+
},
42+
]
43+
: []),
44+
destination: `/dataset/${dataset.address}`,
45+
};
46+
}
47+
1148
function useTaskDatasetsData({ taskId }: { taskId: string }) {
1249
const { chainId } = useUserStore();
1350

@@ -25,14 +62,22 @@ function useTaskDatasetsData({ taskId }: { taskId: string }) {
2562
}
2663
);
2764

28-
const formattedDataset =
29-
data?.task?.bulkSlice?.datasets.map((dataset) => ({
30-
...dataset,
31-
destination: `/dataset/${dataset.address}`,
32-
})) ?? [];
65+
const datasets = data?.task?.bulkSlice?.datasets || [];
66+
const datasetAddresses = datasets.map((dataset) => dataset.address);
67+
const { schemasMap, isLoading: isSchemasLoading } = useDatasetsSchemas(
68+
datasetAddresses,
69+
chainId!
70+
);
71+
const formattedDatasets = datasets.map((dataset) =>
72+
formatDataset({
73+
dataset,
74+
schema: schemasMap.get(dataset.address) || [],
75+
isSchemasLoading,
76+
})
77+
);
3378

3479
return {
35-
data: formattedDataset,
80+
data: formattedDatasets,
3681
isLoading,
3782
isRefetching,
3883
isError,

0 commit comments

Comments
 (0)