Skip to content

Commit 922ec25

Browse files
Enchancing the Structure search (#1709)
Co-authored-by: Raman Damayeu <romantanzar@gmail.com>
1 parent 634e826 commit 922ec25

File tree

1 file changed

+22
-16
lines changed
  • odd-platform-ui/src/components/DataEntityDetails/DatasetStructure/DatasetStructureOverview/lib

1 file changed

+22
-16
lines changed

odd-platform-ui/src/components/DataEntityDetails/DatasetStructure/DatasetStructureOverview/lib/useStructure.ts

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,25 +21,30 @@ export default function useStructure() {
2121
const [datasetFieldFieldsCount] = useAtom(datasetFieldFieldsCountAtom);
2222
const [datasetVersions] = useAtom(datasetVersionsAtom);
2323

24+
// Create a filtered dataset structure based on the search query
25+
const filteredDatasetStructureRoot = useMemo(() => {
26+
if (!searchQuery) return datasetStructureRoot;
27+
return datasetStructureRoot.filter(item =>
28+
item.name.toLowerCase().includes(searchQuery.toLowerCase()) ||
29+
item.internalName?.toLowerCase().includes(searchQuery.toLowerCase())
30+
);
31+
}, [searchQuery, datasetStructureRoot]);
32+
2433
const idxToScroll = useMemo(
25-
() => datasetStructureRoot.findIndex(field => field.id === selectedFieldId),
26-
[selectedFieldId, datasetStructureRoot]
34+
() =>
35+
filteredDatasetStructureRoot.findIndex(
36+
field => field.id === selectedFieldId
37+
),
38+
[selectedFieldId, filteredDatasetStructureRoot]
2739
);
2840

41+
// Update the search query state
2942
const handleSearch = useCallback(
3043
(query: string) => {
31-
const itemIdx = datasetStructureRoot?.findIndex(
32-
item =>
33-
item.name.toLowerCase().includes(query.toLowerCase()) ||
34-
item.internalName?.toLowerCase().includes(query.toLowerCase())
35-
);
36-
37-
if (itemIdx !== undefined && itemIdx > -1) {
38-
setSelectedFieldId(datasetStructureRoot?.[itemIdx].id);
39-
setIsSearchUpdated(prev => !prev);
40-
}
44+
setSearchQuery(query);
45+
setIsSearchUpdated(prev => !prev);
4146
},
42-
[datasetStructureRoot]
47+
[setSearchQuery, setIsSearchUpdated]
4348
);
4449

4550
return useMemo(
@@ -51,7 +56,8 @@ export default function useStructure() {
5156
isSearchUpdated,
5257
setIsSearchUpdated,
5358
handleSearch,
54-
datasetStructureRoot,
59+
// filtered dataset structure
60+
datasetStructureRoot: filteredDatasetStructureRoot,
5561
idxToScroll,
5662
datasetFieldRowsCount,
5763
datasetFieldTypesCount,
@@ -63,12 +69,12 @@ export default function useStructure() {
6369
selectedFieldId,
6470
isSearchUpdated,
6571
handleSearch,
66-
datasetStructureRoot,
72+
filteredDatasetStructureRoot,
6773
idxToScroll,
6874
datasetFieldRowsCount,
6975
datasetFieldTypesCount,
7076
datasetFieldFieldsCount,
7177
datasetVersions,
7278
]
7379
);
74-
}
80+
}

0 commit comments

Comments
 (0)