import { create } from "zustand" import { AUTH_EVENT, getUserInfo, getUserToken, type UserInfoRecord, } from "@/api/token" export type ProfileState = { token: string | null userInfo: UserInfoRecord | null } type ProfileActions = { refreshFromStorage: () => void } export type ProfileStore = ProfileState & ProfileActions export const useProfileStore = create()(set => ({ token: getUserToken(), userInfo: getUserInfo(), refreshFromStorage: () => { set({ token: getUserToken(), userInfo: getUserInfo() }) }, })) // 应用入口调用一次,监听登录态变化(含跨标签页 focus 同步) export function initProfileStore() { const sync = () => useProfileStore.getState().refreshFromStorage() window.addEventListener(AUTH_EVENT, sync) window.addEventListener("focus", sync) }