feat: supprime le compte à rebours de déconnexion
This commit is contained in:
@@ -1,36 +1,13 @@
|
||||
import PropTypes from 'prop-types'
|
||||
import {
|
||||
useState, useEffect, forwardRef, useImperativeHandle
|
||||
} from 'react'
|
||||
import {forwardRef, useImperativeHandle} from 'react'
|
||||
import {signOut} from 'next-auth/react'
|
||||
|
||||
const LogoutCountdown = forwardRef(({setError, setIsErrorAlertOpen}, ref) => {
|
||||
const [counter, setCounter] = useState(5)
|
||||
const [isCountdownActive, setIsCountdownActive] = useState(false)
|
||||
|
||||
useEffect(() => {
|
||||
let timer
|
||||
|
||||
if (isCountdownActive) {
|
||||
if (counter > 0) {
|
||||
timer = setInterval(() => {
|
||||
setCounter(prevCounter => prevCounter - 1)
|
||||
}, 1000)
|
||||
} else if (counter === 0) {
|
||||
signOut()
|
||||
}
|
||||
|
||||
setError(`Session expirée, reconnectez-vous ! Déconnexion dans... ${counter} sec`)
|
||||
setIsErrorAlertOpen(true)
|
||||
}
|
||||
|
||||
return () => clearInterval(timer)
|
||||
}, [isCountdownActive, counter, setError, setIsErrorAlertOpen])
|
||||
|
||||
useImperativeHandle(ref, () => ({
|
||||
startCountdown() {
|
||||
setCounter(5)
|
||||
setIsCountdownActive(true)
|
||||
setError('Session expirée, vous devez vous reconnecter !')
|
||||
setIsErrorAlertOpen(true)
|
||||
signOut()
|
||||
}
|
||||
}))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user