diff --git a/projects/app/src/components/core/app/DatasetSelectModal.tsx b/projects/app/src/components/core/app/DatasetSelectModal.tsx index 3d7a25a3b..4d06ac847 100644 --- a/projects/app/src/components/core/app/DatasetSelectModal.tsx +++ b/projects/app/src/components/core/app/DatasetSelectModal.tsx @@ -41,17 +41,28 @@ export const DatasetSelectModal = ({ const { Loading } = useLoading(); const filterDatasets = useMemo(() => { - const filtered = { - selected: datasets.filter((item) => - selectedDatasets.find((dataset) => dataset.datasetId === item._id) - ), + const selectedInDatasets = datasets.filter((item) => + selectedDatasets.some((dataset) => dataset.datasetId === item._id) + ); + + const selectedNotInDatasets = selectedDatasets + .filter((selected) => !datasets.some((dataset) => dataset._id === selected.datasetId)) + .map((selected) => ({ + _id: selected.datasetId, + avatar: selected.avatar, + name: selected.name, + vectorModel: selected.vectorModel + })); + + return { + selected: [...selectedInDatasets, ...selectedNotInDatasets], unSelected: datasets.filter( - (item) => !selectedDatasets.find((dataset) => dataset.datasetId === item._id) + (item) => !selectedDatasets.some((dataset) => dataset.datasetId === item._id) ) }; - return filtered; }, [datasets, selectedDatasets]); - const activeVectorModel = defaultSelectedDatasets[0]?.vectorModel?.model; + + const activeVectorModel = selectedDatasets[0]?.vectorModel?.model; return (