diff --git a/resources/js/Components/DashboardLayout/Sidebar/Builder.vue b/resources/js/Components/DashboardLayout/Sidebar/Builder.vue index 0278ba4..ce7af2f 100644 --- a/resources/js/Components/DashboardLayout/Sidebar/Builder.vue +++ b/resources/js/Components/DashboardLayout/Sidebar/Builder.vue @@ -11,20 +11,29 @@ export default defineComponent({ setup(props, { attrs }) { return props => { const { menus } = props + const padding = (menu, initial = 0) => menu && menu.parent_id !== null ? padding(menu.parent, initial + 8) : initial + const generate = (menu, attrs = {}) => { if (menu.childs?.length > 0) { return h(Links, { ...attrs, + padding: padding(menu), menu, childs: menu.childs, - }, menu.childs.map(child => generate(child, { class: 'pl-8' }))) + }, menu.childs.map(child => generate(child, { + padding: padding(child) + }))) } - - return h(Link, { ...attrs, menu }) + + return h(Link, { ...attrs, padding: padding(menu), menu }) } return h('div', { class: 'flex flex-col' }, menus.map(menu => generate(menu))) } }, }) - \ No newline at end of file + + + \ No newline at end of file diff --git a/resources/js/Components/DashboardLayout/Sidebar/Link.vue b/resources/js/Components/DashboardLayout/Sidebar/Link.vue index 4f698c9..bad1ba7 100644 --- a/resources/js/Components/DashboardLayout/Sidebar/Link.vue +++ b/resources/js/Components/DashboardLayout/Sidebar/Link.vue @@ -5,6 +5,7 @@ import Icon from '@/Components/Icon.vue' const { menu } = defineProps({ menu: Object, + padding: Number, }) const active = route().current(menu.route_or_url) @@ -12,7 +13,7 @@ const link = route().has(menu.route_or_url) ? route(menu.route_or_url) : menu.ro