// ChatCard.jsx import { useState, useRef, useEffect } from 'react' export default function ChatCard({ chatHistory, onSend, loading }) { const [input, setInput] = useState('') const [collapsed, setCollapsed] = useState(false) const bottomRef = useRef(null) // Auto-scroll to bottom on new message useEffect(() => { bottomRef.current?.scrollIntoView({ behavior: 'smooth' }) }, [chatHistory]) function handleSend() { const msg = input.trim() if (!msg || loading) return setInput('') onSend(msg) } function handleKeyDown(e) { if (e.key === 'Enter' && !e.shiftKey) { e.preventDefault() handleSend() } } return (
setCollapsed(c => !c)}> Chat
{collapsed ? '▶' : '▼'}
{!collapsed && ( <>
{chatHistory.length === 0 && (
Stellen Sie Fragen zum Patienten auf Basis dieses Dokuments.
)} {chatHistory.map((msg, i) => (
{msg.role === 'user' ? 'Arzt' : 'System'}
{msg.content}
))} {/* Loading bubble */} {loading && (
System
)}
Die Antworten basieren ausschließlich auf Patientendokumente und extrahierten Daten. (In dieser Version ohne Abruf medizinischer Leitlinien oder Fachliteratur)