diff --git a/web/src/components/knowledge-base-item.tsx b/web/src/components/knowledge-base-item.tsx index c80ba23b21..a2dac7cbb1 100644 --- a/web/src/components/knowledge-base-item.tsx +++ b/web/src/components/knowledge-base-item.tsx @@ -33,7 +33,7 @@ export function useDisableDifferenceEmbeddingDataset(name: string) { loading, handleScroll, hasNextPage, - } = useFetchKnowledgeList(true, debouncedSearchString); + } = useFetchKnowledgeList(false, debouncedSearchString); const datasetCacheRef = useRef(new Map()); 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: () => ( - - ), - suffix: ( -
- - -
- ), - value: item.id, - disabled: - item.embedding_model !== selectedEmbedId && selectedEmbedId !== '', - }; - }); + const datasetListMap = datasetList.map((item: IDataset) => { + return { + label: item.name, + icon: () => ( + + ), + suffix: ( +
+ + +
+ ), + value: item.id, + disabled: + item.chunk_count <= 0 || + item.chunk_method === DocumentParserType.Tag || + (item.embedding_model !== selectedEmbedId && selectedEmbedId !== ''), + }; + }); return datasetListMap; }, [datasetList, selectedEmbedId]); diff --git a/web/src/hooks/use-knowledge-request.ts b/web/src/hooks/use-knowledge-request.ts index 99503df057..9007a3aae1 100644 --- a/web/src/hooks/use-knowledge-request.ts +++ b/web/src/hooks/use-knowledge-request.ts @@ -1019,7 +1019,7 @@ export const useFetchKnowledgeList = ( handleScroll: (e: React.UIEvent) => 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(() => {