import { useState } from 'react'; import { cn } from '../../../lib/utils'; import { ensurePrdExtension } from '../utils/fileName'; import GenerateTasksModal from './GenerateTasksModal'; import PrdEditorBody from './PrdEditorBody'; import PrdEditorFooter from './PrdEditorFooter'; import PrdEditorHeader from './PrdEditorHeader'; type PrdEditorWorkspaceProps = { content: string; onContentChange: (nextContent: string) => void; fileName: string; onFileNameChange: (nextFileName: string) => void; isNewFile: boolean; saving: boolean; saveSuccess: boolean; onSave: () => void; onDownload: () => void; onClose: () => void; loadError: string | null; }; export default function PrdEditorWorkspace({ content, onContentChange, fileName, onFileNameChange, isNewFile, saving, saveSuccess, onSave, onDownload, onClose, loadError, }: PrdEditorWorkspaceProps) { const [isFullscreen, setIsFullscreen] = useState(false); const [isDarkMode, setIsDarkMode] = useState(true); const [previewMode, setPreviewMode] = useState(false); const [wordWrap, setWordWrap] = useState(true); const [showGenerateModal, setShowGenerateModal] = useState(false); const handleOpenGenerateTasks = () => { if (!content.trim()) { alert('Please add content to the PRD before generating tasks.'); return; } setShowGenerateModal(true); }; return (
{loadError && (
{loadError}
)} setPreviewMode((current) => !current)} wordWrap={wordWrap} onToggleWordWrap={() => setWordWrap((current) => !current)} isDarkMode={isDarkMode} onToggleTheme={() => setIsDarkMode((current) => !current)} onDownload={onDownload} onOpenGenerateTasks={handleOpenGenerateTasks} canGenerateTasks={Boolean(content.trim())} onSave={onSave} saving={saving} saveSuccess={saveSuccess} isFullscreen={isFullscreen} onToggleFullscreen={() => setIsFullscreen((current) => !current)} onClose={onClose} />
setShowGenerateModal(false)} />
); }