import { useUserStore } from '@/stores/modules/user';
|
import Taro from '@tarojs/taro';
|
import { object2query } from '@life-payment/utils';
|
import * as userServices from '@life-payment/services/api/User';
|
import { useQuery } from '@tanstack/vue-query';
|
import { MaybeRef } from 'vue';
|
import { useRefeshDidShow } from './infiniteLoading';
|
import { LoginFormTabs } from '@/subpackages/login/constants';
|
import { useLoginedJump } from './login';
|
|
export function useUser() {
|
const userStore = useUserStore();
|
|
const { userDetail, userInfo, locationCity, virtualUserId } = storeToRefs(userStore);
|
|
function updateUserInfo() {
|
return userStore.getCurrentUserInfo();
|
}
|
|
return {
|
user: userInfo,
|
userDetail: userDetail,
|
updateUserInfo,
|
locationCity,
|
virtualUserId,
|
};
|
}
|
|
export function useIsLogin() {
|
const { virtualUserId } = useUser();
|
// return computed(() => !!user.value);
|
return computed(() => !!virtualUserId.value);
|
}
|
|
type UseAuthOptions = {
|
needAuth?: boolean;
|
};
|
|
export function useAuth(options: UseAuthOptions = {}) {
|
const { needAuth = true } = options;
|
const userStore = useUserStore();
|
|
const isLogin = useIsLogin();
|
|
const isAuth = computed(() => !needAuth || isLogin.value);
|
|
const router = Taro.useRouter();
|
|
Taro.useReady(async () => {
|
if (isLogin.value && userStore.firstGetUserDetail) {
|
// userStore.getCurrentUserInfo();
|
}
|
if (needAuth && !isLogin.value) {
|
Taro.navigateTo({
|
url: `${RouterPath.authorization}?redirect=${router.path}&${object2query(router.params)}`,
|
});
|
}
|
});
|
|
return { isAuth };
|
}
|
|
export function useGoLogin() {
|
const router = Taro.useRouter();
|
const { redirectParams } = useLoginedJump();
|
function goLoginFn() {
|
// Taro.navigateTo({
|
// url: `${RouterPath.authorization}?redirect=${router.path}&${object2query(router.params)}`,
|
// });
|
|
Taro.navigateTo({
|
url: `${RouterPath.loginByForm}?redirect=${redirectParams.value}&tab=${LoginFormTabs.VerificationCodeLogin}`,
|
});
|
}
|
|
return {
|
goLoginFn,
|
};
|
}
|