Files
yovision/Sense/ui/src/layout/navigation.js
T

19 lines
740 B
JavaScript

function buildNavigation(routes, permissions = []) {
const layout = routes
.filter((route) => route.path === '/' && Array.isArray(route.children) && route.children.length > 0)
.sort((left, right) => right.children.length - left.children.length)[0]
return (layout?.children || [])
.filter((route) => route.meta?.title && !route.meta?.hidden)
.filter((route) => !route.meta?.permission || permissions.includes(route.meta.permission))
.map((route) => ({
path: route.path ? `/${route.path}`.replace('//', '/') : '/',
title: route.meta.title,
icon: route.meta.icon,
order: route.meta.order || 0
}))
.sort((left, right) => left.order - right.order)
}
module.exports = { buildNavigation }