diff --git a/apps/rowboat/app/projects/[projectId]/workflow/workflow_editor.tsx b/apps/rowboat/app/projects/[projectId]/workflow/workflow_editor.tsx index 034ffeea..dcd4ce64 100644 --- a/apps/rowboat/app/projects/[projectId]/workflow/workflow_editor.tsx +++ b/apps/rowboat/app/projects/[projectId]/workflow/workflow_editor.tsx @@ -1004,23 +1004,27 @@ export function WorkflowEditor({ const [isEditingProjectName, setIsEditingProjectName] = useState(false); const [pendingProjectName, setPendingProjectName] = useState(null); - // Build progress tracking - persists once set to true + // Build progress tracking - persists once set to true (guard SSR) const [hasAgentInstructionChanges, setHasAgentInstructionChanges] = useState(() => { + if (typeof window === 'undefined') return false; return localStorage.getItem(`agent_instructions_changed_${projectId}`) === 'true'; }); - // Test progress tracking - persists once set to true + // Test progress tracking - persists once set to true (guard SSR) const [hasPlaygroundTested, setHasPlaygroundTested] = useState(() => { + if (typeof window === 'undefined') return false; return localStorage.getItem(`playground_tested_${projectId}`) === 'true'; }); - // Publish progress tracking - persists once set to true + // Publish progress tracking - persists once set to true (guard SSR) const [hasPublished, setHasPublished] = useState(() => { + if (typeof window === 'undefined') return false; return localStorage.getItem(`has_published_${projectId}`) === 'true'; }); - // Use progress tracking - persists once set to true + // Use progress tracking - persists once set to true (guard SSR) const [hasClickedUse, setHasClickedUse] = useState(() => { + if (typeof window === 'undefined') return false; return localStorage.getItem(`has_clicked_use_${projectId}`) === 'true'; }); diff --git a/apps/rowboat/components/common/product-tour.tsx b/apps/rowboat/components/common/product-tour.tsx index 4a6cb1db..47edab38 100644 --- a/apps/rowboat/components/common/product-tour.tsx +++ b/apps/rowboat/components/common/product-tour.tsx @@ -1,3 +1,4 @@ +"use client"; import { useFloating, offset, flip, shift, arrow, FloatingArrow, FloatingPortal, autoUpdate } from '@floating-ui/react'; import { useCallback, useEffect, useRef, useState } from 'react'; import { XIcon } from 'lucide-react';