import { Box, Typography, Alert, CircularProgress } from "@mui/material"; import { useParams } from 'react-router-dom'; import { useAgentDetail } from '@/hooks/agent-hooks'; import { useState } from 'react'; import AgentTopbar from '@/pages/agent/components/AgentTopbar'; import AgentCanvas from '@/pages/agent/canvas'; import VersionListDialog from '@/pages/agent/components/VersionListDialog'; import EditAgentDialog from '@/pages/agent/components/EditAgentDialog'; import dayjs from "dayjs"; import { useTranslation } from "react-i18next"; function AgentDetailPage() { const { id } = useParams(); const { agent, graph, loading, error, refresh } = useAgentDetail(id); const [canvasApi, setCanvasApi] = useState<{ fitView: () => void } | null>(null); const [lastAutoSavedAt, setLastAutoSavedAt] = useState(null); const [versionOpen, setVersionOpen] = useState(false); const [editOpen, setEditOpen] = useState(false); const { t } = useTranslation(); const subtitle = (() => { const ts = agent?.update_time ?? agent?.create_time; if (!ts) return undefined; const d = new Date(ts); const dStr = dayjs(d).format('YYYY-MM-DD HH:mm:ss'); return t('agent.lastAutoSavedAt', { date: dStr }); })(); return ( setVersionOpen(true)} onOpenSettings={() => setEditOpen(true)} /> {loading && ( )} {error && ( {error} )} setCanvasApi(api)} onAutoSaved={(date) => setLastAutoSavedAt(date)} /> setVersionOpen(false)} /> setEditOpen(false)} onSaved={() => { setEditOpen(false); refresh(); }} /> ); } export default AgentDetailPage;