mirror of
https://github.com/eugene-serb/wavelovers.git
synced 2023-09-09 23:41:16 +03:00
- added model IQueryRoute for made IQueryRoute list in queryRoutes.ts.
- improve and decomposited QueryRouter. - updated router index block of modules and imports. - updated version. - build.
This commit is contained in:
30
src/router/assets/queryRoutes.ts
Normal file
30
src/router/assets/queryRoutes.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import IQueryRoute from '@/router/models/IQueryRoute';
|
||||
|
||||
const queryRoutes: Array<IQueryRoute> = [
|
||||
{
|
||||
query: '/?custom',
|
||||
to: '/custom',
|
||||
},
|
||||
{
|
||||
query: '/?manual',
|
||||
to: '/manual',
|
||||
},
|
||||
{
|
||||
query: '/?diagnostic',
|
||||
to: '/diagnostic',
|
||||
},
|
||||
{
|
||||
query: '/?faq',
|
||||
to: '/faq',
|
||||
},
|
||||
{
|
||||
query: '/?about',
|
||||
to: '/about',
|
||||
},
|
||||
{
|
||||
query: '/?donate',
|
||||
to: '/donate',
|
||||
}
|
||||
];
|
||||
|
||||
export default queryRoutes;
|
||||
@@ -1,7 +1,11 @@
|
||||
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';
|
||||
import {
|
||||
createRouter, createWebHistory, RouteRecordRaw,
|
||||
NavigationGuardNext, RouteLocationNormalized
|
||||
} from 'vue-router';
|
||||
import PatternsView from '@/views/PatternsView.vue';
|
||||
import QueryRouter from '@/router/modules/QueryRouter';
|
||||
import MetaTagUpdater from '@/router/modules/MetaTagUpdater';
|
||||
import queryRoutes from '@/router/assets/queryRoutes';
|
||||
|
||||
const routes: Array<RouteRecordRaw> = [
|
||||
{
|
||||
@@ -347,8 +351,14 @@ const router = createRouter({
|
||||
routes,
|
||||
});
|
||||
|
||||
router.beforeEach(QueryRouter.update);
|
||||
router.beforeEach(MetaTagUpdater.update);
|
||||
router.beforeEach((
|
||||
to: RouteLocationNormalized,
|
||||
from: RouteLocationNormalized,
|
||||
next: NavigationGuardNext
|
||||
) => {
|
||||
QueryRouter.update(to, from, next, queryRoutes);
|
||||
MetaTagUpdater.update(to, from, next)
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
||||
|
||||
6
src/router/models/IQueryRoute.ts
Normal file
6
src/router/models/IQueryRoute.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
interface IQueryRoute {
|
||||
query: string;
|
||||
to: string;
|
||||
}
|
||||
|
||||
export default IQueryRoute;
|
||||
@@ -1,31 +1,18 @@
|
||||
import router from '@/router';
|
||||
import { NavigationGuardNext, RouteLocationNormalized } from "vue-router";
|
||||
import IQueryRoute from '@/router/models/IQueryRoute';
|
||||
|
||||
function updateRoute(
|
||||
to: RouteLocationNormalized,
|
||||
from: RouteLocationNormalized,
|
||||
next: NavigationGuardNext
|
||||
next: NavigationGuardNext,
|
||||
queryRoutes: Array<IQueryRoute>
|
||||
) {
|
||||
switch (to.fullPath) {
|
||||
case '/?custom':
|
||||
router.push('/custom');
|
||||
break;
|
||||
case '/?manual':
|
||||
router.push('/manual');
|
||||
break;
|
||||
case '/?diagnostic':
|
||||
router.push('/diagnostic');
|
||||
break;
|
||||
case '/?faq':
|
||||
router.push('/faq');
|
||||
break;
|
||||
case '/?about':
|
||||
router.push('/about');
|
||||
break;
|
||||
case '/?donate':
|
||||
router.push('/donate');
|
||||
break;
|
||||
}
|
||||
queryRoutes.forEach((route) => {
|
||||
if (route.query === to.fullPath) {
|
||||
router.push(route.to);
|
||||
}
|
||||
});
|
||||
return next();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user