feat: user switch on mobile (#160)

This commit is contained in:
三咲智子 Kevin Deng 2022-11-27 19:16:27 +08:00 committed by GitHub
parent e380e7d52c
commit 424c7cd529
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 53 additions and 12 deletions

View file

@ -0,0 +1,47 @@
<script setup lang="ts">
import type { ComponentPublicInstance } from 'vue'
const avatar = ref<ComponentPublicInstance>()
const switcher = ref()
const router = useRouter()
const goProfile = () => {
router.push(`/@${currentUser.value!.account.username}`)
}
let showSwitcher = $ref(false)
onLongPress(avatar, () => {
showSwitcher = true
})
onClickOutside(avatar, () => {
showSwitcher = false
}, { ignore: [switcher] })
</script>
<template>
<VDropdown
v-if="currentUser"
v-model:shown="showSwitcher"
:triggers="[]"
:auto-hide="false"
>
<div style="-webkit-touch-callout: none;">
<AccountAvatar
ref="avatar"
:account="currentUser.account"
h="2em"
:draggable="false"
@click.stop="goProfile"
/>
</div>
<template #popper>
<UserSwitcher ref="switcher" />
</template>
</VDropdown>
<button v-else btn-solid text-sm px-2 py-1 text-center @click="openSigninDialog()">
Sign in
</button>
</template>