blessing-skin-server/resources/assets/src/views/widgets/EmailVerification.tsx
Zephyr Lykos ae71d36c7f
cleanup: wip part 2
We have a working vite config now
2024-02-23 18:24:34 +08:00

46 lines
989 B
TypeScript

import React, {useState} from 'react';
import {t} from '@/scripts/i18n';
import * as fetch from '@/scripts/net';
import {toast} from '@/scripts/notify';
function EmailVerification() {
const [isSending, setIsSending] = useState(false);
const send = async () => {
setIsSending(true);
const {code, message} = await fetch.post<fetch.ResponseBody>(
'/user/email-verification',
);
if (code === 0) {
toast.success(message);
} else {
toast.error(message);
}
setIsSending(false);
};
return (
<div className='callout callout-info'>
<h4>
<i className='fas fa-envelope'/> {t('user.verification.title')}
</h4>
<p>
{t('user.verification.message')}
{isSending ? (
<>
<i className='fas fa-spin fa-spinner mr-1'/>
{t('user.verification.sending')}
</>
) : (
<a className='link-info' href='#' onClick={send}>
{t('user.verification.resend')}
</a>
)}
</p>
</div>
);
};
export default EmailVerification;