feat: supprime le compte à rebours de déconnexion
This commit is contained in:
@@ -1,36 +1,13 @@
|
|||||||
import PropTypes from 'prop-types'
|
import PropTypes from 'prop-types'
|
||||||
import {
|
import {forwardRef, useImperativeHandle} from 'react'
|
||||||
useState, useEffect, forwardRef, useImperativeHandle
|
|
||||||
} from 'react'
|
|
||||||
import {signOut} from 'next-auth/react'
|
import {signOut} from 'next-auth/react'
|
||||||
|
|
||||||
const LogoutCountdown = forwardRef(({setError, setIsErrorAlertOpen}, ref) => {
|
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, () => ({
|
useImperativeHandle(ref, () => ({
|
||||||
startCountdown() {
|
startCountdown() {
|
||||||
setCounter(5)
|
setError('Session expirée, vous devez vous reconnecter !')
|
||||||
setIsCountdownActive(true)
|
setIsErrorAlertOpen(true)
|
||||||
|
signOut()
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user