File size: 2,522 Bytes
6a059d3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import React, { useState } from 'react';
import { AlertTriangle, ChevronDown, ChevronRight, CheckCircle } from 'lucide-react';
import { cn } from "@/lib/utils";

interface FactCheckAlertProps {
  issues: string[];
}

export const FactCheckAlert: React.FC<FactCheckAlertProps> = ({ issues }) => {
  const [isExpanded, setIsExpanded] = useState(false);

  if (!issues || issues.length === 0) return null;

  return (
    <div className="mb-6 rounded-xl border border-amber-200 bg-amber-50 dark:bg-amber-950/30 dark:border-amber-900/50 overflow-hidden">

      <div 

        className="p-4 flex items-start gap-3 cursor-pointer hover:bg-amber-100/50 dark:hover:bg-amber-900/20 transition-colors"

        onClick={() => setIsExpanded(!isExpanded)}

      >

        <AlertTriangle className="h-5 w-5 text-amber-600 dark:text-amber-500 flex-shrink-0 mt-0.5" />

        <div className="flex-1">

          <div className="flex items-center justify-between">

            <h3 className="text-sm font-semibold text-amber-900 dark:text-amber-100">

              Potential Inaccuracies Detected

            </h3>

            {isExpanded ? (

              <ChevronDown className="h-4 w-4 text-amber-700 dark:text-amber-400" />

            ) : (

              <ChevronRight className="h-4 w-4 text-amber-700 dark:text-amber-400" />

            )}

          </div>

          <p className="text-sm text-amber-800 dark:text-amber-200 mt-1">

            Our fact-checking system flagged {issues.length} potential issue{issues.length > 1 ? 's' : ''} in this response.

          </p>

        </div>

      </div>



      {isExpanded && (

        <div className="px-4 pb-4 pt-0 border-t border-amber-200/50 dark:border-amber-900/30">

          <div className="mt-3 space-y-2">

            {issues.map((issue, idx) => (

              <div key={idx} className="flex items-start gap-2 text-sm text-amber-900 dark:text-amber-100 bg-white/50 dark:bg-black/20 p-2 rounded-md">

                <span className="font-mono text-xs font-bold text-amber-600 dark:text-amber-500 mt-0.5">

                  {idx + 1}.

                </span>

                <span>{issue}</span>

              </div>

            ))}

          </div>

          <div className="mt-3 text-xs text-amber-700 dark:text-amber-400 flex items-center gap-1">

            <CheckCircle className="h-3 w-3" />

            <span>Please verify with official sources.</span>

          </div>

        </div>

      )}

    </div>
  );
};