fix: exclude inaccessible links from nav
This commit is contained in:
@@ -29,25 +29,31 @@ export function mapMenuItems(menuItems: MenuItems) {
|
|||||||
return menuItems.map((menuItem) => {
|
return menuItems.map((menuItem) => {
|
||||||
return {
|
return {
|
||||||
...menuItem,
|
...menuItem,
|
||||||
links: menuItem.links.map((link) => {
|
links: menuItem.links
|
||||||
const page = link.page.edges[0].node
|
.filter((link) => {
|
||||||
let originalUrl = undefined
|
// If content is unpublished or in other way inaccessible in Contentstack
|
||||||
if (
|
// there will be no edges, filter out those links.
|
||||||
page.__typename === PageLinkEnum.ContentPage ||
|
return !!link.page.edges[0]
|
||||||
page.__typename === PageLinkEnum.LoyaltyPage
|
})
|
||||||
) {
|
.map((link) => {
|
||||||
if (page.web.original_url) {
|
const page = link.page.edges[0].node
|
||||||
originalUrl = page.web.original_url
|
let originalUrl = undefined
|
||||||
|
if (
|
||||||
|
page.__typename === PageLinkEnum.ContentPage ||
|
||||||
|
page.__typename === PageLinkEnum.LoyaltyPage
|
||||||
|
) {
|
||||||
|
if (page.web.original_url) {
|
||||||
|
originalUrl = page.web.original_url
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
return {
|
||||||
return {
|
lang: page.system.locale,
|
||||||
lang: page.system.locale,
|
linkText: link.link_text ? link.link_text : page.title,
|
||||||
linkText: link.link_text ? link.link_text : page.title,
|
uid: page.system.uid,
|
||||||
uid: page.system.uid,
|
url: removeMultipleSlashes(`/${page.system.locale}/${page.url}`),
|
||||||
url: removeMultipleSlashes(`/${page.system.locale}/${page.url}`),
|
originalUrl,
|
||||||
originalUrl,
|
}
|
||||||
}
|
}),
|
||||||
}),
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user