forked from abner/for-legacy-web
57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
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>
|
|
);
|
|
}
|