import { PageHeader } from '@/components/page-header'; import { Button, ButtonLoading } from '@/components/ui/button'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { useSetModalState } from '@/hooks/common-hooks'; import { useNavigatePage } from '@/hooks/logic-hooks/navigate-hooks'; import { ReactFlowProvider } from '@xyflow/react'; import { CodeXml, EllipsisVertical, Forward, Import, Key } from 'lucide-react'; import { ComponentPropsWithoutRef, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import AgentCanvas from './canvas'; import { useHandleExportOrImportJsonFile } from './hooks/use-export-json'; import { useFetchDataOnMount } from './hooks/use-fetch-data'; import { useGetBeginNodeDataQuery } from './hooks/use-get-begin-query'; import { useOpenDocument } from './hooks/use-open-document'; import { useSaveGraph, useSaveGraphBeforeOpeningDebugDrawer, } from './hooks/use-save-graph'; import { BeginQuery } from './interface'; import { UploadAgentDialog } from './upload-agent-dialog'; function AgentDropdownMenuItem({ children, ...props }: ComponentPropsWithoutRef) { return ( {children} ); } export default function Agent() { const { navigateToAgentList } = useNavigatePage(); const { visible: chatDrawerVisible, hideModal: hideChatDrawer, showModal: showChatDrawer, } = useSetModalState(); const { t } = useTranslation(); const openDocument = useOpenDocument(); const { handleExportJson, handleImportJson, fileUploadVisible, onFileUploadOk, hideFileUploadModal, } = useHandleExportOrImportJsonFile(); const { saveGraph, loading } = useSaveGraph(); const { flowDetail } = useFetchDataOnMount(); const getBeginNodeDataQuery = useGetBeginNodeDataQuery(); const { handleRun } = useSaveGraphBeforeOpeningDebugDrawer(showChatDrawer); const handleRunAgent = useCallback(() => { const query: BeginQuery[] = getBeginNodeDataQuery(); if (query.length > 0) { showChatDrawer(); } else { handleRun(); } }, [getBeginNodeDataQuery, handleRun, showChatDrawer]); return (
saveGraph()} loading={loading} > Save API Import Export {t('common.embedIntoSite')}
{fileUploadVisible && ( )}
); }