import { yupResolver } from "@hookform/resolvers/yup"; import { LoadingButton } from "@mui/lab"; import { AppBar, Box, Grid, Stack, Typography } from "@mui/material"; import { PageID } from "codes/page"; import InputAlert from "components/form/InputAlert"; import { FormProvider, RHFTextField } from "components/hook-form"; import useAuth from "hooks/useAuth"; import useNavigateCustom from "hooks/useNavigateCustom"; import useSnackbarCustom from "hooks/useSnackbarCustom"; import { useState } from "react"; import { useForm } from "react-hook-form"; import { getPath } from "routes/path"; import * as Yup from "yup"; type FormProps = { email: string; password: string; }; const LoginSchema = Yup.object().shape({ email: Yup.string().required("必須項目です"), password: Yup.string().required("必須項目です"), }); export default function Login() { const { success, error } = useSnackbarCustom(); const [message, setMessage] = useState(""); const [sending, setSending] = useState(false); const { login } = useAuth(); const { navigateWhenChanged } = useNavigateCustom(); const form = useForm({ defaultValues: { email: "", password: "", }, resolver: yupResolver(LoginSchema), }); const handleSubmit = async (data: FormProps) => { setMessage(""); setSending(true); const ret = await login(data.email, data.password); setSending(false); if (ret) { success("ログイン成功"); navigateWhenChanged(getPath(PageID.DASHBOARD_CONTRACT_LIST)); } else { error("ログイン失敗"); setMessage("入力情報を確認してください"); } }; return ( ログイン ログイン ); }