import { defineStore } from 'pinia' import * as authApi from '@/api/auth' export const useAuthStore = defineStore('auth', { state: () => ({ token: localStorage.getItem('h5_token') || '', user: JSON.parse(localStorage.getItem('h5_user') || 'null'), }), getters: { isAuthed: (s) => !!s.token, }, actions: { async login(payload) { const data = await authApi.login(payload) this.token = data.access this.user = data.user || null localStorage.setItem('h5_token', this.token) if (this.user) localStorage.setItem('h5_user', JSON.stringify(this.user)) }, async loadUser() { this.user = await authApi.fetchCurrentUser() localStorage.setItem('h5_user', JSON.stringify(this.user)) }, logout() { this.token = '' this.user = null localStorage.removeItem('h5_token') localStorage.removeItem('h5_user') }, }, })