import { useState } from 'react' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { useAssistant } from '@/hooks/useAssistant' import AddEditAssistant from './dialogs/AddEditAssistant' import { IconCirclePlus, IconSettings } from '@tabler/icons-react' import { useThreads } from '@/hooks/useThreads' import { AvatarEmoji } from '@/containers/AvatarEmoji' const DropdownAssistant = () => { const { assistants, currentAssistant, addAssistant, updateAssistant, setCurrentAssistant, } = useAssistant() const { updateCurrentThreadAssistant } = useThreads() const [dropdownOpen, setDropdownOpen] = useState(false) const [dialogOpen, setDialogOpen] = useState(false) const [editingAssistantId, setEditingAssistantId] = useState( null ) const selectedAssistant = assistants.find((a) => a.id === currentAssistant?.id) || assistants[0] return ( <>
{ if (selectedAssistant) { setEditingAssistantId(selectedAssistant.id) setDialogOpen(true) } }} >
{assistants.map((assistant) => (
{ setCurrentAssistant(assistant) updateCurrentThreadAssistant(assistant) }} >
{assistant?.avatar && (
)}
{assistant.name}
{ setEditingAssistantId(assistant.id) setDialogOpen(true) }} />
))} { setEditingAssistantId(null) setDialogOpen(true) }} > Create Assistant
a.id === editingAssistantId) : undefined } onSave={(assistant) => { if (editingAssistantId) { updateAssistant(assistant) } else { addAssistant(assistant) } setEditingAssistantId(null) setDialogOpen(false) }} /> ) } export default DropdownAssistant