import { useEffect, useState } from "react"; import { Box, Button, Paper, Stack, Typography } from "@mui/material"; import { WorkflowPackageSummary } from "../../lib/types"; import WorkflowGraphPanel from "../workflow/WorkflowGraphPanel"; import WorkflowPalette from "../workflow/WorkflowPalette"; type WorkflowSectionProps = { content: string; packages: WorkflowPackageSummary[]; onSave: (content: string) => Promise; onTemplateSelect: (id: string) => void; t: (key: string, fallback?: string) => string; active: boolean; }; export default function WorkflowSection({ content, packages, onSave, onTemplateSelect, t, active }: WorkflowSectionProps) { const [draft, setDraft] = useState(content); const [message, setMessage] = useState(""); useEffect(() => { setDraft(content); }, [content]); const handleSave = async () => { await onSave(draft); setMessage(t("ui.workflow.save", "Save Workflow") + " " + t("ui.actions.save", "Save")); setTimeout(() => setMessage(""), 2000); }; return ( {t("ui.workflow.title", "Workflow Builder")} {t("ui.workflow.subtitle", "Design the bot's task execution pipeline")} setDraft(event.target.value)} rows={18} sx={{ width: "100%", fontFamily: "JetBrains Mono, monospace", backgroundColor: "var(--color-input-bg)", border: "1px solid var(--color-border-muted)", borderRadius: 2, color: "var(--color-text-strong)", p: 2, }} /> {message} {t("ui.workflow.templates.title", "Workflow Templates")} {packages.map((pkg) => ( {pkg.label} {pkg.description} ))} ); }