From 70f0a906d396d41cc85675e04544a818dd9a5a78 Mon Sep 17 00:00:00 2001 From: Michael Zetterberg Date: Thu, 20 Jun 2024 09:29:12 +0200 Subject: [PATCH] fix: exclude inaccessible links from nav --- .../contentstack/myPages/navigation/query.ts | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/server/routers/contentstack/myPages/navigation/query.ts b/server/routers/contentstack/myPages/navigation/query.ts index 63855e51a..2b4c1b543 100644 --- a/server/routers/contentstack/myPages/navigation/query.ts +++ b/server/routers/contentstack/myPages/navigation/query.ts @@ -29,25 +29,31 @@ export function mapMenuItems(menuItems: MenuItems) { return menuItems.map((menuItem) => { return { ...menuItem, - links: menuItem.links.map((link) => { - const page = link.page.edges[0].node - let originalUrl = undefined - if ( - page.__typename === PageLinkEnum.ContentPage || - page.__typename === PageLinkEnum.LoyaltyPage - ) { - if (page.web.original_url) { - originalUrl = page.web.original_url + links: menuItem.links + .filter((link) => { + // If content is unpublished or in other way inaccessible in Contentstack + // there will be no edges, filter out those links. + return !!link.page.edges[0] + }) + .map((link) => { + const page = link.page.edges[0].node + let originalUrl = undefined + if ( + page.__typename === PageLinkEnum.ContentPage || + page.__typename === PageLinkEnum.LoyaltyPage + ) { + if (page.web.original_url) { + originalUrl = page.web.original_url + } } - } - return { - lang: page.system.locale, - linkText: link.link_text ? link.link_text : page.title, - uid: page.system.uid, - url: removeMultipleSlashes(`/${page.system.locale}/${page.url}`), - originalUrl, - } - }), + return { + lang: page.system.locale, + linkText: link.link_text ? link.link_text : page.title, + uid: page.system.uid, + url: removeMultipleSlashes(`/${page.system.locale}/${page.url}`), + originalUrl, + } + }), } }) }