diff --git a/components/AIAssist.tsx b/components/AIAssist.tsx index f1f9d02..650ffc2 100644 --- a/components/AIAssist.tsx +++ b/components/AIAssist.tsx @@ -431,16 +431,8 @@ export default function AIAssist() { const [isProcessing, setIsProcessing] = useState(false); const [currentAgent, setCurrentAgent] = useState(activeTab?.currentAgent || "general"); const [previewData, setPreviewData] = useState(activeTab?.previewData || null); - - // Sync local state when tab changes - useEffect(() => { - if (activeTab) { - setCurrentAgent(activeTab.currentAgent || "general"); - setPreviewData(activeTab.previewData || null); - } - }, [activeTabId, activeTab]); const [availableModels, setAvailableModels] = useState([]); - const [showCanvas, setShowCanvas] = useState(false); + const [showCanvas, setShowCanvas] = useState(!!activeTab?.previewData); const [viewMode, setViewMode] = useState<"preview" | "code">("preview"); const [abortController, setAbortController] = useState(null); @@ -448,6 +440,20 @@ export default function AIAssist() { const [assistStep, setAssistStep] = useState<"idle" | "plan" | "generating" | "preview">("idle"); const [aiPlan, setAiPlan] = useState(null); + // Sync local state when tab changes - FULL ISOLATION + useEffect(() => { + if (activeTab) { + setCurrentAgent(activeTab.currentAgent || "general"); + setPreviewData(activeTab.previewData || null); + setShowCanvas(!!activeTab.previewData); + setViewMode("preview"); + setAssistStep("idle"); + setAiPlan(null); + setInput(""); + setIsProcessing(false); + } + }, [activeTabId]); + const [status, setStatus] = useState(null); const scrollRef = useRef(null);