import { currentUser, login, logout } from '../../api/auth' export default { namespaced: true, state: () => ({ user: null, checked: false }), getters: { has: state => permission => Boolean(state.user?.permissions?.includes(permission)) }, mutations: { setUser (state, user) { state.user = user; state.checked = true } }, actions: { async restore ({ commit }) { try { commit('setUser', await currentUser()) } catch (_) { commit('setUser', null) } }, async login ({ commit }, form) { const result = await login(form); commit('setUser', result.user); return result.user }, async logout ({ commit }) { try { await logout() } finally { commit('setUser', null) } } } }