File size: 2,399 Bytes
e9a9bff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import React from 'react';

const ChatMessage = ({ type, content, products, clarification, debug }) => {
  return (
    <div className={`msg mb-4 p-3 rounded-lg shadow-sm ${type === 'user' ? 'bg-blue-50 border-l-4 border-blue-500' : 'bg-green-50 border-r-4 border-green-500'}`}>
      {type === 'user' && <div className="user font-bold text-blue-700 mb-1">👤 شما:</div>}
      {type === 'bot' && <div className="bot font-bold text-green-700 mb-1">🤖 پاسخ:</div>}
      
      {type === 'text' && <p className="text-gray-800 whitespace-pre-wrap">{content}</p>}
      
      {type === 'product_list' && (
        <div>
          <p className="font-bold text-gray-700 mb-2"><b>نتیجه:</b> {content}</p>
          <p className="text-sm text-gray-600 mb-3">تعداد: {products?.length || 0}</p>
          
          <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
            {products?.map((product, index) => (
              <div key={index} className="product bg-white border border-gray-200 p-4 rounded-md shadow-sm hover:shadow-md transition-shadow">
                <div className="font-bold text-lg text-gray-800 mb-1">{product.name}</div>
                <div className="text-sm text-gray-600 mb-2">قیمت: {product.formatted_price} تومان</div>
                <div className="text-sm text-gray-500 mb-2">وضعیت: {product.stock ? '✅ موجود' : '❌ ناموجود'}</div>
                <div className="text-sm text-gray-500">
                  برند: {product.brand || '-'} | شهر: {product.city || '-'}
                </div>
              </div>
            ))}
          </div>
        </div>
      )}
      
      {clarification && (
        <div className="clarification mt-4 p-3 bg-red-50 border border-red-200 rounded text-red-700 font-bold">
          ❗ ابهام تشخیص داده شد: {clarification}
        </div>
      )}
      
      {debug && (
        <div className="debug-box mt-6 bg-gray-900 text-green-400 p-4 rounded-lg overflow-x-auto">
          <details>
            <summary className="cursor-pointer font-bold hover:text-green-300">🧪 فیلترهای استخراج‌شده توسط LLM (JSON)</summary>
            <pre className="text-xs mt-2 whitespace-pre-wrap">{JSON.stringify(debug, null, 2)}</pre>
          </details>
        </div>
      )}
    </div>
  );
};

export default ChatMessage;