<script setup lang="ts">
import Layout from "@/layout/index.vue"
import { useUserStore } from "@/pinia/stores/user"
import { useDark } from "@@/composables/useDark"
import { useWxStore } from "@/pinia/stores/wx"
import { tokenLogin } from '@/common/apis/ab98'
import { useAb98UserStore } from '@/pinia/stores/ab98-user'
import { useProductStore } from "./pinia/stores/product"

// const userStore = useUserStore()
const wxStore = useWxStore();
const route = useRoute();
const router = useRouter();
const ab98UserStore = useAb98UserStore();
const productStore = useProductStore();

const { isDark, initDark } = useDark()

const isLoading = false;
// const isLoading = computed(() => userStore.token && !userStore.username)

// watch(
//   () => userStore.token,
//   (newVal) => {
//     newVal && userStore.getInfo()
//   },
//   {
//     immediate: true
//   }
// )

initDark()
onMounted(() => {
  const urlParams = new URLSearchParams(window.location.search);
  console.log('urlParams', urlParams);
  const code = urlParams.get('code') || undefined;
  const state = urlParams.get('state') || undefined;
  const corpid = urlParams.get('corpid') || undefined;
  const isAdmin = urlParams.get('isAdmin') || undefined;

  if (state && state.indexOf('token') !== -1) {
    const token = state.split('token_')[1];
    if (token) {
      ab98UserStore.setTokenLogin(token);

      watch(
        () => wxStore.userid,
        (newVal) => {
          const isLogin = ab98UserStore.isLogin;
          if (newVal) {
            tokenLogin(ab98UserStore.tokenLogin, newVal, wxStore.openid).then(res => {
              if (res?.code === 0 && res.data?.success) {
                ab98UserStore.setTel(res.data.tel)
                ab98UserStore.setUserInfo(res.data)
                if (!isLogin) {
                  ab98UserStore.setIsLogin(true)
                  router.push('/')
                }
              }
            })
          }
        },
        { immediate: true }
      )
    }
  }

  if (isAdmin == '1') {
    wxStore.setIsCabinetAdmin(true);
  }
  if (code || state) {
    wxStore.handleWxCallback({ corpid, code, state })
  }
})
</script>

<template>
  <van-config-provider :theme="isDark ? 'dark' : 'light'" un-h-full>
    <van-loading v-if="isLoading" un-h-full un-flex-center>
      加载中...
    </van-loading>
    <Layout v-else />
  </van-config-provider>
</template>
