'use client'; import { useState, useEffect } from 'react'; import { useRouter } from 'next/navigation'; import { Tabs, TabsList, TabsTrigger, TabsContent } from '@/components/ui/tabs'; import { Button } from '@/components/ui/button'; import PipelineFormComponent from '@/app/home/pipelines/components/pipeline-form/PipelineFormComponent'; import DebugDialog from '@/app/home/pipelines/components/debug-dialog/DebugDialog'; import PipelineMonitoringTab from '@/app/home/pipelines/components/monitoring-tab/PipelineMonitoringTab'; import { useSidebarData } from '@/app/home/components/home-sidebar/SidebarDataContext'; import { useTranslation } from 'react-i18next'; import { Settings, Bug, BarChart3 } from 'lucide-react'; export default function PipelineDetailContent({ id }: { id: string }) { const isCreateMode = id === 'new'; const router = useRouter(); const { t } = useTranslation(); const { refreshPipelines, pipelines, setDetailEntityName } = useSidebarData(); // Set breadcrumb entity name useEffect(() => { if (isCreateMode) { setDetailEntityName(t('pipelines.createPipeline')); } else { const pipeline = pipelines.find((p) => p.id === id); setDetailEntityName(pipeline?.name ?? id); } return () => setDetailEntityName(null); }, [id, isCreateMode, pipelines, setDetailEntityName, t]); const [activeTab, setActiveTab] = useState('config'); const [isWebSocketConnected, setIsWebSocketConnected] = useState(false); const [formDirty, setFormDirty] = useState(false); function handleFinish() { refreshPipelines(); } function handleNewPipelineCreated(newPipelineId: string) { refreshPipelines(); router.push(`/home/pipelines?id=${encodeURIComponent(newPipelineId)}`); } // ==================== Create Mode ==================== if (isCreateMode) { return (