import { ConfirmDeleteDialog } from '@/components/confirm-delete-dialog'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu'; import { useGetChatSearchParams, useRemoveConversation, } from '@/hooks/use-chat-request'; import { IConversation } from '@/interfaces/database/chat'; import { Trash2 } from 'lucide-react'; import { MouseEventHandler, PropsWithChildren, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import { useChatUrlParams } from '../hooks/use-chat-url'; export function ConversationDropdown({ children, conversation, removeTemporaryConversation, }: PropsWithChildren & { conversation: IConversation; removeTemporaryConversation?: (conversationId: string) => void; }) { const { t } = useTranslation(); const { setConversationBoth } = useChatUrlParams(); const { removeConversation } = useRemoveConversation(); const { isNew } = useGetChatSearchParams(); const handleDelete: MouseEventHandler = useCallback(async () => { if (isNew === 'true' && removeTemporaryConversation) { removeTemporaryConversation(conversation.id); } else { const code = await removeConversation([conversation.id]); if (code === 0) { setConversationBoth('', ''); } } }, [ conversation.id, isNew, removeConversation, removeTemporaryConversation, setConversationBoth, ]); return ( {children} { e.preventDefault(); }} onClick={(e) => { e.stopPropagation(); }} > {t('common.delete')} ); }