import { defineStore } from 'pinia' interface UserState { username: string isFirstLogin: boolean } export const useUserStore = defineStore('user', { state: (): UserState => ({ username: localStorage.getItem('username') || '', isFirstLogin: localStorage.getItem('isFirstLogin') ? JSON.parse(localStorage.getItem('isFirstLogin')) : false }), getters: {}, actions: { setUsername(username: any, isFirstLogin?: boolean) { localStorage.setItem('username', username) this.username = username this.isFirstLogin = isFirstLogin localStorage.setItem('isFirstLogin', JSON.stringify(isFirstLogin)) }, async logout(isNeedLogout: boolean = true) { if (isNeedLogout) { await $api.logout().then(() => {}) } localStorage.removeItem('username') this.username = '' localStorage.removeItem('isFirstLogin') this.isFirstLogin = false } } })