Can request account deletion
This commit is contained in:
@ -16,6 +16,8 @@ import { ReplacePasswordResponse, User, UserApi } from "../api/UserApi";
|
||||
import { AsyncWidget } from "../widgets/AsyncWidget";
|
||||
import { PasswordInput } from "../widgets/PasswordInput";
|
||||
import { formatDate } from "../widgets/TimeWidget";
|
||||
import { useConfirm } from "../widgets/ConfirmDialogProvider";
|
||||
import { useAlert } from "../widgets/AlertDialogProvider";
|
||||
|
||||
export function ProfileRoute(): React.ReactElement {
|
||||
const [user, setUser] = React.useState<null | User>(null);
|
||||
@ -41,6 +43,7 @@ export function ProfileRoute(): React.ReactElement {
|
||||
onUpdate={() => (counter.current += 1)}
|
||||
/>
|
||||
{user?.has_password && <ChangePasswordCard />}
|
||||
<DeleteAccountButton />
|
||||
</div>
|
||||
)}
|
||||
/>
|
||||
@ -258,3 +261,37 @@ function ChangePasswordCard(): React.ReactElement {
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
function DeleteAccountButton(): React.ReactElement {
|
||||
const alert = useAlert();
|
||||
const confirm = useConfirm();
|
||||
|
||||
const requestDelete = async () => {
|
||||
try {
|
||||
if (
|
||||
!(await confirm.confirm(
|
||||
"Voulez-vous initier la suppression de votre compte ?",
|
||||
"Suppression de compte"
|
||||
))
|
||||
)
|
||||
return;
|
||||
|
||||
await UserApi.RequestAccountDeletion();
|
||||
|
||||
await alert.alert(
|
||||
"Demande de suppression de compte enregistrée avec succès. Veuillez consulter votre boîte mail."
|
||||
);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
alert.alert("Echec de la demande de suppression de compte !");
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<div style={{ textAlign: "center" }}>
|
||||
<Button onClick={requestDelete} color="error">
|
||||
Supprimer mon compte
|
||||
</Button>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user