<script setup lang="ts">
import Choice from './comp/choice.vue'
import Mail from './comp/email/index.vue'
import Code from './comp/email/code.vue'
import Google from './comp/email/google.vue'
import AccountList from './comp/account/list.vue'
import useLogin from './useLogin'
import { useUserStore } from '@/stores/modules/user'
import { useCommonStore } from '@/stores/modules/common'

const commonStore = useCommonStore()
const { accountList, loginType } = storeToRefs(commonStore)

const { emailStep, isEmailGoogle, selectedAccount } = useLogin()
const { isLoginModalOpen, closeLoginModal } = useLoginModal()

// const userStore = useUserStore()
// const { login } = userStore

// const loginForm = ref({
//   email: '',
//   password: '',
// })
// const error = ref(false)
// const isLoading = ref(false)

const route = useRoute()

watch(() => accountList.value, (newVal: any) => {
  console.log('accountList changed:', newVal)
  if (newVal.length > 0)
    commonStore.setLoginType('account')
  else
    commonStore.setLoginType('choice')
}, { immediate: true })

watch(() => route.path, () => {
  if (isLoginModalOpen.value)
    closeLoginModal({ status: false, error: '用户取消登录' })
})

// async function handleLogin() {
//   error.value = false
//   isLoading.value = true
//   try {
//     await login(loginForm.value)
//     closeLoginModal({ status: true, isFirstLogin: true })
//   }
//   catch (err) {
//     error.value = true
//   }
//   finally {
//     isLoading.value = false
//   }
// }
</script>

<template>
  <el-dialog
    v-model="isLoginModalOpen"
    :append-to-body="true"
    :close-on-click-modal="false"
    :close-on-press-escape="false"
    width="880"
  >
    <img src="@/assets/images/login_close_icon.png" alt="" class="w-32px h-32px bg-#F4F4F4 cursor-pointer p-8px b-rd-50% pos-absolute top-24px right-24px" @click="isLoginModalOpen = false">
    <div class="flex">
      <div class="pt-110px pb-45px px-45px pos-relative bg-#D7C4FF w-375px">
        <img src="@/assets/images/login_icon01.png" alt="" class="w-110px h-110px pos-absolute top-0 left-0">
        <div class="custom-title-font text-24px fw-800 text-#333">
          Welcome to EJET Spark!
        </div>
        <img src="@/assets/images/login_img01.png" alt="" class="my-20px w-276px h-225px mx-auto">
        <div class="mb-10px custom-title-font text-18px fw-800 text-#333">
          EJET Spark Intro
        </div>
        <div class="text-14px text-#333 lh-22px">
          EJET Spark catalog description, spark the trend, ignate sales. EJET Spark catalog description, spark the trend, ignate sales.
        </div>
      </div>
      <div class="flex-1 b-rd-10px bg-#fff px-70px pt-100px">
        <AccountList v-if="emailStep === 0 && accountList.length && loginType === 'account'" />
        <Choice v-if="emailStep === 0 && loginType === 'choice'" />
        <Mail v-if="emailStep === 1 && !selectedAccount" />
        <Mail v-if="emailStep === 1 && selectedAccount" />
        <Code v-if="emailStep === 2 && !isEmailGoogle " />
        <Google v-if="emailStep === 2 && isEmailGoogle === 'google'" />
      </div>
    </div>
  </el-dialog>
</template>

<style lang="less">
 .el-dialog {
    border-radius: 10px;
    padding: 0;
    overflow: hidden;
    .el-dialog__header{
      display: none;
        &.show-close{
            .el-dialog__headerbtn{
                width: 60px;
                height: 60px;
                .el-dialog__close{
                    font-size: 30px;
                    color: #000;
                }
            }
        }
    }
}
</style>