"use client"; import { useState } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { AgentPresetPanelDark } from "./AgentPresetPanelDark"; import { AgentWorkflowPanelDark, type AgentWorkflowInputs } from "./AgentWorkflowPanelDark"; import { AgentGenerationWorkspaceDark } from "./AgentGenerationWorkspaceDark"; import { createEmptyAgentWorkflowMaterialSelections, normalizeAgentWorkflowMaterialSelections, } from "@/lib/agents/workflow-material-config"; import { buildAgentWorkflowComposerContext } from "@/lib/agents/workflow-composer"; import type { AgentWorkflowMaterialSelections, AgentWorkflowStepKey, } from "@/types/agent"; interface AgentPageDarkProps { projectId: string; initialStage?: "preset" | "workflow" | "generate"; initialPresetId?: string | null; workflowConfig?: any; } export function AgentPageDark({ projectId, initialStage = "preset", initialPresetId = null, workflowConfig, }: AgentPageDarkProps) { const [stage, setStage] = useState<"preset" | "workflow" | "generate">(initialStage); const [selectedPresetId, setSelectedPresetId] = useState(initialPresetId); // Workflow state const [workflowInputs, setWorkflowInputs] = useState({ primarySku: "", secondarySku: "", brand: "", store: "", officialSecondCategory: "", officialThirdCategory: "", thirdCategory: "", fourthCategory: "", fifthCategory: "", priceBand: "", }); const [workflowMaterials, setWorkflowMaterials] = useState( createEmptyAgentWorkflowMaterialSelections() ); const [workflowSelections, setWorkflowSelections] = useState< Partial> >({}); // Handle preset selection const handleSelectPreset = (presetId: string | null) => { setSelectedPresetId(presetId); if (presetId) { setStage("generate"); } }; // Build workflow context const workflowContext = buildAgentWorkflowComposerContext({ config: workflowConfig, inputs: workflowInputs, materials: workflowMaterials, selections: workflowSelections, }); return (
{stage === "preset" && ( )} {stage === "workflow" && ( setStage("preset")} onSkipStep={() => setStage("preset")} /> )} {stage === "generate" && ( setStage("preset")} /> )}
); }