fix: guard avatar entry and hide chat navigation
This commit is contained in:
@@ -39,13 +39,19 @@ const router = useRouter()
|
|||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
||||||
const currentRoute = ref<string>(route.path)
|
const currentRoute = ref<string>(route.path)
|
||||||
const showNav = ref<boolean>(true)
|
const showNav = ref<boolean>(shouldShowNav(route.path))
|
||||||
|
|
||||||
|
function shouldShowNav(path: string) {
|
||||||
|
return path !== '/'
|
||||||
|
&& path !== '/login/sms'
|
||||||
|
&& !path.startsWith('/avatar/edit')
|
||||||
|
&& !path.startsWith('/avatar/chat')
|
||||||
|
}
|
||||||
|
|
||||||
// 监听路由变化
|
// 监听路由变化
|
||||||
watch(() => route.path, (newPath) => {
|
watch(() => route.path, (newPath) => {
|
||||||
currentRoute.value = newPath
|
currentRoute.value = newPath
|
||||||
// 首页(创建引导)与编辑页隐藏底部导航
|
showNav.value = shouldShowNav(newPath)
|
||||||
showNav.value = newPath !== '/' && !newPath.startsWith('/avatar/edit')
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// 导航
|
// 导航
|
||||||
@@ -55,7 +61,7 @@ const navigateTo = (path: string) => {
|
|||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
currentRoute.value = route.path
|
currentRoute.value = route.path
|
||||||
showNav.value = route.path !== '/' && !route.path.startsWith('/avatar/edit')
|
showNav.value = shouldShowNav(route.path)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import { createRouter, createWebHashHistory } from 'vue-router'
|
import { createRouter, createWebHashHistory } from 'vue-router'
|
||||||
import type { RouteRecordRaw } from 'vue-router'
|
import type { RouteRecordRaw } from 'vue-router'
|
||||||
|
import { getAuthToken } from '@/api'
|
||||||
|
|
||||||
const routes: RouteRecordRaw[] = [
|
const routes: RouteRecordRaw[] = [
|
||||||
{
|
{
|
||||||
@@ -96,7 +97,9 @@ const router = createRouter({
|
|||||||
|
|
||||||
router.beforeEach((to, from, next) => {
|
router.beforeEach((to, from, next) => {
|
||||||
document.title = to.meta.title as string || '会会数字分身'
|
document.title = to.meta.title as string || '会会数字分身'
|
||||||
if (to.meta.requiresAuth && !localStorage.getItem('hh_app_token')) {
|
const hasLocalSession = Boolean(localStorage.getItem('hh_app_token'))
|
||||||
|
const hasInjectedSession = Boolean(getAuthToken())
|
||||||
|
if (to.meta.requiresAuth && !hasLocalSession && !hasInjectedSession) {
|
||||||
next({ path: '/login/sms', query: { redirect: to.fullPath } })
|
next({ path: '/login/sms', query: { redirect: to.fullPath } })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user