mirror of
https://github.com/danbulant/Nertivia-Client
synced 2026-06-14 20:11:10 +00:00
91 lines
2.3 KiB
JavaScript
91 lines
2.3 KiB
JavaScript
import Vue from "vue";
|
|
import VueRouter from "vue-router";
|
|
Vue.use(VueRouter);
|
|
import { store } from "./store/index";
|
|
import VueSocketio from "vue-socket.io-extended";
|
|
import io from "socket.io-client";
|
|
import config from "./config.js";
|
|
import VueMq from "vue-mq";
|
|
|
|
const MainApp = () =>
|
|
import(/* webpackChunkName: "MainApp" */ "../src/views/App.vue");
|
|
const HomePage = () =>
|
|
import(/* webpackChunkName: "HomePage" */ "../src/views/HomePage.vue");
|
|
const GDriveCallback = () =>
|
|
import(
|
|
/* webpackChunkName: "GDriveCallback" */ "../src/views/GDriveCallback.vue"
|
|
);
|
|
const LoginPage = () =>
|
|
import(/* webpackChunkName: "LoginPage" */ "../src/views/LoginPage.vue");
|
|
const InvitesPage = () =>
|
|
import(/* webpackChunkName: "Invites" */ "../src/views/Invites.vue");
|
|
const RegisterPage = () =>
|
|
import(
|
|
/* webpackChunkName: "RegisterPage" */ "../src/views/RegisterPage.vue"
|
|
);
|
|
const PageNotFound = () =>
|
|
import(/* webpackChunkName: "404" */ "../src/views/404.vue");
|
|
|
|
export const router = new VueRouter({
|
|
mode: "history",
|
|
routes: [
|
|
{ name: "404", path: "*", component: PageNotFound },
|
|
{
|
|
path: "/",
|
|
name: "HomePage",
|
|
component: HomePage
|
|
},
|
|
{
|
|
path: "/login",
|
|
name: "Login",
|
|
component: LoginPage,
|
|
beforeEnter(to, from, next) {
|
|
if (localStorage.getItem("hauthid")) {
|
|
return router.push({ path: "/app" });
|
|
}
|
|
next();
|
|
}
|
|
},
|
|
{
|
|
path: "/register",
|
|
name: "Register",
|
|
component: RegisterPage,
|
|
beforeEnter(to, from, next) {
|
|
if (localStorage.getItem("hauthid")) {
|
|
return router.push({ path: "/app" });
|
|
}
|
|
next();
|
|
}
|
|
},
|
|
{
|
|
path: "/app",
|
|
name: "app",
|
|
component: MainApp,
|
|
beforeEnter(to, from, next) {
|
|
if (!localStorage.getItem("hauthid")) {
|
|
return router.push({ path: "/login" });
|
|
}
|
|
|
|
Vue.use(VueSocketio, io(config.socketIP), { store });
|
|
Vue.use(VueMq, {
|
|
breakpoints: {
|
|
mobile: 600,
|
|
members_panel: 950,
|
|
desktop: Infinity
|
|
}
|
|
});
|
|
next();
|
|
}
|
|
},
|
|
{
|
|
path: "/GDrive_callback",
|
|
name: "GDrive callback",
|
|
component: GDriveCallback
|
|
},
|
|
{
|
|
path: "/invites/:invite_id",
|
|
name: "invites",
|
|
component: InvitesPage
|
|
}
|
|
]
|
|
});
|