import { useCallback, useRef } from 'react'; import { AlertDialog, AlertDialogBody, AlertDialogFooter, AlertDialogHeader, AlertDialogContent, AlertDialogOverlay, useDisclosure, Button } from '@chakra-ui/react'; import { useTranslation } from 'next-i18next'; export const useConfirm = (props: { title?: string; content: string }) => { const { t } = useTranslation(); const { title = t('Warning'), content } = props; const { isOpen, onOpen, onClose } = useDisclosure(); const cancelRef = useRef(null); const confirmCb = useRef(); const cancelCb = useRef(); return { openConfirm: useCallback( (confirm?: any, cancel?: any) => { confirmCb.current = confirm; cancelCb.current = cancel; return onOpen; }, [onOpen] ), ConfirmModal: useCallback( () => ( {title} {content} ), [content, isOpen, onClose, title] ) }; };