import React, { useState } from 'react' function CritiqueSection({ critique }) { const [expandedSections, setExpandedSections] = useState({}) if (!critique) { return (

UX critique data not available

) } const toggleSection = (sectionKey) => { setExpandedSections(prev => ({ ...prev, [sectionKey]: !prev[sectionKey] })) } const getScoreColor = (score) => { if (score >= 90) return 'text-success-600' if (score >= 75) return 'text-primary-600' if (score >= 60) return 'text-warning-600' return 'text-error-600' } const getSeverityColor = (severity) => { if (severity === 'High') return 'badge-error' if (severity === 'Medium') return 'badge-warning' return 'badge-success' } // Handle both structured and quick critique formats if (critique.quick_critique) { return (

Quick UX Assessment

{critique.quick_critique}
) } const structuredCritique = critique.structured_critique if (!structuredCritique) { return (

UX Analysis

The AI critique is available but couldn't be parsed into structured format.

{critique.raw_response && (
View Raw Response
{critique.raw_response}
)}
) } const sections = [ { key: 'visual_design', title: '🎨 Visual Design', data: structuredCritique.visual_design }, { key: 'usability', title: '🖱️ Usability', data: structuredCritique.usability }, { key: 'accessibility', title: '♿ Accessibility', data: structuredCritique.accessibility }, { key: 'mobile_responsiveness', title: '📱 Mobile Responsiveness', data: structuredCritique.mobile_responsiveness }, { key: 'performance', title: '⚡ Performance', data: structuredCritique.performance } ] return (
{/* Overall Assessment */} {structuredCritique.overall_assessment && (

Overall Assessment

{structuredCritique.overall_assessment.score} /100

Overall UX Score

{structuredCritique.overall_assessment.summary}

✅ Strengths

    {structuredCritique.overall_assessment.strengths?.map((strength, index) => (
  • {strength}
  • ))}

⚠️ Areas for Improvement

    {structuredCritique.overall_assessment.weaknesses?.map((weakness, index) => (
  • {weakness}
  • ))}
)} {/* Detailed Sections */} {sections.map(section => { if (!section.data) return null const isExpanded = expandedSections[section.key] return (
{isExpanded && (
{/* Feedback */}

Feedback

{section.data.feedback}

{/* Issues */} {section.data.issues && section.data.issues.length > 0 && (

Issues Found

{section.data.issues.map((issue, index) => (
{issue.category}
{issue.severity}

{issue.description}

💡 Recommendation

{issue.recommendation}

))}
)}
)}
) })} {/* Generated Info */}

Analysis generated by {critique.model_used} at{' '} {new Date(critique.generated_at).toLocaleString()}

) } export default CritiqueSection