mirror of https://github.com/Lissy93/dashy.git
⚡ Improved props for router
This commit is contained in:
parent
61761e750a
commit
7706041d61
|
@ -17,7 +17,7 @@ import ConfigAccumulator from '@/utils/ConfigAccumalator';
|
||||||
|
|
||||||
// Import helper functions, config data and defaults
|
// Import helper functions, config data and defaults
|
||||||
import { isAuthEnabled, isLoggedIn, isGuestAccessEnabled } from '@/utils/Auth';
|
import { isAuthEnabled, isLoggedIn, isGuestAccessEnabled } from '@/utils/Auth';
|
||||||
import { makePageSlug } from '@/utils/ConfigHelpers';
|
import { makePageSlug, makePageName } from '@/utils/ConfigHelpers';
|
||||||
import { metaTagData, startingView, routePaths } from '@/utils/defaults';
|
import { metaTagData, startingView, routePaths } from '@/utils/defaults';
|
||||||
import ErrorHandler from '@/utils/ErrorHandler';
|
import ErrorHandler from '@/utils/ErrorHandler';
|
||||||
|
|
||||||
|
@ -77,23 +77,34 @@ const makeMultiPageRoutes = (userPages) => {
|
||||||
if (!userPages) return [];
|
if (!userPages) return [];
|
||||||
const multiPageRoutes = [];
|
const multiPageRoutes = [];
|
||||||
userPages.forEach((page) => {
|
userPages.forEach((page) => {
|
||||||
|
// Props to be passed to home mixin
|
||||||
|
const subPageInfo = {
|
||||||
|
subPageInfo: {
|
||||||
|
confPath: makeSubConfigPath(page.path),
|
||||||
|
pageId: makePageName(page.name),
|
||||||
|
pageTitle: page.name,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
// Create route for default homepage
|
||||||
multiPageRoutes.push({
|
multiPageRoutes.push({
|
||||||
path: makePageSlug(page.name, 'home'),
|
path: makePageSlug(page.name, 'home'),
|
||||||
name: `${page.name}-home`,
|
name: `${subPageInfo.pageId}-home`,
|
||||||
component: Home,
|
component: Home,
|
||||||
props: { confPath: makeSubConfigPath(page.path) },
|
props: subPageInfo,
|
||||||
});
|
});
|
||||||
|
// Create route for the workspace view
|
||||||
multiPageRoutes.push({
|
multiPageRoutes.push({
|
||||||
path: makePageSlug(page.name, 'workspace'),
|
path: makePageSlug(page.name, 'workspace'),
|
||||||
name: `${page.name}-workspace`,
|
name: `${subPageInfo.pageId}-workspace`,
|
||||||
component: () => import('./views/Workspace.vue'),
|
component: () => import('./views/Workspace.vue'),
|
||||||
props: { confPath: makeSubConfigPath(page.path) },
|
props: subPageInfo,
|
||||||
});
|
});
|
||||||
|
// Create route for the minimal view
|
||||||
multiPageRoutes.push({
|
multiPageRoutes.push({
|
||||||
path: makePageSlug(page.name, 'minimal'),
|
path: makePageSlug(page.name, 'minimal'),
|
||||||
name: `${page.name}-minimal`,
|
name: `${subPageInfo.pageId}-minimal`,
|
||||||
component: () => import('./views/Minimal.vue'),
|
component: () => import('./views/Minimal.vue'),
|
||||||
props: { confPath: makeSubConfigPath(page.path) },
|
props: subPageInfo,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
return multiPageRoutes;
|
return multiPageRoutes;
|
||||||
|
|
|
@ -10,9 +10,19 @@ import {
|
||||||
import ErrorHandler from '@/utils/ErrorHandler';
|
import ErrorHandler from '@/utils/ErrorHandler';
|
||||||
import ConfigSchema from '@/utils/ConfigSchema.json';
|
import ConfigSchema from '@/utils/ConfigSchema.json';
|
||||||
|
|
||||||
|
/* Given a page name, converts to lowercase, removes special characters and extension */
|
||||||
|
export const makePageName = (pageName) => {
|
||||||
|
if (!pageName) return 'unnamed-page';
|
||||||
|
return pageName
|
||||||
|
.toLowerCase()
|
||||||
|
.replaceAll(' ', '-')
|
||||||
|
.replace('.yml', '')
|
||||||
|
.replace(/[^\w\s-]/gi, '');
|
||||||
|
};
|
||||||
|
|
||||||
/* For a given sub-page, and page type, return the URL */
|
/* For a given sub-page, and page type, return the URL */
|
||||||
export const makePageSlug = (pageName, pageType) => {
|
export const makePageSlug = (pageName, pageType) => {
|
||||||
const formattedName = pageName.toLowerCase().replaceAll(' ', '-').replaceAll('.yml', '');
|
const formattedName = makePageName(pageName);
|
||||||
return `/${pageType}/${formattedName}`;
|
return `/${pageType}/${formattedName}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue