import { CardContainer } from '@/components/card-container'; import { EmptyCardType } from '@/components/empty/constant'; import { EmptyAppCard } from '@/components/empty/empty'; import ListFilterBar from '@/components/list-filter-bar'; import { RenameDialog } from '@/components/rename-dialog'; import { Button } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { RAGFlowPagination } from '@/components/ui/ragflow-pagination'; import { useNavigatePage } from '@/hooks/logic-hooks/navigate-hooks'; import { useFetchAgentListByPage } from '@/hooks/use-agent-request'; import { t } from 'i18next'; import { pick } from 'lodash'; import { Clipboard, ClipboardPlus, FileInput, Plus } from 'lucide-react'; import { useCallback, useEffect } from 'react'; import { useSearchParams } from 'umi'; import { AgentCard } from './agent-card'; import { CreateAgentDialog } from './create-agent-dialog'; import { useCreateAgentOrPipeline } from './hooks/use-create-agent'; import { useSelectFilters } from './hooks/use-selelct-filters'; import { UploadAgentDialog } from './upload-agent-dialog'; import { useHandleImportJsonFile } from './use-import-json'; import { useRenameAgent } from './use-rename-agent'; export default function Agents() { const { data, pagination, setPagination, searchString, handleInputChange, filterValue, handleFilterSubmit, } = useFetchAgentListByPage(); const { navigateToAgentTemplates } = useNavigatePage(); const { agentRenameLoading, initialAgentName, onAgentRenameOk, agentRenameVisible, hideAgentRenameModal, showAgentRenameModal, } = useRenameAgent(); const { creatingVisible, hideCreatingModal, showCreatingModal, loading, handleCreateAgentOrPipeline, } = useCreateAgentOrPipeline(); const { handleImportJson, fileUploadVisible, onFileUploadOk, hideFileUploadModal, } = useHandleImportJsonFile(); const filters = useSelectFilters(); const handlePageChange = useCallback( (page: number, pageSize?: number) => { setPagination({ page, pageSize }); }, [setPagination], ); const [searchUrl, setSearchUrl] = useSearchParams(); const isCreate = searchUrl.get('isCreate') === 'true'; useEffect(() => { if (isCreate) { showCreatingModal(); searchUrl.delete('isCreate'); setSearchUrl(searchUrl); } }, [isCreate, showCreatingModal, searchUrl, setSearchUrl]); return ( <> {(!data?.length || data?.length <= 0) && !searchString && (