import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from '@/components/ui/alert-dialog' import { IconButton } from '@/components/ui/button' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { useDeleteCharacter } from '@/hooks/aiUser' import { useState } from 'react' import { useAIUser } from '../context/aiUser' import { useParams, useRouter } from 'next/navigation' import { useNimChat, useNimConversation, useNimMsgContext } from '@/context/NimChat/useNimChat' const UserActionDropdown = () => { const router = useRouter() const [isDeleteCharacterDialogOpen, setIsDeleteCharacterDialogOpen] = useState(false) const { userId, isOwner } = useAIUser() const { removeConversationById } = useNimConversation() const { clearHistoryMessage } = useNimMsgContext() const { nim } = useNimChat() const { mutate: deleteCharacter, isPending: isDeleteCharacterLoading } = useDeleteCharacter({ aiId: Number(userId), }) const handleDeleteCharacter = () => { setIsDeleteCharacterDialogOpen(true) } const handleDeleteCharacterConfirm = async () => { const conversationId = await nim.V2NIMConversationIdUtil.p2pConversationId( `${userId}@r@t` as string ) await removeConversationById(conversationId) await clearHistoryMessage(conversationId) await deleteCharacter({ aiId: Number(userId) }) router.replace('/profile') } if (!isOwner) return null return ( <>