diff --git a/www/apps/book/app/page.tsx b/www/apps/book/app/page.tsx index ec8ce9c930..aed9581c0d 100644 --- a/www/apps/book/app/page.tsx +++ b/www/apps/book/app/page.tsx @@ -38,8 +38,8 @@ const Homepage = () => { diff --git a/www/packages/docs-ui/src/components/Menu/SubMenu/index.tsx b/www/packages/docs-ui/src/components/Menu/SubMenu/index.tsx index 81d4b953b9..ca5fe40c70 100644 --- a/www/packages/docs-ui/src/components/Menu/SubMenu/index.tsx +++ b/www/packages/docs-ui/src/components/Menu/SubMenu/index.tsx @@ -5,6 +5,7 @@ import { Menu, MenuProps } from ".." import clsx from "clsx" import { MenuItemSubMenu } from "types" import { ChevronRight } from "@medusajs/icons" +import Link from "next/link" type MenuSubMenuProps = Pick & { item: MenuItemSubMenu @@ -12,13 +13,16 @@ type MenuSubMenuProps = Pick & { export const MenuSubMenu = ({ item, itemsOnClick }: MenuSubMenuProps) => { const [open, setOpen] = useState(false) + + const Component = item.link ? Link : "span" + return (
setOpen(true)} onMouseLeave={() => setOpen(false)} > - { "text-medusa-fg-base justify-between" )} onClick={() => itemsOnClick?.(item)} + href={item.link || "#"} > {item.title} - + {open && (
diff --git a/www/packages/docs-ui/src/constants.tsx b/www/packages/docs-ui/src/constants.tsx index f01605a801..170c92a669 100644 --- a/www/packages/docs-ui/src/constants.tsx +++ b/www/packages/docs-ui/src/constants.tsx @@ -16,14 +16,195 @@ export const navDropdownItems: NavigationItem[] = [ title: "Product", children: [ { - type: "link", - title: "Commerce Modules", - link: "/resources/commerce-modules", + type: "sub-menu", + title: "Framework", + link: "/learn/fundamentals/framework", + items: [ + { + type: "link", + title: "API Routes", + link: "/learn/fundamentals/api-routes", + }, + { + type: "link", + title: "Data Models", + link: "/learn/fundamentals/data-models", + }, + { + type: "link", + title: "Events and Subscribers", + link: "/learn/fundamentals/events-and-subscribers", + }, + { + type: "link", + title: "Medusa Container", + link: "/learn/fundamentals/medusa-container", + }, + { + type: "link", + title: "Modules", + link: "/learn/fundamentals/modules", + }, + { + type: "link", + title: "Module Links", + link: "/learn/fundamentals/module-links", + }, + { + type: "link", + title: "Plugins", + link: "/learn/fundamentals/plugins", + }, + { + type: "link", + title: "Query", + link: "/learn/fundamentals/module-links/query", + }, + { + type: "link", + title: "Scheduled Jobs", + link: "/learn/fundamentals/scheduled-jobs", + }, + { + type: "link", + title: "Workflows", + link: "/learn/fundamentals/workflows", + }, + ], }, { - type: "link", + type: "sub-menu", + title: "Commerce Modules", + link: "/resources/commerce-modules", + items: [ + { + type: "link", + title: "API Key", + link: "/resources/commerce-modules/api-key", + }, + { + type: "link", + title: "Auth", + link: "/resources/commerce-modules/auth", + }, + { + type: "link", + title: "Cart", + link: "/resources/commerce-modules/cart", + }, + { + type: "link", + title: "Currency", + link: "/resources/commerce-modules/currency", + }, + { + type: "link", + title: "Customer", + link: "/resources/commerce-modules/customer", + }, + { + type: "link", + title: "Fulfillment", + link: "/resources/commerce-modules/fulfillment", + }, + { + type: "link", + title: "Inventory", + link: "/resources/commerce-modules/inventory", + }, + { + type: "link", + title: "Order", + link: "/resources/commerce-modules/order", + }, + { + type: "link", + title: "Payment", + link: "/resources/commerce-modules/payment", + }, + { + type: "link", + title: "Pricing", + link: "/resources/commerce-modules/pricing", + }, + { + type: "link", + title: "Product", + link: "/resources/commerce-modules/product", + }, + { + type: "link", + title: "Promotion", + link: "/resources/commerce-modules/promotion", + }, + { + type: "link", + title: "Region", + link: "/resources/commerce-modules/region", + }, + { + type: "link", + title: "Sales Channel", + link: "/resources/commerce-modules/sales-channel", + }, + { + type: "link", + title: "Stock Location", + link: "/resources/commerce-modules/stock-location", + }, + { + type: "link", + title: "Store", + link: "/resources/commerce-modules/store", + }, + { + type: "link", + title: "Tax", + link: "/resources/commerce-modules/tax", + }, + { + type: "link", + title: "User", + link: "/resources/commerce-modules/user", + }, + ], + }, + { + type: "sub-menu", title: "Architectural Modules", link: "/resources/architectural-modules", + items: [ + { + type: "link", + title: "Cache", + link: "/resources/architectural-modules/cache", + }, + { + type: "link", + title: "Event", + link: "/resources/architectural-modules/event", + }, + { + type: "link", + title: "File", + link: "/resources/architectural-modules/file", + }, + { + type: "link", + title: "Locking", + link: "/resources/architectural-modules/locking", + }, + { + type: "link", + title: "Notification", + link: "/resources/architectural-modules/notification", + }, + { + type: "link", + title: "Workflow Engine", + link: "/resources/architectural-modules/workflow-engine", + }, + ], }, ], }, diff --git a/www/packages/types/src/menu.ts b/www/packages/types/src/menu.ts index cc3e56c1f2..03a78b1856 100644 --- a/www/packages/types/src/menu.ts +++ b/www/packages/types/src/menu.ts @@ -26,6 +26,7 @@ export type MenuItemSubMenu = { type: "sub-menu" items: MenuItem[] title: string + link?: string } export type MenuItem =