Files
medusa-store/www/packages/docs-ui/src/utils/get-navbar-items.ts
2025-04-17 18:06:46 +03:00

56 lines
1.1 KiB
TypeScript

import { MenuItem, NavigationItem } from "types"
import { navDropdownItems } from ".."
type Options = {
basePath: string
}
export function getNavDropdownItems({ basePath }: Options): NavigationItem[] {
return navDropdownItems.map((item) => {
const newItem = {
...item,
}
if (newItem.link) {
newItem.link = `${basePath}${newItem.link}`
}
if (newItem.type === "dropdown") {
newItem.children = normalizeMenuItems({
basePath,
items: newItem.children,
})
}
return newItem
})
}
export function normalizeMenuItems({
basePath,
items,
}: {
basePath: string
items: MenuItem[]
}): MenuItem[] {
return items.map((item) => {
const newItem = { ...item }
if (newItem.type !== "link" && newItem.type !== "sub-menu") {
return newItem
}
if (newItem.link) {
newItem.link = `${basePath}${newItem.link}`
}
if (newItem.type === "sub-menu") {
newItem.items = normalizeMenuItems({
basePath,
items: newItem.items,
})
}
return newItem
})
}