import { Trash2 } from 'lucide-react'; import { useIsConfirmDeleteModalOpen, useSetIsConfirmDeleteModalOpen, useConfirmDeleteConversationName, useConfirmDeleteConversationId } from '../../contexts/UIContext'; import { useDeleteConversation, useCurrentConversationId } from '../../contexts/ChatContext'; import { useAppRoute } from '../../hooks/useAppRoute'; import useRenderTracker from '../../hooks/useRenderTracker'; import { Button } from '../ui'; const ConfirmDeleteModal = () => { const isConfirmDeleteModalOpen = useIsConfirmDeleteModalOpen(); const setIsConfirmDeleteModalOpen = useSetIsConfirmDeleteModalOpen(); const confirmDeleteConversationName = useConfirmDeleteConversationName(); const confirmDeleteConversationId = useConfirmDeleteConversationId(); const currentConversationId = useCurrentConversationId(); const deleteConversation = useDeleteConversation(); const { openHomeRoute } = useAppRoute(); useRenderTracker('ConfirmDeleteModal', { isConfirmDeleteModalOpen, confirmDeleteConversationName, confirmDeleteConversationId, deleteConversation, setIsConfirmDeleteModalOpen, }); if (!isConfirmDeleteModalOpen) return null; const close = () => setIsConfirmDeleteModalOpen(false); const handleDelete = () => { if (confirmDeleteConversationId) { // If the conversation being deleted is the one open, return to the new-chat page. if (confirmDeleteConversationId === currentConversationId) { openHomeRoute(); } deleteConversation(confirmDeleteConversationId); setIsConfirmDeleteModalOpen(false); } }; return (
This will permanently delete{' '} “{confirmDeleteConversationName || 'New Chat'}”. This can’t be undone.