- import ListFilterBar from '@/components/list-filter-bar';
 - import { RenameDialog } from '@/components/rename-dialog';
 - import { Button } from '@/components/ui/button';
 - import { RAGFlowPagination } from '@/components/ui/ragflow-pagination';
 - import { useFetchNextKnowledgeListByPage } from '@/hooks/use-knowledge-request';
 - import { pick } from 'lodash';
 - import { Plus } from 'lucide-react';
 - import { useCallback } from 'react';
 - import { useTranslation } from 'react-i18next';
 - import { DatasetCard } from './dataset-card';
 - import { DatasetCreatingDialog } from './dataset-creating-dialog';
 - import { useSaveKnowledge } from './hooks';
 - import { useRenameDataset } from './use-rename-dataset';
 - import { useSelectOwners } from './use-select-owners';
 - 
 - export default function Datasets() {
 -   const { t } = useTranslation();
 -   const {
 -     visible,
 -     hideModal,
 -     showModal,
 -     onCreateOk,
 -     loading: creatingLoading,
 -   } = useSaveKnowledge();
 - 
 -   const {
 -     kbs,
 -     total,
 -     pagination,
 -     setPagination,
 -     handleInputChange,
 -     searchString,
 -     filterValue,
 -     handleFilterSubmit,
 -   } = useFetchNextKnowledgeListByPage();
 - 
 -   const owners = useSelectOwners();
 - 
 -   const {
 -     datasetRenameLoading,
 -     initialDatasetName,
 -     onDatasetRenameOk,
 -     datasetRenameVisible,
 -     hideDatasetRenameModal,
 -     showDatasetRenameModal,
 -   } = useRenameDataset();
 - 
 -   const handlePageChange = useCallback(
 -     (page: number, pageSize?: number) => {
 -       setPagination({ page, pageSize });
 -     },
 -     [setPagination],
 -   );
 - 
 -   return (
 -     <section className="py-8 text-foreground">
 -       <ListFilterBar
 -         title="Datasets"
 -         searchString={searchString}
 -         onSearchChange={handleInputChange}
 -         value={filterValue}
 -         filters={owners}
 -         onChange={handleFilterSubmit}
 -         className="px-8"
 -       >
 -         <Button variant={'tertiary'} size={'sm'} onClick={showModal}>
 -           <Plus className="mr-2 h-4 w-4" />
 -           {t('knowledgeList.createKnowledgeBase')}
 -         </Button>
 -       </ListFilterBar>
 -       <div className="flex flex-wrap gap-4 max-h-[78vh] overflow-auto px-8">
 -         {kbs.map((dataset) => {
 -           return (
 -             <DatasetCard
 -               dataset={dataset}
 -               key={dataset.id}
 -               showDatasetRenameModal={showDatasetRenameModal}
 -             ></DatasetCard>
 -           );
 -         })}
 -       </div>
 -       <div className="mt-8 px-8">
 -         <RAGFlowPagination
 -           {...pick(pagination, 'current', 'pageSize')}
 -           total={total}
 -           onChange={handlePageChange}
 -         ></RAGFlowPagination>
 -       </div>
 -       {visible && (
 -         <DatasetCreatingDialog
 -           hideModal={hideModal}
 -           onOk={onCreateOk}
 -           loading={creatingLoading}
 -         ></DatasetCreatingDialog>
 -       )}
 -       {datasetRenameVisible && (
 -         <RenameDialog
 -           hideModal={hideDatasetRenameModal}
 -           onOk={onDatasetRenameOk}
 -           initialName={initialDatasetName}
 -           loading={datasetRenameLoading}
 -         ></RenameDialog>
 -       )}
 -     </section>
 -   );
 - }
 
 
  |