import { useState, useEffect } from 'react'; import { Scenario } from "../App"; import { Reorder, AnimatePresence } from 'framer-motion'; interface ScenariosPanelProps { scenarios: Scenario[]; onAddScenario: () => void; onSelectScenario: (id: string) => void; onDeleteScenario: (id: string) => void; onUpdateScenario: (id: string, newName: string) => void; onOpenSettings: (id: string) => void; onReorderScenarios: (reorderedScenarios: Scenario[]) => void; selectedScenarioId: string | null; } function ScenariosPanel({ scenarios, onAddScenario, onSelectScenario, onDeleteScenario, onUpdateScenario, onOpenSettings, onReorderScenarios, selectedScenarioId }: ScenariosPanelProps) { const [editingScenarioId, setEditingScenarioId] = useState(null); const [editingText, setEditingText] = useState(''); useEffect(() => { const lastScenario = scenarios[scenarios.length - 1]; if (lastScenario && lastScenario.text === "New Scenario" && lastScenario.id !== editingScenarioId) { setEditingScenarioId(lastScenario.id); setEditingText(lastScenario.text); } }, [scenarios, editingScenarioId]); const handleDeleteClick = (e: React.MouseEvent, scenarioId: string) => { e.stopPropagation(); if (window.confirm('Are you sure you want to delete this scenario?')) { onDeleteScenario(scenarioId); } }; const handleSettingsClick = (e: React.MouseEvent, scenarioId: string) => { e.stopPropagation(); onOpenSettings(scenarioId); }; const handleDoubleClick = (scenario: Scenario) => { setEditingScenarioId(scenario.id); setEditingText(scenario.text); }; const handleNameBlur = (scenarioId: string) => { if (editingText.trim()) { onUpdateScenario(scenarioId, editingText.trim()); } setEditingScenarioId(null); setEditingText(''); }; return ( ); } export default ScenariosPanel;