import { useRef, useState } from 'react' import { AlertDialog, AlertDialogBody, AlertDialogContent, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, Button, } from '@chakra-ui/react' type ConfirmDeleteModalProps = { isOpen: boolean onConfirm: () => Promise onClose: () => void message: JSX.Element title?: string confirmButtonLabel: string confirmButtonColor?: 'blue' | 'red' } export const ConfirmModal = ({ title, message, isOpen, onClose, confirmButtonLabel, onConfirm, confirmButtonColor = 'red', }: ConfirmDeleteModalProps) => { const [confirmLoading, setConfirmLoading] = useState(false) const cancelRef = useRef(null) const onConfirmClick = async () => { setConfirmLoading(true) try { await onConfirm() } catch (e) { setConfirmLoading(false) return setConfirmLoading(false) } setConfirmLoading(false) onClose() } return ( {title ?? 'Are you sure?'} {message} ) }