// 创建一个路由器，暴露出去
// 导入路由组件
import { createRouter, createWebHashHistory,createWebHistory } from 'vue-router'
//引入每个可能要呈现的组件
// 引入首页 
import Home from '@/page/Home.vue'
// 引入登录页
import Login from '@/page/Login.vue'
// 引入文章详情页
import Paper from '@/components/utils/Paper.vue'
// 引入书写页面
import Writing from '@/components/writeBlog/Writing.vue'
// 引入找回密码和注册
import RetrievePassword from '@/components/login/RetrievePassword.vue'
import Registered from '@/components/login/Registered.vue'
import  PersonalSpace from '@/components/login/PersonalSpace.vue'
// 引入全局数据Login
import { useLoginStore } from '@/stores/Login'
// 创建路由

const router = createRouter({
    // 路由模式
    history:createWebHistory(),
    routes:[
        // 路由配置规则

        {
            path:'/home',
            component:Home
        },
        {
            path:'/login',
            component:Login
        },
        // 文章详情页
        {
            path:'/paper/:id',
            name: 'Paper',
            component:Paper
        },
        // 书写页面
        {
            path:'/writing/:id',
            name: 'Writing',
            component:Writing
        },
        //找回密码
        {
            path:'/retrievePassword',
            component:RetrievePassword
        },

        //注册
        {
            path:'/registered',
            component:Registered
        },
        //个人空间
        {
            path:'/personalSpace',
            component: PersonalSpace
        },
        

        // 重定向到首页
        {
            path:'/',
            redirect:'/home'
        } 

    ]


});

// 添加全局前置守卫
router.beforeEach((to, from, next) => {
  const loginStore = useLoginStore(); // 获取 login store 实例
  const isAuthenticated = !!loginStore.userInfo.token; // 检查 token 是否存在

  // 只拦截 /writing 路径
  if ((to.path === '/writing'||to.path === '/personalSpace') && !isAuthenticated) {
    
    next('/login'); // 如果未认证，重定向到登录页面
    // window.alert('请先登录');
    } 
    else {
        next(); // 否则继续导航
    }

});


// 暴露出去
export default router
