Échelles & Questionnaires

Article n°1
import { Button } from "@/components/ui/button"; import { Card } from "@/components/ui/card"; import { BAIResult } from "@/hooks/useBAIQuestionnaire"; import { AlertCircle, CheckCircle, AlertTriangle, Info, Download } from "lucide-react"; import { generateResultsPDF } from "@/lib/pdfGenerator"; import { useState } from "react"; interface ResultsCardProps { result: BAIResult; onRestart: () => void; } export default function ResultsCard({ result, onRestart }: ResultsCardProps) { const { totalScore, interpretation } = result; const [isGeneratingPDF, setIsGeneratingPDF] = useState(false); const handleDownloadPDF = async () => { setIsGeneratingPDF(true); try { await generateResultsPDF(result); } catch (error) { console.error("Erreur lors de la génération du PDF:", error); } finally { setIsGeneratingPDF(false); } }; const getIcon = () => { if (totalScore <= 7) { return ; } else if (totalScore <= 15) { return ; } else if (totalScore <= 25) { return ; } else { return ; } }; const getScoreColor = () => { if (totalScore <= 7) return "text-green-600"; if (totalScore <= 15) return "text-blue-600"; if (totalScore <= 25) return "text-yellow-600"; return "text-red-600"; }; const getBackgroundColor = () => { if (totalScore <= 7) return "bg-green-50"; if (totalScore <= 15) return "bg-blue-50"; if (totalScore <= 25) return "bg-yellow-50"; return "bg-red-50"; }; return (
{/* Header */}

Résultats de votre évaluation

Inventaire d'Anxiété de Beck (BAI)

{/* Score card */}
{getIcon()}

Score total

{totalScore}

sur 63 points

{interpretation.level}

{interpretation.description}

{/* Breakdown by category */}

Détail par catégorie

Symptômes physiques
[1, 2, 3, 6, 7, 8, 11, 12, 13, 15, 18, 19, 20, 21].includes( r.questionId ) ) .reduce((sum, r) => sum + r.score, 0) / (14 * 3)) * 100 }%` }} />
{result.responses .filter( (r) => [1, 2, 3, 6, 7, 8, 11, 12, 13, 15, 18, 19, 20, 21].includes( r.questionId ) ) .reduce((sum, r) => sum + r.score, 0)}
Symptômes cognitifs
[4, 5, 9, 10, 14, 16, 17].includes(r.questionId) ) .reduce((sum, r) => sum + r.score, 0) / (7 * 3)) * 100 }%` }} />
{result.responses .filter( (r) => [4, 5, 9, 10, 14, 16, 17].includes(r.questionId) ) .reduce((sum, r) => sum + r.score, 0)}
{/* Recommendations */}

Recommandations

  • Consultez un professionnel de la santé mentale pour une évaluation complète
  • Pratiquez des techniques de relaxation comme la respiration profonde ou la méditation
  • Maintenez une routine régulière d'exercice physique et de sommeil
  • Limitez la consommation de caféine et d'alcool
{/* Footer note */}

Important : Cet inventaire est un outil de dépistage et ne remplace pas une consultation professionnelle. Les résultats doivent être interprétés par un professionnel de la santé mentale qualifié.

Évaluation complétée le{" "} {result.timestamp.toLocaleDateString("fr-FR", { year: "numeric", month: "long", day: "numeric", hour: "2-digit", minute: "2-digit", })}

{/* Action buttons */}
); }