Files
htwkalender/frontend/src/router/index.ts
2023-12-04 03:10:25 +01:00

87 lines
2.2 KiB
TypeScript

import { createRouter, createWebHistory } from "vue-router";
import Faq from "../components/FaqPage.vue";
import AdditionalModules from "../view/AdditionalModules.vue";
import CalendarLink from "../components/CalendarLink.vue";
import Imprint from "../view/ImprintPage.vue";
import PrivacyPolicy from "../view/PrivacyPolicy.vue";
import RenameModules from "../components/RenameModules.vue";
import RoomFinder from "../view/RoomFinder.vue";
import EditCalendarView from "../view/EditCalendarView.vue";
import EditAdditionalModules from "../components/editCalendar/EditAdditionalModules.vue";
import EditModules from "../components/editCalendar/EditModules.vue";
import CourseSelection from "../view/CourseSelection.vue";
import i18n from "../i18n";
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: "/",
name: "course-selection",
component: CourseSelection,
},
{
path: "/rooms",
name: "room-finder",
component: RoomFinder,
},
{
path: "/faq",
name: "faq",
component: Faq,
},
{
path: "/additional-modules",
name: "additional-modules",
component: AdditionalModules,
},
{
path: "/edit-additional-modules",
name: "edit-additional-modules",
component: EditAdditionalModules,
},
{
path: "/edit-calendar",
name: "edit-calendar",
component: EditModules,
},
{
path: "/calendar-link",
name: "calendar-link",
component: CalendarLink,
},
{
path: "/edit",
name: "edit",
component: EditCalendarView,
},
{
path: "/privacy-policy",
name: "privacy-policy",
component: PrivacyPolicy,
},
{
path: "/imprint",
name: "imprint",
component: Imprint,
},
{
path: "/rename-modules",
name: "rename-modules",
component: RenameModules,
},
],
});
router.beforeEach(async (to, from) => {
const newLocale = to.params.locale;
const prevLocale = from.params.locale;
// If the locale hasn't changed, do nothing
if (newLocale === prevLocale) {
return;
}
i18n.setLocale(newLocale);
});
export default router;