forked from abner/for-legacy-web
feat: add account deletion confirmation route
This commit is contained in:
56
src/pages/login/ConfirmDelete.tsx
Normal file
56
src/pages/login/ConfirmDelete.tsx
Normal file
@@ -0,0 +1,56 @@
|
||||
import { Check } from "@styled-icons/boxicons-regular";
|
||||
import { useParams } from "react-router-dom";
|
||||
import styled from "styled-components";
|
||||
|
||||
import { useEffect, useState } from "preact/hooks";
|
||||
|
||||
import { Modal, Preloader } from "@revoltchat/ui";
|
||||
|
||||
import { useApplicationState } from "../../mobx/State";
|
||||
|
||||
const Centre = styled.div`
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
`;
|
||||
|
||||
export default function ConfirmDelete() {
|
||||
const state = useApplicationState();
|
||||
const [deleted, setDeleted] = useState(true);
|
||||
const { token } = useParams<{ token: string }>();
|
||||
|
||||
useEffect(() => {
|
||||
state.config
|
||||
.createClient()
|
||||
.api.put("/auth/account/delete", { token })
|
||||
.then(() => setDeleted(true));
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<Modal
|
||||
title={deleted ? "Confirmed deletion." : "Please wait..."}
|
||||
description={
|
||||
deleted ? (
|
||||
<>
|
||||
Your account will be deleted in 7 days.
|
||||
<br />
|
||||
You may contact{" "}
|
||||
<a href="mailto:contact@revolt.chat">
|
||||
Revolt support
|
||||
</a>{" "}
|
||||
to cancel the request if you wish.
|
||||
</>
|
||||
) : (
|
||||
"Contacting the server."
|
||||
)
|
||||
}
|
||||
nonDismissable>
|
||||
{deleted ? (
|
||||
<Centre>
|
||||
<Check size={48} />
|
||||
</Centre>
|
||||
) : (
|
||||
<Preloader type="ring" />
|
||||
)}
|
||||
</Modal>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user