Skip to content

Commit b4e4ccd

Browse files
committed
refactor: streamline dataset formatting and simplify data retrieval logic in DatasetsRoute
1 parent 4338bdc commit b4e4ccd

File tree

1 file changed

+31
-57
lines changed

1 file changed

+31
-57
lines changed

src/routes/$chainSlug/_layout/datasets.tsx

Lines changed: 31 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ function useDatasetsData(currentPage: number) {
8282
);
8383

8484
const datasets = data?.datasets ?? [];
85-
// 0 = only current, 1 = next, 2 = next+1
8685
const additionalPages = getAdditionalPages(
8786
Boolean(data?.datasetsHasNext?.length),
8887
Boolean(data?.datasetsHasNextNext?.length)
@@ -94,14 +93,13 @@ function useDatasetsData(currentPage: number) {
9493
chainId!
9594
);
9695

97-
const formattedDatasets =
98-
datasets.map((dataset) =>
99-
formatDataset({
100-
...dataset,
101-
schema: schemasMap.get(dataset.address) || [],
102-
isSchemasLoading,
103-
})
104-
) ?? [];
96+
const formattedDatasets = datasets.map((dataset) =>
97+
formatDataset({
98+
...dataset,
99+
schema: schemasMap.get(dataset.address) || [],
100+
isSchemasLoading,
101+
})
102+
);
105103

106104
return {
107105
data: formattedDatasets,
@@ -113,35 +111,6 @@ function useDatasetsData(currentPage: number) {
113111
};
114112
}
115113

116-
const getDisplayData = (
117-
useSchemaSearch: boolean,
118-
schemaResult: any,
119-
datasetsData: any
120-
) => {
121-
if (useSchemaSearch) {
122-
return {
123-
data: (schemaResult.data?.protectedDatas ?? []).map(formatDataset),
124-
isLoading: schemaResult.isLoading,
125-
isRefetching: schemaResult.isRefetching,
126-
isError: schemaResult.isError,
127-
hasPastError: schemaResult.isError || schemaResult.errorUpdateCount > 0,
128-
additionalPages: getAdditionalPages(
129-
Boolean(schemaResult.data?.protectedDatasHasNext?.length),
130-
Boolean(schemaResult.data?.protectedDatasHasNextNext?.length)
131-
),
132-
};
133-
}
134-
135-
return {
136-
data: datasetsData.data ?? [],
137-
isLoading: datasetsData.isLoading,
138-
isRefetching: datasetsData.isRefetching,
139-
isError: datasetsData.isError,
140-
hasPastError: datasetsData.hasPastError,
141-
additionalPages: datasetsData.additionalPages,
142-
};
143-
};
144-
145114
function DatasetsRoute() {
146115
const [currentPage, setCurrentPage] = usePageParam('datasetsPage');
147116
const [isSchemaSearchOpen, setIsSchemaSearchOpen] =
@@ -161,15 +130,7 @@ function DatasetsRoute() {
161130
}, []);
162131

163132
const handleAddFilter = (filter: SchemaFilter) => {
164-
console.log('add filter', filter);
165-
console.log('current filters', filters);
166-
167-
const newFilters: SchemaFilter[] = [
168-
...filters.filter(
169-
(f) => !(f.path === filter.path && f.type === filter.type)
170-
),
171-
filter,
172-
];
133+
const newFilters = [...filters, filter];
173134
navigate({
174135
search: { ...search, schema: encodeSchemaFilters(newFilters) },
175136
replace: true,
@@ -218,11 +179,14 @@ function DatasetsRoute() {
218179
}
219180
};
220181

182+
const useSchemaSearch = filters.length > 0;
183+
184+
const datasetsData = useDatasetsData(currentPage - 1);
185+
221186
const skip = (currentPage - 1) * TABLE_LENGTH;
222187
const nextSkip = skip + TABLE_LENGTH;
223188
const nextNextSkip = skip + 2 * TABLE_LENGTH;
224189
const requiredSchema = filters.map((f) => `${f.path}:${f.type}`);
225-
const useSchemaSearch = filters.length > 0;
226190

227191
const schemaResult = useQuery({
228192
queryKey: [
@@ -255,16 +219,26 @@ function DatasetsRoute() {
255219
},
256220
});
257221

258-
const datasetsData = useDatasetsData(currentPage - 1);
222+
const data = useSchemaSearch
223+
? (schemaResult.data?.protectedDatas ?? []).map(formatDataset)
224+
: datasetsData.data;
259225

260-
const {
261-
data,
262-
isLoading,
263-
isRefetching,
264-
isError,
265-
hasPastError,
266-
additionalPages,
267-
} = getDisplayData(useSchemaSearch, schemaResult, datasetsData);
226+
const isLoading = useSchemaSearch
227+
? schemaResult.isLoading
228+
: datasetsData.isLoading;
229+
const isRefetching = useSchemaSearch
230+
? schemaResult.isRefetching
231+
: datasetsData.isRefetching;
232+
const isError = useSchemaSearch ? schemaResult.isError : datasetsData.isError;
233+
const hasPastError = useSchemaSearch
234+
? schemaResult.isError || schemaResult.errorUpdateCount > 0
235+
: datasetsData.hasPastError;
236+
const additionalPages = useSchemaSearch
237+
? getAdditionalPages(
238+
Boolean(schemaResult.data?.protectedDatasHasNext?.length),
239+
Boolean(schemaResult.data?.protectedDatasHasNextNext?.length)
240+
)
241+
: datasetsData.additionalPages;
268242

269243
const columns = createColumns(handleSchemaSearch);
270244

0 commit comments

Comments
 (0)