import { useCallback } from 'react'; import { useNavigate, useParams } from 'react-router-dom'; import { useForm } from 'react-hook-form'; import { useGQLClient } from 'context/GQLClientContext'; import { useToast } from 'components/shared/Toast'; import { Modal } from 'components/shared/Modal'; import { Button } from 'components/shared/Button'; import { Input } from 'components/shared/Input'; import { Project } from 'gql-client'; interface DeleteProjectDialogProp { open: boolean; handleOpen: () => void; project: Project; } const DeleteProjectDialog = ({ open, handleOpen, project, }: DeleteProjectDialogProp) => { const { toast, dismiss } = useToast(); const { orgSlug } = useParams(); const navigate = useNavigate(); const client = useGQLClient(); const { handleSubmit, register, formState: { isValid }, } = useForm({ defaultValues: { projectName: '', }, }); const deleteProjectHandler = useCallback(async () => { const { deleteProject } = await client.deleteProject(project.id); if (deleteProject) { navigate(`/${orgSlug}`); } else { toast({ id: 'project_not_deleted', title: 'Project not deleted', variant: 'error', onDismiss: dismiss, }); } handleOpen(); }, [client, project, handleOpen]); return ( Delete project?
value === project.name, })} helperText="Deleting your project is irreversible." />
); }; export default DeleteProjectDialog;