import { useUserStore } from '@/stores/modules/user'; 
 | 
import Taro from '@tarojs/taro'; 
 | 
import { object2query, LocationUtils } from '@12333/utils'; 
 | 
import { ParkOrHRStatus, UserCertificationFrontStatus } from '@12333/constants'; 
 | 
import { useQuery, useQueryClient } from '@tanstack/vue-query'; 
 | 
import { MaybeRef } from 'vue'; 
 | 
import { useRefeshDidShow } from '@12333/hooks/infiniteLoading'; 
 | 
import * as userResumeServices from '@12333/services/apiV2/userResume'; 
 | 
import { useUserResume as useUserResumeHook } from '@12333/hooks'; 
 | 
  
 | 
export function useUser() { 
 | 
  const userStore = useUserStore(); 
 | 
  
 | 
  const { userDetail, userInfo, locationCity, userId } = storeToRefs(userStore); 
 | 
  
 | 
  function updateUserInfo() { 
 | 
    return userStore.getCurrentUserInfo(); 
 | 
  } 
 | 
  
 | 
  const isCertified = computed(() => { 
 | 
    return userDetail.value?.isReal; 
 | 
  }); 
 | 
  
 | 
  return { 
 | 
    user: userInfo, 
 | 
    userDetail: userDetail, 
 | 
    updateUserInfo, 
 | 
    isCertified, 
 | 
    locationCity, 
 | 
    userId, 
 | 
  }; 
 | 
} 
 | 
  
 | 
export function useIsLogin() { 
 | 
  const { user, userDetail } = useUser(); 
 | 
  return computed(() => !!user.value); 
 | 
  // return user?.isPersonal ? !!user : !!user && !!enterpriseInfo; 
 | 
} 
 | 
  
 | 
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(); 
 | 
  
 | 
  function goLoginFn() { 
 | 
    Taro.navigateTo({ 
 | 
      url: `${RouterPath.authorization}?redirect=${router.path}&${object2query(router.params)}`, 
 | 
    }); 
 | 
  } 
 | 
  
 | 
  return { 
 | 
    goLoginFn, 
 | 
  }; 
 | 
} 
 | 
  
 | 
export function useUserResume() { 
 | 
  const { userId } = useUser(); 
 | 
  return useUserResumeHook({ userId }); 
 | 
} 
 |