import React, { useState } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; import { Sparkles, Brain, Zap, Heart, Eye, TrendingUp, AlertTriangle, CheckCircle } from 'lucide-react'; interface NeuroScoreProps { analysis: { scores: { dopamine: number; serotonin: number; cognitiveEase: number; commercialFit: number; }; feedback: string[]; improvements: { dopamine: string[]; serotonin: string[]; cognitiveEase: string[]; commercialFit: string[]; }; prediction: string; } | null; loading?: boolean; onApplyImprovement?: (suggestion: string) => void; } const ScoreBar = ({ label, score, icon: Icon, color, barColor, onClick, isSelected }: { label: string; score: number; icon: any; color: string; barColor: string, onClick?: () => void, isSelected?: boolean }) => (
{label}
= 8 ? 'text-green-400' : score >= 5 ? 'text-yellow-400' : 'text-red-400'}`}> {score}/10
{isSelected && ( Viewing fixes for this metric... )}
); const NeuroScorecard: React.FC = ({ analysis, loading, onApplyImprovement }) => { const [selectedMetric, setSelectedMetric] = useState(null); // Get fixes based on selection or aggregate all const currentImprovements = React.useMemo(() => { if (!analysis?.improvements) return []; // Map UI labels to API keys const keyMap: Record = { 'Dopamine': 'dopamine', 'Serotonin': 'serotonin', 'Cognitive Ease': 'cognitiveEase', 'Commercial Fit': 'commercialFit' }; if (selectedMetric && keyMap[selectedMetric]) { return analysis.improvements[keyMap[selectedMetric]] || []; } // Return all improvements flattened if nothing selected return [ ...analysis.improvements.dopamine, ...analysis.improvements.serotonin, ...analysis.improvements.cognitiveEase, ...analysis.improvements.commercialFit ]; }, [analysis, selectedMetric]); if (loading) { return (

Analyzing Neuro-Triggers...

Connecting to Gemini Vision to evaluate Dopamine, Serotonin, and Market Fit.

{[0, 1, 2].map((i) => ( ))}
); } if (!analysis) return null; return ( {/* Header */}

Neuro-Scorecard

AI-Predicted Market Performance

{analysis.prediction}
{/* Column 1: Scores */}

Vital Signs {selectedMetric && ( )}

setSelectedMetric('Dopamine')} isSelected={selectedMetric === 'Dopamine'} /> setSelectedMetric('Serotonin')} isSelected={selectedMetric === 'Serotonin'} /> setSelectedMetric('Cognitive Ease')} isSelected={selectedMetric === 'Cognitive Ease'} /> setSelectedMetric('Commercial Fit')} isSelected={selectedMetric === 'Commercial Fit'} />
{/* Column 2: Improvements */}

{selectedMetric ? `${selectedMetric} Fixes` : 'Critical Fixes'}

    {currentImprovements.length > 0 ? ( currentImprovements.map((fix, idx) => (
    {fix} {onApplyImprovement && ( )}
    )) ) : (

    No specific fixes found for this metric.

    )}
{/* Column 3: Feedback */}

Winning Traits

    {analysis.feedback.map((point, idx) => (
    {point} ))}
); }; export default NeuroScorecard;