'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 (

{t('pipelines.createPipeline')}

{}} />
); } function handleDeletePipeline() { refreshPipelines(); router.push('/home/pipelines'); } // ==================== Edit Mode ==================== return (
{/* Sticky Header: title + save button */}

{t('pipelines.editPipeline')}

{/* Horizontal Tabs */} {t('pipelines.configuration')} {t('pipelines.debugChat')} {activeTab === 'debug' && ( )} {t('pipelines.monitoring.title')} {/* Tab: Configuration */} router.push('/home/pipelines')} onDirtyChange={setFormDirty} /> {/* Tab: Debug */} {/* Tab: Monitoring */} { router.push('/home/monitoring'); }} />
); }