import { Button, Center, Group, Image, Stack, Text, TextInput, Tooltip, } from "@mantine/core"; import { useForm, yupResolver } from "@mantine/form"; import { useModals } from "@mantine/modals"; import { ModalsContextProps } from "@mantine/modals/lib/context"; import { FormattedMessage } from "react-intl"; import * as yup from "yup"; import useTranslate, { translateOutsideContext, } from "../../hooks/useTranslate.hook"; import authService from "../../services/auth.service"; import toast from "../../utils/toast.util"; const showEnableTotpModal = ( modals: ModalsContextProps, refreshUser: () => {}, options: { qrCode: string; secret: string; password: string; } ) => { const t = translateOutsideContext(); return modals.openModal({ title: t("account.modal.totp.title"), children: ( ), }); }; const CreateEnableTotpModal = ({ options, refreshUser, }: { options: { qrCode: string; secret: string; password: string; }; refreshUser: () => {}; }) => { const modals = useModals(); const t = useTranslate(); const validationSchema = yup.object().shape({ code: yup .string() .min(6) .max(6) .required() .matches(/^[0-9]+$/, { message: "Code must be a number" }), }); const form = useForm({ initialValues: { code: "", }, validate: yupResolver(validationSchema), }); return (
QR Code
{" "}
{ authService .verifyTOTP(values.code, options.password) .then(() => { toast.success(t("account.notify.totp.enable")); modals.closeAll(); refreshUser(); }) .catch(toast.axiosError); })} >
); }; export default showEnableTotpModal;