'use client';
import * as Yup from 'yup';
import { useForm } from 'react-hook-form';
import { useState } from 'react';
import { yupResolver } from '@hookform/resolvers/yup';
// @mui
import LoadingButton from '@mui/lab/LoadingButton';
import Alert from '@mui/material/Alert';
import Stack from '@mui/material/Stack';
import IconButton from '@mui/material/IconButton';
import Typography from '@mui/material/Typography';
import InputAdornment from '@mui/material/InputAdornment';
// routes
import { useSearchParams, useRouter } from 'src/routes/hooks';
// config
import { PATH_AFTER_LOGIN } from 'src/config-global';
// hooks
import { useBoolean } from 'src/hooks/use-boolean';
// auth
import { useAuthContext } from 'src/auth/hooks';
// components
import Iconify from 'src/components/iconify';
import FormProvider, { RHFTextField } from 'src/components/hook-form';
// ----------------------------------------------------------------------
export default function FirebaseLoginView() {
const { login } = useAuthContext();
const router = useRouter();
const [errorMsg, setErrorMsg] = useState('');
const searchParams = useSearchParams();
const returnTo = searchParams.get('returnTo');
const password = useBoolean();
const LoginSchema = Yup.object().shape({
email: Yup.string().required('Email is required').email('Email must be a valid email address'),
password: Yup.string().required('Password is required'),
});
const defaultValues = {
email: '',
password: '',
};
const methods = useForm({
resolver: yupResolver(LoginSchema),
defaultValues,
});
const {
reset,
handleSubmit,
formState: { isSubmitting },
} = methods;
const onSubmit = handleSubmit(async (data) => {
try {
await login?.(data.email, data.password);
router.push(returnTo || PATH_AFTER_LOGIN);
} catch (error) {
console.error(error);
reset();
setErrorMsg(typeof error === 'string' ? error : error.message);
}
});
const renderHead = (
Sign in to AgencyOS
);
const renderForm = (
{!!errorMsg && {errorMsg}}
),
}}
/>
Login
);
return (
{renderHead}
{renderForm}
);
}