import React from 'react'; import { Button, Center, Flex, MenuItem, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, useDisclosure, Text, useToast, } from '@chakra-ui/react'; import { useClient } from 'urql'; import { FaRegTrashAlt } from 'react-icons/fa'; import { DeleteUser } from '../graphql/mutation'; import { capitalizeFirstLetter } from '../utils'; interface userDataTypes { id: string; email: string; } const DeleteUserModal = ({ user, updateUserList, }: { user: userDataTypes; updateUserList: Function; }) => { const client = useClient(); const toast = useToast(); const { isOpen, onOpen, onClose } = useDisclosure(); const [userData, setUserData] = React.useState({ id: '', email: '', }); React.useEffect(() => { setUserData(user); }, []); const deleteHandler = async () => { const res = await client .mutation(DeleteUser, { params: { email: userData.email } }) .toPromise(); if (res.error) { toast({ title: capitalizeFirstLetter(res.error.message), isClosable: true, status: 'error', position: 'top-right', }); return; } else if (res.data?._delete_user) { toast({ title: capitalizeFirstLetter(res.data?._delete_user.message), isClosable: true, status: 'success', position: 'top-right', }); } onClose(); updateUserList(); }; return ( <> Delete User Delete User Are you sure? User {user.email} will be deleted permanently! ); }; export default DeleteUserModal;