mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-08-01 21:37:33 +08:00
Fix dataset selector to continue scoll if still have data (#17534)
1. controll scoll paging by total 2. show dataset but won't allow them to choose.
This commit is contained in:
@@ -33,7 +33,7 @@ export function useDisableDifferenceEmbeddingDataset(name: string) {
|
||||
loading,
|
||||
handleScroll,
|
||||
hasNextPage,
|
||||
} = useFetchKnowledgeList(true, debouncedSearchString);
|
||||
} = useFetchKnowledgeList(false, debouncedSearchString);
|
||||
const datasetCacheRef = useRef(new Map<string, IDataset>());
|
||||
|
||||
const datasetList = useMemo(() => {
|
||||
@@ -62,29 +62,29 @@ export function useDisableDifferenceEmbeddingDataset(name: string) {
|
||||
}, [datasetId, datasetList]);
|
||||
|
||||
const nextOptions = useMemo(() => {
|
||||
const datasetListMap = datasetList
|
||||
.filter((x) => x.chunk_method !== DocumentParserType.Tag)
|
||||
.map((item: IDataset) => {
|
||||
return {
|
||||
label: item.name,
|
||||
icon: () => (
|
||||
<RAGFlowAvatar
|
||||
className="size-4"
|
||||
avatar={item.avatar}
|
||||
name={item.name}
|
||||
/>
|
||||
),
|
||||
suffix: (
|
||||
<section className="flex gap-2">
|
||||
<DatasetLabel text={item.nickname} />
|
||||
<DatasetLabel text={item.embedding_model} />
|
||||
</section>
|
||||
),
|
||||
value: item.id,
|
||||
disabled:
|
||||
item.embedding_model !== selectedEmbedId && selectedEmbedId !== '',
|
||||
};
|
||||
});
|
||||
const datasetListMap = datasetList.map((item: IDataset) => {
|
||||
return {
|
||||
label: item.name,
|
||||
icon: () => (
|
||||
<RAGFlowAvatar
|
||||
className="size-4"
|
||||
avatar={item.avatar}
|
||||
name={item.name}
|
||||
/>
|
||||
),
|
||||
suffix: (
|
||||
<section className="flex gap-2">
|
||||
<DatasetLabel text={item.nickname} />
|
||||
<DatasetLabel text={item.embedding_model} />
|
||||
</section>
|
||||
),
|
||||
value: item.id,
|
||||
disabled:
|
||||
item.chunk_count <= 0 ||
|
||||
item.chunk_method === DocumentParserType.Tag ||
|
||||
(item.embedding_model !== selectedEmbedId && selectedEmbedId !== ''),
|
||||
};
|
||||
});
|
||||
|
||||
return datasetListMap;
|
||||
}, [datasetList, selectedEmbedId]);
|
||||
|
||||
@@ -1019,7 +1019,7 @@ export const useFetchKnowledgeList = (
|
||||
handleScroll: (e: React.UIEvent<HTMLDivElement>) => void;
|
||||
} => {
|
||||
const { data, fetchNextPage, hasNextPage, isFetching, isFetchingNextPage } =
|
||||
useInfiniteQuery<{ items: IDataset[] }>({
|
||||
useInfiniteQuery<{ items: IDataset[]; total: number }>({
|
||||
queryKey: KnowledgeListKeys.list(
|
||||
shouldFilterListWithoutDocument,
|
||||
keywords,
|
||||
@@ -1034,10 +1034,15 @@ export const useFetchKnowledgeList = (
|
||||
page_size: pageSize,
|
||||
...(keywords ? { ext: { keywords } } : {}),
|
||||
});
|
||||
return { items: (data?.data ?? []) as IDataset[] };
|
||||
return {
|
||||
items: (data?.data ?? []) as IDataset[],
|
||||
total: data?.total_datasets ?? 0,
|
||||
};
|
||||
},
|
||||
getNextPageParam: (lastPage, allPages) => {
|
||||
const loaded = allPages.reduce((total, page) => total + page.items.length, 0);
|
||||
return loaded < lastPage.total ? allPages.length + 1 : undefined;
|
||||
},
|
||||
getNextPageParam: (lastPage, allPages) =>
|
||||
lastPage.items.length >= pageSize ? allPages.length + 1 : undefined,
|
||||
});
|
||||
|
||||
const list = useMemo(() => {
|
||||
|
||||
Reference in New Issue
Block a user