Files
seasoned/src/routes.js
2022-01-10 00:48:15 +01:00

118 lines
2.6 KiB
JavaScript

import Vue from "vue";
import VueRouter from "vue-router";
import store from "@/store";
Vue.use(VueRouter);
let routes = [
{
name: "home",
path: "/",
component: resolve => require(["./components/Home.vue"], resolve)
},
{
name: "activity",
path: "/activity",
meta: { requiresAuth: true },
component: resolve => require(["./components/ActivityPage.vue"], resolve)
},
{
name: "profile",
path: "/profile",
meta: { requiresAuth: true },
component: resolve => require(["./components/Profile.vue"], resolve)
},
{
name: "list",
path: "/list/:name",
component: resolve => require(["./components/ListPage.vue"], resolve)
},
{
name: "request",
path: "/requests",
component: resolve => require(["./components/RequestPage.vue"], resolve)
},
{
name: "search",
path: "/search",
component: resolve => require(["./components/Search.vue"], resolve)
},
{
name: "register",
path: "/register",
component: resolve => require(["./components/Register.vue"], resolve)
},
{
name: "settings",
path: "/settings",
meta: { requiresAuth: true },
component: resolve => require(["./components/Settings.vue"], resolve)
},
{
name: "signin",
path: "/signin",
alias: "/login",
component: resolve => require(["./components/Signin.vue"], resolve)
},
// {
// name: 'user-requests',
// path: '/profile/requests',
// components: {
// 'user-requests-router-view': require('./components/MoviesList.vue')
// }
// },
{
name: "404",
path: "/404",
component: resolve => require(["./components/404.vue"], resolve)
},
{
name: "logout",
path: "/logout",
component: {
template: "<div></div>",
created() {
localStorage.clear();
this.$router.push({ name: "home" });
}
}
},
{
path: "*",
redirect: "/"
},
{
path: "/request",
redirect: "/"
}
];
const router = new VueRouter({
mode: "history",
base: "/",
routes,
linkActiveClass: "is-active"
});
router.beforeEach((to, from, next) => {
store.dispatch("documentTitle/updateTitle", to.name);
// Toggle mobile nav
if (document.querySelector(".nav__hamburger--active")) {
document
.querySelector(".nav__hamburger")
.classList.remove("nav__hamburger--active");
document.querySelector(".nav__list").classList.remove("nav__list--active");
}
if (to.matched.some(record => record.meta.requiresAuth)) {
if (localStorage.getItem("token") == null) {
next({ path: "/signin" });
}
}
next();
});
export default router;