33 lines
868 B
JavaScript
33 lines
868 B
JavaScript
import { create } from 'zustand'
|
|
|
|
const useAuthStore = create((set) => ({
|
|
user: null,
|
|
token: localStorage.getItem('manager_token') || null,
|
|
savedUsername: localStorage.getItem('manager_username') || null,
|
|
locked: false,
|
|
|
|
login(user, token) {
|
|
localStorage.setItem('manager_token', token)
|
|
localStorage.setItem('manager_username', user.username)
|
|
set({ user, token, savedUsername: user.username, locked: false })
|
|
},
|
|
|
|
logout() {
|
|
localStorage.removeItem('manager_token')
|
|
localStorage.removeItem('manager_username')
|
|
localStorage.removeItem('manager_lock_timeout')
|
|
set({ user: null, token: null, savedUsername: null, locked: false })
|
|
},
|
|
|
|
lock() {
|
|
set({ locked: true })
|
|
},
|
|
|
|
unlock(user, token) {
|
|
localStorage.setItem('manager_token', token)
|
|
set({ user, token, locked: false })
|
|
},
|
|
}))
|
|
|
|
export default useAuthStore
|