Stockage persistent des requêtes

This commit is contained in:
2024-12-11 00:30:20 +01:00
parent 1c52ff5a10
commit db7a0b970d
7 changed files with 153 additions and 20 deletions

View File

@ -25,8 +25,23 @@ export default function LoginProvider({ loginRedirect, children }: Props) {
}
})
// Renouvellement auto du jeton d'authentification
useEffect(() => {
(async () => {
const storedName = await SecureStore.getItemAsync('apiName')
const storedToken = await SecureStore.getItemAsync('apiToken')
if (!auth.loggedIn && storedName !== null && storedName !== auth.name && storedToken !== auth.token) {
authLogin({ name: storedName, token: storedToken })
return
}
// Si on est pas connecté⋅e, on reste sur la fenêtre de connexion
if (!auth.loggedIn && route.pathname !== loginRedirect)
router.navigate(loginRedirect)
})()
}, [auth, authLogin, router, route])
useEffect(() => {
// Renouvellement auto du jeton d'authentification
const { name, token } = auth
const password = SecureStore.getItem('apiPassword')
if (name === null || (password === null && token === null))
@ -45,13 +60,7 @@ export default function LoginProvider({ loginRedirect, children }: Props) {
loginMutation.mutate({ name, password })
}, waitTime)
return () => clearTimeout(timeout)
}, [auth])
// Si on est pas connecté⋅e, on reste sur la fenêtre de connexion
useEffect(() => {
if (!auth.loggedIn && route.pathname !== loginRedirect)
router.navigate(loginRedirect)
}, [auth, route, router])
}, [auth, authLogin])
return <>
{children}