import {ReactElement} from "react" import {AxiosError} from "axios" import {useMount} from "react-use" import {useTranslation} from "react-i18next" import {useMutation} from "@tanstack/react-query" import {Box, Grid, Paper, Typography} from "@mui/material" import {ServerUser} from "~/server-types" import {verifyLoginWithEmail} from "~/apis" import {LoadingData} from "~/components" export interface ConfirmFromDifferentDeviceProps { email: string token: string onConfirm: (user: ServerUser) => void } export default function ConfirmFromDifferentDevice({ email, token, onConfirm, }: ConfirmFromDifferentDeviceProps): ReactElement { const {t} = useTranslation(["login"]) const {mutate, isLoading, isError} = useMutation( () => verifyLoginWithEmail({ email, token, }), { onSuccess: onConfirm, }, ) useMount(mutate) if (isLoading) { return ( ) } if (isError) { return ( {t("forms.confirmFromDifferentDevice.title")} {t("forms.confirmFromDifferentDevice.description")} ) } return <> }