diff --git a/components/MegaMenu/mega-meu.tsx b/components/MegaMenu/mega-meu.tsx new file mode 100644 index 000000000..a3140fd80 --- /dev/null +++ b/components/MegaMenu/mega-meu.tsx @@ -0,0 +1,20 @@ +import { MenuItem } from '../../lib/shopify/types'; +import MenuItemComponent from './menu-item-component'; + +type MegaMenuProps = { + menu: MenuItem[]; +}; + +const MegaMenu = ({ menu }: MegaMenuProps) => { + return ( +
+ +
+ ); +}; + +export default MegaMenu; diff --git a/components/MegaMenu/menu-item-component.tsx b/components/MegaMenu/menu-item-component.tsx new file mode 100644 index 000000000..ed3d7dfe6 --- /dev/null +++ b/components/MegaMenu/menu-item-component.tsx @@ -0,0 +1,38 @@ +import Link from 'next/link'; +import { MenuItem } from '../../lib/shopify/types'; + +type MenuItemProps = { + item: MenuItem; + isSubMenu?: boolean; +}; + +const MenuItemComponent = ({ item, isSubMenu = false }: MenuItemProps) => { + return ( +
  • + + {item.title} + + {item.items.length > 0 && ( + + )} + {isSubMenu && item.items.length > 0 && ( + + )} +
  • + ); +}; + +export default MenuItemComponent; diff --git a/components/layout/navbar/index.tsx b/components/layout/navbar/index.tsx index 3bc9b5a26..d623b9e9b 100644 --- a/components/layout/navbar/index.tsx +++ b/components/layout/navbar/index.tsx @@ -1,9 +1,8 @@ +import MegaMenu from 'components/MegaMenu/mega-meu'; import Cart from 'components/cart'; import OpenCart from 'components/cart/open-cart'; import LogoSquare from 'components/logo-square'; -import { getMenu } from 'lib/shopify'; -import { Menu } from 'lib/shopify/types'; -import { RemoveTheDomainFromUrl } from 'lib/utils'; +import { getMegaMenu } from 'lib/shopify'; import Link from 'next/link'; import { Suspense } from 'react'; import MobileMenu from './mobile-menu'; @@ -11,49 +10,41 @@ import Search, { SearchSkeleton } from './search'; const { SITE_NAME } = process.env; export default async function Navbar() { - const menu = await getMenu('next-js-frontend-header-menu'); + const menu = await getMegaMenu('next-js-frontend-header-menu'); return ( -