import React from 'react'; import ResearchResults from '../ResearchResults'; import EnhancedTitleSelector from '../EnhancedTitleSelector'; import EnhancedOutlineEditor from '../EnhancedOutlineEditor'; import { BlogEditor } from '../WYSIWYG'; import OutlineCtaBanner from './OutlineCtaBanner'; interface PhaseContentProps { currentPhase: string; research: any; outline: any[]; outlineConfirmed: boolean; titleOptions: any[]; selectedTitle?: string | null; researchTitles: any[]; aiGeneratedTitles: any[]; sourceMappingStats: any; groundingInsights: any; optimizationResults: any; researchCoverage: any; setOutline: (o: any) => void; sections: Record; handleContentUpdate: any; handleContentSave: any; continuityRefresh: number | null; flowAnalysisResults: any; outlineGenRef: React.RefObject; blogWriterApi: any; contentConfirmed: boolean; seoAnalysis: any; seoMetadata: any; onTitleSelect: any; onCustomTitle: any; sectionImages?: Record; setSectionImages?: (images: Record | ((prev: Record) => Record)) => void; } export const PhaseContent: React.FC = ({ currentPhase, research, outline, outlineConfirmed, titleOptions, selectedTitle, researchTitles, aiGeneratedTitles, sourceMappingStats, groundingInsights, optimizationResults, researchCoverage, setOutline, sections, handleContentUpdate, handleContentSave, continuityRefresh, flowAnalysisResults, outlineGenRef, blogWriterApi, contentConfirmed, seoAnalysis, seoMetadata, onTitleSelect, onCustomTitle, sectionImages, setSectionImages }) => { return (
{currentPhase === 'research' && ( <> {research ? ( ) : (

Start Your Research

Use the copilot to begin researching your blog topic.

)} )} {currentPhase === 'outline' && research && ( <> {outline.length === 0 && ( outlineGenRef.current?.generateNow()} /> )} {outline.length > 0 ? ( <> blogWriterApi.refineOutline({ outline, operation: op, section_id: id, payload }).then((res: any) => setOutline(res.outline))} sectionImages={sectionImages} setSectionImages={setSectionImages} /> ) : (

Create Your Outline

Use the copilot to generate an outline based on your research.

)} )} {currentPhase === 'content' && outline.length > 0 && ( <> {outlineConfirmed ? ( ) : (

Confirm Your Outline

Review and confirm your outline before generating content.

)} )} {currentPhase === 'seo' && contentConfirmed && outline.length > 0 && outlineConfirmed && ( <> {Object.keys(sections).length > 0 && Object.values(sections).some(content => content && content.trim().length > 0) ? ( ) : (

Loading Content...

Please wait while your content is being optimized.

)} )} {/* Fallback for SEO phase if conditions not met */} {currentPhase === 'seo' && (!contentConfirmed || outline.length === 0 || !outlineConfirmed) && (

Optimize your blog for search engines.

Complete the content phase first to enable SEO optimization.

)} {currentPhase === 'publish' && seoAnalysis && seoMetadata && (

Publish Your Blog

Your blog is ready to publish!

)}
); }; export default PhaseContent;