'use client'; import { type FormEvent, useState } from 'react'; import type { AnalysisRequest, AnalysisResponse } from '@ftb/shared'; import { Loader2, Send, X } from 'lucide-react'; import { requestAnalysis } from '@/lib/analysis-api'; import { AnalysisResultBlock } from './AnalysisResultBlock'; export function AnalysisContextDrawer({ open, title, context, permissions, onClose, }: { open: boolean; title: string; context: NonNullable; permissions: string[]; onClose: () => void; }) { const [question, setQuestion] = useState(''); const [response, setResponse] = useState(null); const [loading, setLoading] = useState(false); if (!open) return null; async function ask(prompt: string) { const value = prompt.trim(); if (!value || loading) return; setLoading(true); try { const result = await requestAnalysis({ question: value, context }, permissions); setResponse(result); setQuestion(''); } catch { setResponse({ ok: false, code: 'AI_UNAVAILABLE', message: '业务分析暂不可用,请稍后再试。', }); } finally { setLoading(false); } } function submit(event: FormEvent) { event.preventDefault(); void ask(question); } return (