init code

This commit is contained in:
Tham Luu
2024-09-23 15:07:25 +08:00
commit 2842b3fc19
63 changed files with 7901 additions and 0 deletions

View File

@ -0,0 +1,56 @@
import { STORE_KEY } from '@utils/enum'
import { Helpers } from '@utils/helper'
import { createContext, useCallback, useEffect, useMemo, useState } from 'react'
const AuthContext = createContext()
const DEFAULT_AUTH = {
isLogged: false,
userInfo: null,
}
function getInitialAuth() {
return Helpers.decrypt(localStorage.getItem(STORE_KEY), DEFAULT_AUTH)
}
function AuthProvider({ children }) {
const [auth, setAuth] = useState(getInitialAuth())
useEffect(() => {
localStorage.setItem(STORE_KEY, Helpers.encrypt(auth))
}, [auth])
const setLoggedIn = useCallback(
(value) => {
setAuth({
...auth,
isLogged: value,
})
},
[auth],
)
const setUserInfo = useCallback(
(value) => {
setAuth({
...auth,
userInfo: value,
})
},
[auth],
)
const context = useMemo(
() => ({
auth,
setAuth,
setLoggedIn,
setUserInfo,
}),
[auth, setLoggedIn, setUserInfo],
)
return <AuthContext.Provider value={context}>{children}</AuthContext.Provider>
}
export { AuthContext, AuthProvider }