| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- 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>
- );
- }
|