import { PageLinkEnum } from "@/types/requests/myPages/navigation" import type { NavigationItem, MenuItem, PageLink, } from "@/types/requests/myPages/navigation" function getURL(node: PageLink) { switch (node.__typename) { case PageLinkEnum.ContentPage: return node.web.url case PageLinkEnum.AccountPage: case PageLinkEnum.LoyaltyPage: return node.url } } export function mapMenuItems(navigationItems: NavigationItem[]) { return navigationItems.map(({ item }): MenuItem => { const { node } = item.pageConnection.edges[0] return { linkText: item.link_text || node.title, lang: node.system.locale, subItems: item.sub_items ? mapMenuItems(item.sub_items) : null, uid: node.system.uid, url: `/${node.system.locale}/${getURL(node)}`.replaceAll("//+", "/"), } }) }