From f90803919822f35585f30bcbb695884e392442c3 Mon Sep 17 00:00:00 2001 From: Alex Malkevich Date: Thu, 28 Mar 2019 19:36:02 +0100 Subject: [PATCH] fix(menu): do not skip children if not generated in prev step --- .../src/lib/dynamic-menu.service.ts | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/projects/dynamic-menu/src/lib/dynamic-menu.service.ts b/projects/dynamic-menu/src/lib/dynamic-menu.service.ts index 223ce87..86d3dfc 100644 --- a/projects/dynamic-menu/src/lib/dynamic-menu.service.ts +++ b/projects/dynamic-menu/src/lib/dynamic-menu.service.ts @@ -343,11 +343,15 @@ export class DynamicMenuService implements OnDestroy { res.node, children, cb, - ) as T[]; - - return res.acc - ? [...res.acc, ...childrenInRoot] - : [...acc, ...childrenInRoot]; + ) as T[] | undefined; + + if (childrenInRoot) { + return res.acc + ? [...res.acc, ...childrenInRoot] + : [...acc, ...childrenInRoot]; + } else { + return res.acc ? res.acc : acc; + } } } else if (isConfigMenuItem(res.node)) { this.visitMenuChildren(res.node, children, cb); @@ -369,14 +373,14 @@ export class DynamicMenuService implements OnDestroy { children: AnyMenuRoute[], cb: MenuVisitor, parentNode: AnyMenuRoute = node, - ): AnyMenuRoute[] { - const newChildren = this.visitMenu(children, cb, parentNode) as any; + ): AnyMenuRoute[] | undefined { + const newChildren = this.visitMenu(children, cb, parentNode); - if (!getMenuChildren(node) && newChildren) { - setMenuChildren(node, newChildren); + if (!getMenuChildren(node) && newChildren.length) { + setMenuChildren(node, newChildren as DynamicMenuRouteConfig[]); } - return newChildren || []; + return newChildren.length ? newChildren : undefined; } private combineMenuWithCustom(