import { Anchor, Button, Container, Paper, PasswordInput, Text, TextInput, Title, } from "@mantine/core"; import { useForm, yupResolver } from "@mantine/form"; import getConfig from "next/config"; import * as yup from "yup"; import authService from "../../services/auth.service"; import toast from "../../utils/toast.util"; const { publicRuntimeConfig } = getConfig(); const AuthForm = ({ mode }: { mode: "signUp" | "signIn" }) => { const validationSchema = yup.object().shape({ email: yup.string().email().required(), password: yup.string().min(8).required(), }); const form = useForm({ initialValues: { email: "", password: "", }, schema: yupResolver(validationSchema), }); const signIn = (email: string, password: string) => { authService .signIn(email, password) .then(() => window.location.replace("/upload")) .catch((e) => toast.error(e.response.data.message)); }; const signUp = (email: string, password: string) => { authService .signUp(email, password) .then(() => signIn(email, password)) .catch((e) => toast.error(e.response.data.message)); }; return ( ({ fontFamily: `Greycliff CF, ${theme.fontFamily}`, fontWeight: 900, })} > {mode == "signUp" ? "Sign up" : "Welcome back"} {publicRuntimeConfig.ALLOW_REGISTRATION == "true" && ( {mode == "signUp" ? "You have an account already?" : "You don't have an account yet?"}{" "} {mode == "signUp" ? "Sign in" : "Sign up"} )}
mode == "signIn" ? signIn(values.email, values.password) : signUp(values.email, values.password) )} >
); }; export default AuthForm;