import { Anchor, Button, Container, Paper, PasswordInput, Text, TextInput, Title, } from "@mantine/core"; import { useForm, yupResolver } from "@mantine/form"; import Link from "next/link"; import * as yup from "yup"; import useConfig from "../../hooks/config.hook"; import authService from "../../services/auth.service"; import toast from "../../utils/toast.util"; const SignUpForm = () => { const config = useConfig(); const validationSchema = yup.object().shape({ email: yup.string().email().required(), username: yup.string().min(3).required(), password: yup.string().min(8).required(), }); const form = useForm({ initialValues: { email: "", username: "", password: "", }, validate: yupResolver(validationSchema), }); const signIn = (email: string, password: string) => { authService .signIn(email, password) .then(() => window.location.replace("/")) .catch(toast.axiosError); }; const signUp = (email: string, username: string, password: string) => { authService .signUp(email, username, password) .then(() => signIn(email, password)) .catch(toast.axiosError); }; return ( ({ fontFamily: `Greycliff CF, ${theme.fontFamily}`, fontWeight: 900, })} > Sign up {config.get("ALLOW_REGISTRATION") && ( You have an account already?{" "} Sign in )}
signUp(values.email, values.username, values.password) )} >
); }; export default SignUpForm;