import { Button, FormControl, FormLabel, Input, useToast, VStack, } from "@chakra-ui/react"; import React, { useEffect } from "react"; import { useMutation } from "urql"; import { AuthLayout } from "../layouts/AuthLayout"; import { AdminLogin, AdminSignup } from "../graphql/mutation"; import { useLocation, useNavigate } from "react-router-dom"; export const Auth = () => { const [loginResult, login] = useMutation(AdminLogin); const [signUpResult, signup] = useMutation(AdminSignup); const toast = useToast(); const navigate = useNavigate() const { pathname } = useLocation(); const isLogin = pathname === "/login"; const handleAdminSecret = (e: any) => { e.preventDefault(); const formValues = [...e.target.elements].reduce((agg: any, elem: any) => { if (elem.id) { return { ...agg, [elem.id]: elem.value, }; } return agg; }, {}); (isLogin ? login : signup)({ secret: formValues["admin-secret"], }).then((res) => { if (!res.error?.name) { navigate("/"); } }); }; const errors = isLogin ? loginResult.error : signUpResult.error; useEffect(() => { if (errors?.graphQLErrors) { (errors?.graphQLErrors || []).map((error: any) => { toast({ title: error.message, isClosable: true, status: "error", position:"bottom-right" }); }) } }, [errors]) return (
{isLogin ? "Enter" : "Setup"} Admin Secret
); };