import React, { useEffect, useState } from "react"; import PropTypes from "prop-types"; import * as util from "../../util"; // Styles import "./DeleteAccount.css"; const DeleteAccount = (props) => { useEffect(() => { document.addEventListener("keydown", handleKeyDown); return () => { document.removeEventListener("keydown", handleKeyDown); }; }, []); const handleKeyDown = (e) => { if (e.keyCode === 27) { // keyCode 27 is Escape key props.closeDelete(); } }; const handleDeleteAccount = (e) => { e.preventDefault(); e.stopPropagation(); deleteAccount(props.auth); }; const deleteAccount = async (auth) => { try { const baseUrl = util.getApiUrlBase(); const url = `${baseUrl}user/delete?access_token=${encodeURIComponent( auth.AccessToken )}`; const options = { method: "DELETE", }; const response = await fetch(url, options); if (response.status === 200) { props.onSuccess("User account deleted"); props.closeDelete(); props.closeSettings(true); } else { const message = await response.text(); if (message.includes("UserNotFoundException")) { props.closeDelete(); props.closeSettings(true); props.onFailure("User account already deleted"); } else { throw new Error("Unable to delete user."); } } } catch (error) { console.log(error.message); props.onFailure("Failed to delete account"); } }; return (