1
0
Fork 0
freesewing/sites/shared/hooks/use-account.mjs

40 lines
971 B
JavaScript
Raw Normal View History

import createPersistedState from 'use-persisted-state'
/*
* Set up local storage state for account & token
*/
2023-03-24 16:33:14 +01:00
const usePersistedAccount = createPersistedState('fs-account')
const usePersistedToken = createPersistedState('fs-token')
const usePersistedSeenUser = createPersistedState('fs-seen-user')
/*
* Make it possible to always check for account.username and account.control
*/
const noAccount = { username: false, control: 2 }
/*
* The useAccount hook
*/
export function useAccount() {
// (persisted) State (saved to local storage)
2023-03-24 16:33:14 +01:00
const [account, setAccount] = usePersistedAccount(noAccount)
const [token, setToken] = usePersistedToken(null)
const [seenUser, setSeenUser] = usePersistedSeenUser(false)
// Clear user data. This gets called when signing out
2023-08-14 19:16:47 +02:00
const signOut = () => {
setAccount(noAccount)
setToken(null)
}
return {
account,
setAccount,
token,
setToken,
seenUser,
setSeenUser,
2023-08-14 19:16:47 +02:00
signOut,
}
}