import * as React from 'react'; import { PageSettings, AIGCVideo, AIGCArticle, FormSubmission } from '../types'; import LinkEditor from './LinkEditor'; import DesignEditor from './DesignEditor'; import { Preview } from './Preview'; import { Icon } from './ui/Icon'; import { useTranslation } from '../hooks/useI18n'; interface PageBuilderProps { initialTab: 'link' | 'media' | 'design'; pageSettings: PageSettings; onUpdate: (newSettings: PageSettings) => void; aigcVideos: AIGCVideo[]; aigcArticles: AIGCArticle[]; onOpenShareModal: () => void; onFormSubmit: (submission: FormSubmission) => void; } export const PageBuilder: React.FC = ({ initialTab, pageSettings, onUpdate, aigcVideos, aigcArticles, onOpenShareModal, onFormSubmit }) => { const { t } = useTranslation(); const [previewMode, setPreviewMode] = React.useState<'personal' | 'enterprise'>('personal'); const [deviceView, setDeviceView] = React.useState<'pc' | 'mobile'>('pc'); const [isPreviewFullScreen, setIsPreviewFullScreen] = React.useState(false); const handleBlocksUpdate = (newBlocks: any) => { onUpdate({ ...pageSettings, blocks: newBlocks }); }; const handleDesignUpdate = (newDesign: any) => { onUpdate({ ...pageSettings, design: newDesign }); }; const renderEditor = () => { switch (initialTab) { case 'link': return case 'media': return
Media content editor will be here.
case 'design': return default: return null } }; if (isPreviewFullScreen) { return (
{/* FIX: Pass onFormSubmit prop to Preview component to handle form submissions. */}
); } return (

{t('page_builder.title')}

{t('page_builder.url_prompt')} greenpage.ai/johndoe

{renderEditor()}
{/* FIX: Pass onFormSubmit prop to Preview component to handle form submissions. */}
); };