|
@@ -1,5 +1,5 @@
|
|
|
<template>
|
|
|
- <div v-if="!showSurprise" class="p-login">
|
|
|
+ <div class="p-login">
|
|
|
<router-link class="nav-home" to="/">
|
|
|
<i class="icon"></i><span class="text">HOME</span>
|
|
|
</router-link>
|
|
@@ -43,9 +43,9 @@
|
|
|
<div class="alternative">
|
|
|
<div class="delimiter">Or sign in with</div>
|
|
|
<ul class="list">
|
|
|
- <li class="item" name="google"></li>
|
|
|
- <li class="item" name="facebook"></li>
|
|
|
- <li class="item" name="apple"></li>
|
|
|
+ <li ref="gSignin" class="item" name="google"></li>
|
|
|
+ <li class="item" name="facebook" @click="FBLogin"></li>
|
|
|
+ <li class="item" name="apple" @click="AppleLogin"></li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
<div class="policy">
|
|
@@ -58,23 +58,30 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import { ref, reactive } from 'vue'
|
|
|
+import { ref, reactive, onMounted } from 'vue'
|
|
|
import { useRouter, useRoute } from 'vue-router'
|
|
|
import { login } from '@/service/user'
|
|
|
import useForm from '@/hooks/useForm'
|
|
|
import { string } from 'yup'
|
|
|
import { getUserInfo } from '@/store'
|
|
|
import Toast from '@/components/toast'
|
|
|
+import {
|
|
|
+ FBLogin,
|
|
|
+ AppleLogin,
|
|
|
+ renderGoogleLoginButton,
|
|
|
+} from '@/utils/third-login'
|
|
|
|
|
|
const router = useRouter()
|
|
|
const { from } = useRoute().query as any
|
|
|
-const showSurprise = ref(false)
|
|
|
const { values, handleSubmit } = useForm<ApiUser.Login.Request>({
|
|
|
schema: {
|
|
|
email: string().required().email(),
|
|
|
password: string().required(),
|
|
|
},
|
|
|
})
|
|
|
+const gSignin = ref<HTMLElement>()
|
|
|
+
|
|
|
+onMounted(() => renderGoogleLoginButton(gSignin.value!))
|
|
|
|
|
|
async function handleLogin() {
|
|
|
const { message } = await login(values as any)
|