import { useState } from "react"; import { ModelSelector } from "../ModelSelector"; import { DataPreviewModal } from "./DataPreviewModal"; import { AnswerGridEditor, type AnswerGrid } from "./AnswerGridEditor"; interface PromptEditorProps { sessionId: number; onGenerate: (model: string) => void; isGenerating: boolean; selectedCount: number; selectedIndices: number[]; } export function PromptEditor({ sessionId, onGenerate, isGenerating, selectedCount, selectedIndices, }: PromptEditorProps) { const [model, setModel] = useState("gpt-5.4"); const [showPreview, setShowPreview] = useState(false); const [confirmedGrid, setConfirmedGrid] = useState(null); const canGenerate = !isGenerating && selectedCount > 0 && confirmedGrid !== null; const buttonLabel = (() => { if (selectedCount === 0) return "請先選擇學生"; if (!confirmedGrid) return "請先確認答案表"; return `預覽並生成報告(${selectedCount} 位學生)→`; })(); return (
{showPreview && ( { setShowPreview(false); onGenerate(model); }} onClose={() => setShowPreview(false)} isGenerating={isGenerating} sessionId={sessionId} selectedIndices={selectedIndices} /> )}
); }