mirror of
https://github.com/elyby/accounts-frontend.git
synced 2024-12-11 15:59:06 +05:30
57 lines
1.9 KiB
TypeScript
57 lines
1.9 KiB
TypeScript
import React, { ComponentType, useCallback, useState } from 'react';
|
|
import { FormattedMessage as Message } from 'react-intl';
|
|
import { Helmet } from 'react-helmet-async';
|
|
|
|
import { Button } from 'app/components/ui/form';
|
|
|
|
import styles from './accountDeleted.scss';
|
|
|
|
interface Props {
|
|
onRestore?: () => Promise<void>;
|
|
}
|
|
|
|
const AccountDeleted: ComponentType<Props> = ({ onRestore }) => {
|
|
const [isSubmitted, setIsSubmitted] = useState<boolean>(false);
|
|
const onRestoreClick = useCallback(() => {
|
|
if (!onRestore) {
|
|
return;
|
|
}
|
|
|
|
setIsSubmitted(true);
|
|
onRestore().finally(() => setIsSubmitted(false));
|
|
}, [onRestore]);
|
|
|
|
return (
|
|
<div className={styles.wrapper} data-testid="deletedAccount">
|
|
<Message key="accountDeleted" defaultMessage="Account is deleted">
|
|
{(pageTitle: string) => (
|
|
<h2 className={styles.title}>
|
|
<Helmet title={pageTitle} />
|
|
{pageTitle}
|
|
</h2>
|
|
)}
|
|
</Message>
|
|
|
|
<div className={styles.description}>
|
|
<Message
|
|
key="accountDeletedDescription"
|
|
defaultMessage="The account has been marked for deletion and will be permanently removed within a week. Until then, all account activities have been suspended."
|
|
/>
|
|
</div>
|
|
|
|
<div className={styles.description}>
|
|
<Message
|
|
key="ifYouWantToRestoreAccount"
|
|
defaultMessage="If you want to restore your account, click on the button below."
|
|
/>
|
|
</div>
|
|
|
|
<Button onClick={onRestoreClick} color="black" small loading={isSubmitted}>
|
|
<Message key="restoreAccount" defaultMessage="Restore account" />
|
|
</Button>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default AccountDeleted;
|