/** * Configure Knowledge Base Dialog Component * @description Dialog for managing knowledge base collections */ import { useEscapeKey, useBodyScrollLock } from '@/hooks'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogClose, } from './dialog'; /** * ConfigureKnowledgeBaseDialog component props */ interface ConfigureKnowledgeBaseDialogProps { /** Whether the dialog is open */ open: boolean; /** Callback when dialog open state changes */ onOpenChange: (open: boolean) => void; /** Callback when Add Knowledge Base button is clicked */ onAddKnowledgeBase?: () => void; } /** * ConfigureKnowledgeBaseDialog component * @description Modal dialog for managing knowledge base collections with empty state * @param props - Component props * @returns {JSX.Element} ConfigureKnowledgeBaseDialog element */ export function ConfigureKnowledgeBaseDialog({ open, onOpenChange, onAddKnowledgeBase, }: ConfigureKnowledgeBaseDialogProps): JSX.Element { useEscapeKey(() => onOpenChange(false), open); useBodyScrollLock(open); /** * Handle Add Knowledge Base button click * @description Triggers the onAddKnowledgeBase callback and closes dialog */ const handleAddKnowledgeBase = (): void => { if (onAddKnowledgeBase) { onAddKnowledgeBase(); } onOpenChange(false); }; /** * Handle keyboard events on Add Knowledge Base button * @description Handles Enter and Space key presses * @param e - Keyboard event */ const handleKeyDown = (e: React.KeyboardEvent): void => { if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); handleAddKnowledgeBase(); } }; // Icon from Figma design - database icon with exclamation const emptyStateIcon = 'https://www.figma.com/api/mcp/asset/31344752-2e10-42c5-9678-5d2cb0b3dadb'; return (
Add Knowledge Base Manage your document collections and knowledge sources
onOpenChange(false)} />
{/* Empty State Content */}
{/* Database Icon */}
Database icon
{/* Empty State Messages */}

No knowledge bases found

Get started by adding your first knowledge base

{/* Add Knowledge Base Button */}
); }