import { Done, Error } from '@mui/icons-material';
import { CircularProgress, Grid, Link as MUILink, Typography } from '@mui/material';
import { useMutation } from '@tanstack/react-query';
import { createFileRoute, Link, useNavigate } from '@tanstack/react-router';
import { useEffect } from 'react';
import { useTranslation } from 'react-i18next';
import { useApi } from '../../api/Api';
import HeaderlessLayout from '../../components/Layouts/HeaderlessLayout';
import { ROUTES } from '../../types/Routes';
const Home = () => {
const Api = useApi();
const { code } = Route.useSearch();
const { t } = useTranslation();
const navigate = useNavigate();
const confirmMutation = useMutation({
mutationFn: ({ code: _code }: { code: string }) => Api.confirmUser(_code),
});
useEffect(() => {
if (code) setTimeout(() => confirmMutation.mutate({ code }), 1000);
}, []); //eslint-disable-line react-hooks/exhaustive-deps
useEffect(() => {
if (!code) {
navigate({ to: '/' });
}
}, [code]); //eslint-disable-line react-hooks/exhaustive-deps
return (
{confirmMutation.isSuccess && }
{confirmMutation.isError && }
{(confirmMutation.isPending || confirmMutation.isIdle) && }
{confirmMutation.isSuccess && {t('Confirm success header')}}
{confirmMutation.isError && (
{t('Confirm error header')}
)}
{(confirmMutation.isPending || confirmMutation.isIdle) && (
{t('Confirm pending header')}
)}
{!confirmMutation.isPending && !confirmMutation.isIdle && (
{t('Back to main')}
)}
);
};
export const Route = createFileRoute(`${ROUTES.CONFIRM}/`)({
validateSearch: (search: Record): { code?: string } => {
return {
code: search?.code !== undefined ? (search?.code as string) : undefined,
};
},
component: Home,
});