import React, { useState, useEffect } from 'react'; import { SCENARIOS } from './constants'; import { Scenario, SessionMode } from './types'; import ScenarioCard from './components/ScenarioCard'; import ChatSession from './components/ChatSession'; import VoiceSession from './components/VoiceSession'; import ScenarioGenerator from './components/ScenarioGenerator'; import CBTReference from './components/CBTReference'; import { Brain, Info, ShieldCheck, Filter, Plus, Sparkles, BookOpen, Loader2, Activity, Zap } from 'lucide-react'; const App: React.FC = () => { const [activeScenario, setActiveScenario] = useState(null); const [sessionMode, setSessionMode] = useState('text'); const [selectedDifficulty, setSelectedDifficulty] = useState('All'); const [isPreparing, setIsPreparing] = useState(false); // Custom Scenarios State const [customScenarios, setCustomScenarios] = useState([]); const [showGenerator, setShowGenerator] = useState(false); const [showReference, setShowReference] = useState(false); const handleSelectScenario = (scenario: Scenario, mode: SessionMode) => { setIsPreparing(true); // Simulate "Clinical Environment Calibration" // This provides a clearer boundary between dashboard and the specialized session environment setTimeout(() => { setActiveScenario(scenario); setSessionMode(mode); setIsPreparing(false); }, 1400); }; const handleExitSession = () => { setActiveScenario(null); }; const handleScenarioGenerated = (newScenario: Scenario) => { setCustomScenarios(prev => [newScenario, ...prev]); setShowGenerator(false); }; const allScenarios = [...customScenarios, ...SCENARIOS]; const filteredScenarios = allScenarios.filter(scenario => selectedDifficulty === 'All' || scenario.difficulty === selectedDifficulty ); const difficulties = ['All', 'Beginner', 'Intermediate', 'Advanced']; // Robust Session Preparation UI if (isPreparing) { return (

Initializing Session

Calibrating AI Parameters

Configuring {sessionMode === 'voice' ? 'Voice Link' : 'Neural Chat Bridge'}

Injecting {activeScenario?.cbtFocus[0] || 'Clinical'} Logic

); } if (activeScenario) { return (
{sessionMode === 'text' ? ( ) : (
)}
); } return (
{/* Generator Modal */} {showGenerator && ( setShowGenerator(false)} /> )} {/* Reference Modal */} {showReference && ( setShowReference(false)} /> )} {/* Hero Section */}

Cognitive Clarity

A clinical roleplaying platform utilizing CBT principles and AI to help you navigate social complexities and restructure internal dialogues.

Evidence-Based Framework
Personalized Adaptive Logic
{/* Main Content */}

Training Scenarios

{/* Filter Controls */}
Difficulty
{difficulties.map((diff) => ( ))}
{filteredScenarios.map(scenario => ( ))}
); }; export default App;