'use client'; import { useState } from 'react'; interface Citation { messageId: string; snippet: string; senderName: string; sourceGroupName: string; approvedAt: number; } interface QA { id: string; question: string; answer: string; citations: Citation[]; createdAt: string; } export function AskChat({ initialHistory }: { initialHistory: QA[] }) { const [history, setHistory] = useState(initialHistory); const [question, setQuestion] = useState(''); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const submit = async (e: React.FormEvent) => { e.preventDefault(); const q = question.trim(); if (!q || loading) return; setLoading(true); setError(null); try { const res = await fetch('/api/my/ask', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ question: q }), }); if (!res.ok) throw new Error('Could not get an answer. Try again.'); const data = (await res.json()) as QA; setHistory((h) => [data, ...h]); setQuestion(''); } catch (err) { setError(err instanceof Error ? err.message : 'Something went wrong'); } finally { setLoading(false); } }; return (