Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c5163b80c7 | |||
| ab885a69d9 | |||
| 2cbeb66502 | |||
| 0001fe5d59 | |||
| 2ee928a2e3 | |||
| dd581a8cdc | |||
| 350626cfc3 | |||
| 8b8a1548e1 | |||
| b26dd7d574 |
@@ -16,4 +16,7 @@ REACT_APP_PREVIEW_DOCS_URL=https://preview.keenthemes.com/metronic8/react/docs
|
||||
REACT_APP_THEME_API_URL=https://preview.keenthemes.com/theme-api/api
|
||||
REACT_APP_TERMS_LINK='https://www.float.sg/terms'
|
||||
REACT_APP_CONTACT_LINK='https://www.float.sg/contact'
|
||||
REACT_APP_ABOUT_LINK='https://www.float.sg/about'
|
||||
REACT_APP_ABOUT_LINK='https://www.float.sg/about'
|
||||
|
||||
REACT_APP_LOGIN_ERROR_TIMEOUT=5000
|
||||
REACT_APP_LOGOUT_SESSION_TIMEOUT=300000
|
||||
|
||||
@@ -23,8 +23,8 @@ const loginSchema = Yup.object().shape({
|
||||
})
|
||||
|
||||
const initialValues = {
|
||||
email: 'johndoe@email.com',
|
||||
password: '****',
|
||||
email: '',
|
||||
password: '',
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -37,6 +37,7 @@ export function Login() {
|
||||
const navigate = useNavigate()
|
||||
const [loading, setLoading] = useState(false)
|
||||
const {saveAuth, setCurrentUser} = useAuth()
|
||||
const statusChecker = document.getElementById('formik-status')
|
||||
|
||||
const formik = useFormik({
|
||||
initialValues,
|
||||
@@ -48,14 +49,25 @@ export function Login() {
|
||||
saveAuth(auth)
|
||||
// const {data: user} = await getUserByToken(auth.api_token)
|
||||
// setCurrentUser(user)
|
||||
if(auth.status <= 0){
|
||||
setStatus(auth.error_msg)
|
||||
setSubmitting(false)
|
||||
setLoading(false)
|
||||
return
|
||||
}
|
||||
setCurrentUser(auth.profile)
|
||||
console.log(auth)
|
||||
navigate('/dashboard')
|
||||
} catch (error) {
|
||||
console.error(error)
|
||||
saveAuth(undefined)
|
||||
setStatus('The login details are incorrect')
|
||||
setStatus('An error occurred')
|
||||
setSubmitting(false)
|
||||
setLoading(false)
|
||||
} finally {
|
||||
setTimeout(() => {
|
||||
setStatus(null)
|
||||
}, Number(process.env.REACT_APP_LOGIN_ERROR_TIMEOUT))
|
||||
}
|
||||
},
|
||||
})
|
||||
@@ -125,11 +137,19 @@ export function Login() {
|
||||
</div>
|
||||
{/* end::Separator */}
|
||||
|
||||
{formik.status ? (
|
||||
<div id='formik-status' className='mb-lg-15 alert alert-danger'>
|
||||
<div className='alert-text font-weight-bold'>{formik.status}</div>
|
||||
</div>
|
||||
) : (
|
||||
null
|
||||
)}
|
||||
|
||||
{/* begin::Form group */}
|
||||
<div className='fv-row mb-8'>
|
||||
<label className='form-label fs-6 fw-bolder text-dark'>Email</label>
|
||||
<input
|
||||
placeholder='Email'
|
||||
placeholder='floatuser@email.com'
|
||||
{...formik.getFieldProps('email')}
|
||||
className={clsx(
|
||||
'form-control bg-transparent',
|
||||
@@ -155,6 +175,7 @@ export function Login() {
|
||||
<label className='form-label fw-bolder text-dark fs-6 mb-0'>Password</label>
|
||||
<input
|
||||
type='password'
|
||||
placeholder="●●●●●●"
|
||||
autoComplete='off'
|
||||
{...formik.getFieldProps('password')}
|
||||
className={clsx(
|
||||
|
||||
@@ -8,6 +8,7 @@ import {
|
||||
Dispatch,
|
||||
SetStateAction,
|
||||
} from 'react'
|
||||
import {useLocation} from 'react-router-dom'
|
||||
import {LayoutSplashScreen} from '../../../../_res/layout/core'
|
||||
import {AuthModel, UserModel} from './_models'
|
||||
import * as authHelper from './AuthHelpers'
|
||||
@@ -61,6 +62,7 @@ const AuthProvider: FC<WithChildren> = ({children}) => {
|
||||
}
|
||||
|
||||
const AuthInit: FC<WithChildren> = ({children}) => {
|
||||
const {pathname} = useLocation()
|
||||
const {auth, logout, setCurrentUser} = useAuth()
|
||||
const didRequest = useRef(false)
|
||||
const [showSplashScreen, setShowSplashScreen] = useState(true)
|
||||
@@ -95,8 +97,17 @@ const AuthInit: FC<WithChildren> = ({children}) => {
|
||||
logout()
|
||||
setShowSplashScreen(false)
|
||||
}
|
||||
|
||||
// adding a timeout for 5mins
|
||||
const logOutSession = setTimeout(() => {
|
||||
logout()
|
||||
}, Number(process.env.REACT_APP_LOGOUT_SESSION_TIMEOUT))
|
||||
|
||||
return (() => {
|
||||
clearInterval(logOutSession)
|
||||
})
|
||||
// eslint-disable-next-line
|
||||
}, [])
|
||||
}, [pathname])
|
||||
|
||||
return showSplashScreen ? <LayoutSplashScreen /> : <>{children}</>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user