import { Anchor, Button, Container, Paper, PasswordInput, Text, TextInput, Title, } from "@mantine/core"; import { useForm, yupResolver } from "@mantine/form"; import * as yup from "yup"; import aw from "../../utils/appwrite.util"; import { useConfig } from "../../utils/config.util"; import toast from "../../utils/toast.util"; const AuthForm = ({ mode }: { mode: "signUp" | "signIn" }) => { const config = useConfig(); 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) => { aw.account .createSession(email, password) .then(() => window.location.replace("/upload")) .catch((e) => toast.error(e.message)); }; const signUp = (email: string, password: string) => { aw.account .create("unique()", email, password) .then(() => signIn(email, password)) .catch((e) => toast.error(e.message)); }; return ( ({ fontFamily: `Greycliff CF, ${theme.fontFamily}`, fontWeight: 900, })} > {mode == "signUp" ? "Sign up" : "Welcome back"} {!config.DISABLE_REGISTRATION && ( {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;