import { createRouter, createWebHashHistory } from 'vue-router'
import { ROUTE } from './menu.js'

// 白名单路由，不需要登录就可以访问
const whiteList = ['/login', '/register', '/forget-password', '/404', '/register/invitation']

const route = createRouter({
    history: createWebHashHistory(import.meta.env.BASE_URL),
    scrollBehavior: () => ({ y: 0 }),
    routes: ROUTE
})

// 全局前置守卫
route.beforeEach((to, from, next) => {
    const token = localStorage.getItem('token')
    
    // 在白名单中的路由直接放行
    if (whiteList.includes(to.path)) {
        next()
        return
    }
    
    // 检查是否有token
    if (!token) {
        // 没有token，重定向到登录页面
        next({
            path: '/login',
            query: { redirect: to.fullPath } // 保存原本要去的路由路径
        })
        return
    }
    
    // 有token，正常放行
    next()
})

export default route
