chamesu
Version:
This package contains all packages of the chat application.
40 lines (32 loc) • 1.14 kB
text/typescript
/*
* Copyright (c) 2022.
* Author Peter Placzek (tada5hi)
* For the full copyright and license information,
* view the LICENSE file that was distributed with this source code.
*/
import {LayoutNavigationDefaultId} from "~/config/layout";
import {Context, Middleware} from "@nuxt/types";
const layoutMiddleware : Middleware = ({ store, route } : Context) => {
let key : string = 'navigationId';
let navigationId : string | undefined;
if(route.meta) {
for (let i = 0; i < route.meta.length; i++) {
if (key in route.meta[i] && route.meta[i][key]) {
navigationId = route.meta[i][key]
}
}
}
if(typeof navigationId === 'undefined') {
for(let i=0; i< route.matched.length; i++) {
if (key in route.matched[i]) {
// @ts-ignore
navigationId = route.matched[i][key];
}
}
}
if(typeof navigationId === 'undefined') {
navigationId = LayoutNavigationDefaultId;
}
return store.dispatch('layout/selectNavigation', navigationId).then(r => r)
}
export default layoutMiddleware;