import { Clipboard, Ellipsis, Plus, Settings, X } from 'lucide-react' import { useState } from 'react' import { AiIconAnimation, Button, copyToClipboard, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from 'ui' import { Admonition } from 'ui-patterns' import { ButtonTooltip } from '../ButtonTooltip' import { AIAssistantChatSelector } from './AIAssistantChatSelector' import { AIOptInModal } from './AIOptInModal' import { useAiAssistantStateSnapshot } from '@/state/ai-assistant-state' interface AIAssistantHeaderProps { isChatLoading: boolean onNewChat: () => void onCloseAssistant: () => void showMetadataWarning: boolean updatedOptInSinceMCP: boolean isHipaaProjectDisallowed: boolean aiOptInLevel: 'disabled' | 'schema' | 'full' | string | undefined } export const AIAssistantHeader = ({ isChatLoading, onNewChat, onCloseAssistant, showMetadataWarning, updatedOptInSinceMCP, isHipaaProjectDisallowed, aiOptInLevel, }: AIAssistantHeaderProps) => { const snap = useAiAssistantStateSnapshot() const [isOptInModalOpen, setIsOptInModalOpen] = useState(false) return (
} onClick={onNewChat} className="h-7 w-7 p-0" tooltip={{ content: { side: 'bottom', text: 'New chat' } }} /> } onClick={() => setIsOptInModalOpen(true)} className="h-7 w-7 p-0" disabled={isChatLoading} tooltip={{ content: { side: 'bottom', text: 'Permission settings' }, }} /> } className="h-7 w-7 p-0" tooltip={{ content: { side: 'bottom', text: 'More options' } }} /> copyToClipboard(snap.activeChatId ?? '')} > Copy chat ID } tooltip={{ content: { side: 'bottom', text: 'Close assistant' } }} />
{showMetadataWarning && ( {!isHipaaProjectDisallowed && ( )} )} setIsOptInModalOpen(false)} />
) }