import {
	defineStore
} from 'pinia';
import {
	ref,
	shallowRef
} from 'vue';

export const useUserStore = defineStore('useUserStore', () => {
	// 是否登录
	const isLogin = ref(uni.getStorageSync('isLogin') || false)
	// 双token刷新
	const access_token = ref(uni.getStorageSync('access_token') || '')
	const refresh_token = ref(uni.getStorageSync('refresh_token') || '')
	// 用户信息
	const userInfo = shallowRef(uni.getStorageSync('userInfo') || {})

	/**
	 * 修改用户登录状态
	 */
	const HANDLE_ISLOGIN = (_islogin) => {
		isLogin.value = _islogin
	}

	/**
	 * 修改token
	 */
	const HANDLE_ACCTOKEN = (_token) => {
		access_token.value = _token
	}

	/**
	 * 修改token
	 */
	const HANDLE_REFTOKEN = (_token) => {
		refresh_token.value = _token
	}

	/**
	 * 更新用户信息
	 */
	const HANDLE_USERINFO = (_info) => {
		userInfo.value = _info
	}

	return {
		isLogin,
		access_token,
		refresh_token,
		userInfo,
		HANDLE_ISLOGIN,
		HANDLE_ACCTOKEN,
		HANDLE_REFTOKEN,
		HANDLE_USERINFO
	}
})

// 暴露仓库实例
export default useUserStore