import React, { useState, useEffect } from 'react'; import { PROMPT_TEMPLATES } from '../constants'; import { UploadedImage } from '../types'; import { MagicIcon } from './icons/MagicIcon'; import { ArrowLeftIcon } from './icons/ArrowLeftIcon'; interface PromptCustomizerProps { onPromptExpanded: (scenario: string, userInstruction: string) => void; onFinalSubmit: (masterPrompt: string) => void; isLoading: boolean; loadingMessage: string; uploadedImages: UploadedImage[]; onBack: () => void; masterPrompt: string; setMasterPrompt: (prompt: string) => void; } const PromptCustomizer: React.FC = ({ onPromptExpanded, onFinalSubmit, isLoading, loadingMessage, uploadedImages, onBack, masterPrompt, setMasterPrompt }) => { const [selectedScenario, setSelectedScenario] = useState(PROMPT_TEMPLATES[0].title); const [userInstruction, setUserInstruction] = useState(''); const [isPromptExpanded, setIsPromptExpanded] = useState(false); useEffect(() => { if (masterPrompt) { setIsPromptExpanded(true); } }, [masterPrompt]); const handleExpandPrompt = (e: React.FormEvent) => { e.preventDefault(); if (selectedScenario && userInstruction) { onPromptExpanded(selectedScenario, userInstruction); } }; const handleFinalSubmit = (e: React.FormEvent) => { e.preventDefault(); if (masterPrompt) { onFinalSubmit(masterPrompt); } }; if (isLoading && !isPromptExpanded) { return (

{loadingMessage}

); } return (

{isPromptExpanded ? 'Review Your Master Prompt' : 'Describe Your Scene'}

{isPromptExpanded ? 'Edit the AI-generated prompt below, then generate your image.' : 'Choose a starting scenario and describe your vision.'}

Your Subjects

{uploadedImages.map((image, index) => (
{`subject

{image.subjectDescription}

))}
{!isPromptExpanded ? (
{PROMPT_TEMPLATES.map(template => ( ))}