import { ConfirmDeleteDialog } from '@/components/confirm-delete-dialog'; import ListFilterBar from '@/components/list-filter-bar'; import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar'; import { Button } from '@/components/ui/button'; import { Card, CardContent } from '@/components/ui/card'; import { useInfiniteFetchKnowledgeList } from '@/hooks/knowledge-hooks'; import { useNavigatePage } from '@/hooks/logic-hooks/navigate-hooks'; import { IKnowledge } from '@/interfaces/database/knowledge'; import { formatDate } from '@/utils/date'; import { ChevronRight, Plus, Trash2 } from 'lucide-react'; import { useMemo } from 'react'; import { DatasetCreatingDialog } from './dataset-creating-dialog'; import { useSaveKnowledge } from './hooks'; export default function Datasets() { const { visible, hideModal, showModal, onCreateOk, loading: creatingLoading, } = useSaveKnowledge(); const { navigateToDataset } = useNavigatePage(); const { fetchNextPage, data, hasNextPage, searchString, handleInputChange, loading, } = useInfiniteFetchKnowledgeList(); const nextList: IKnowledge[] = useMemo(() => { const list = data?.pages?.flatMap((x) => (Array.isArray(x.kbs) ? x.kbs : [])) ?? []; return list; }, [data?.pages]); const total = useMemo(() => { return data?.pages.at(-1).total ?? 0; }, [data?.pages]); return (
Create dataset
{nextList.map((dataset) => (
CN

{dataset.name}

{dataset.doc_num} files

Created {formatDate(dataset.update_time)}

))}
{visible && ( )}
); }