'use client' import { useState } from 'react' import { ChevronLeft } from 'lucide-react' import { cn } from '@/lib/utils' interface SuggestionCategory { id: string label: string icon: string questions: string[] } /** * Documentation suggestions - shown when not in a patient dossier */ const DOC_SUGGESTION_CATEGORIES: SuggestionCategory[] = [ { id: 'clienten', label: 'Cliënten & Dossiers', icon: '👤', questions: [ 'Hoe maak ik een nieuwe cliënt aan?', 'Hoe zoek ik een bestaande cliënt?', 'Hoe open ik een cliëntdossier?', ], }, { id: 'intake', label: 'Intake & Screening', icon: '📋', questions: [ 'Hoe start ik een intake?', 'Waar vind ik de screeningresultaten?', 'Hoe voeg ik notities toe aan een intake?', ], }, { id: 'spraak', label: 'Spraak & Rapportage', icon: '🎤', questions: [ 'Hoe werkt de spraakherkenning?', 'Waarom werkt mijn microfoon niet?', 'Hoe dicteer ik een rapportage?', ], }, ] /** * Client suggestions - shown when in a patient dossier */ const CLIENT_SUGGESTION_CATEGORIES: SuggestionCategory[] = [ { id: 'intake-status', label: 'Intake Status', icon: '📋', questions: [ 'Wat moet ik nog doen?', 'Is de intake compleet?', 'Welke secties zijn nog niet ingevuld?', ], }, { id: 'risico', label: 'Risicotaxatie', icon: '⚠️', questions: [ 'Wat zijn de risico\'s?', 'Toon risicotaxatie', 'Ga naar risico', ], }, { id: 'diagnose', label: 'Diagnoses', icon: '🩺', questions: [ 'Welke diagnoses?', 'Wat is de diagnose?', 'Ga naar diagnose', ], }, { id: 'rapportages', label: 'Rapportages', icon: '📝', questions: [ 'Geef een samenvatting van de rapportages', 'Wat is er de laatste tijd genoteerd?', 'Maak een notitie', ], }, { id: 'navigatie', label: 'Navigatie', icon: '🧭', questions: [ 'Ga naar anamnese', 'Ga naar kindcheck', 'Ga naar behandeladvies', ], }, ] interface ChatSuggestionsProps { onSelect: (question: string) => void disabled?: boolean mode?: 'client' | 'documentation' } /** * Two-step suggestion selector: * 1. Show categories * 2. After selecting category, show questions * * Supports two modes: * - 'documentation': Questions about how to use the EPD system * - 'client': Questions about the active patient (rapportages, intake, screening) */ export function ChatSuggestions({ onSelect, disabled = false, mode = 'documentation' }: ChatSuggestionsProps) { const [selectedCategory, setSelectedCategory] = useState(null) // Select the appropriate categories based on mode const categories = mode === 'client' ? CLIENT_SUGGESTION_CATEGORIES : DOC_SUGGESTION_CATEGORIES const handleQuestionSelect = (question: string) => { onSelect(question) setSelectedCategory(null) } // Show questions for selected category if (selectedCategory) { return (
{selectedCategory.icon} {selectedCategory.label}
{selectedCategory.questions.map((question) => ( ))}
) } // Show category selection return (

{mode === 'client' ? 'Vragen over deze cliënt:' : 'Kies een onderwerp:'}

{categories.map((category) => ( ))}
) }