Files
DiceCloud/app/imports/ui/router.js

82 lines
1.9 KiB
JavaScript

import { RouterFactory, nativeScrollBehavior } from 'meteor/akryum:vue-router2';
import Vue from "vue";
// Components
import Home from '/imports/ui/pages/Home.vue';
import CharacterList from "/imports/ui/pages/CharacterList.vue";
import CharacterSheetPage from "/imports/ui/pages/CharacterSheetPage.vue";
import SignIn from "/imports/ui/pages/SignIn.vue" ;
import Register from "/imports/ui/pages/Register.vue" ;
import Account from "/imports/ui/pages/Account.vue" ;
// Not found
import NotFound from '/imports/ui/pages/NotFound.vue';
// Create router instance
const routerFactory = new RouterFactory({
mode: 'history',
scrollBehavior: nativeScrollBehavior,
});
RouterFactory.configure(factory => {
factory.addRoutes([
{
path: '/',
name: 'home',
component: Home,
},{
path: "/characterList",
component: CharacterList,
},{
path: "/character/:id/:urlName",
component: CharacterSheetPage,
},{
path: "/character/:id",
component: CharacterSheetPage,
},{
path: "/sign-in",
component: SignIn,
},{
path: "/register",
component: Register,
},{
path: "/account",
component: Account,
},
]);
//Development routes
if (Meteor.isDevelopment){
let StoryBook = require('/imports/ui/StoryBook.vue').default;
let IconAdmin = require('/imports/ui/icons/IconAdmin.vue').default;
factory.addRoutes([
{
path: '/storybook/:component',
name: 'componentStory',
component: StoryBook,
},{
path: '/storybook',
name: 'storybook',
component: StoryBook,
}, {
path: '/icon-admin',
name: "iconAdmin",
component: IconAdmin,
},
]);
}
});
// Not found route has lowest priority
RouterFactory.configure(factory => {
factory.addRoute({
path: '*',
component: NotFound,
});
}, -1);
// Create the router instance
const router = routerFactory.create();
export default router;