import {acceptHMRUpdate, createPinia, defineStore} from 'pinia'; type menu = 'light' | 'dark' export interface UserState { token: string; info: any; loginVisible: boolean; } const useUserInfo = defineStore('user', { state: (): UserState => ({ token: '', info: {}, loginVisible: false, }), actions: { setToken(token: string):void { this.token = token; }, setInfo(info: any):void { this.info = info; }, setLoginVisible(val: boolean):void { this.loginVisible = val; }, async login(data: any, redirect?: string){ const { commonApi } = useApi() const res = await commonApi.login(data); // this.setInfo(res.data) // this.setToken(res.data.token) // this.setLoginVisible(false) this.token = res.data.userinfo.token; this.loginVisible = false this.info = res.data.userinfo if(redirect) { useRouter().push(redirect) } return res; } }, getters:{ getLoginVisible:(state)=> state.loginVisible, }, persist: process.client && { storage: localStorage, paths: ['info', 'token'] } }) export default useUserInfo; if (import.meta.hot) { import.meta.hot.accept(acceptHMRUpdate(useUserInfo, import.meta.hot)) }