mirror of
https://github.com/vercel/commerce.git
synced 2025-09-14 03:40:16 +00:00
.github
.vscode
app
components
cart
layout
dynamic-content-manager
footer
header
desktop-menu
mobile-menu
modal.tsx
open-mobile-menu.tsx
search
user-menu
header-root.tsx
header.tsx
index.ts
modules
product
search
ui
loading-dots.tsx
preview-suspense.tsx
price.tsx
prose.tsx
helpers
lib
messages
public
.env.example
.eslintrc.js
.gitignore
.npmrc
.nvmrc
.prettierignore
README.md
components.json
i18n-config.ts
license.md
middleware.ts
next.config.js
package.json
playwright.config.ts
pnpm-lock.yaml
postcss.config.js
prettier.config.js
tailwind.config.js
tsconfig.json
43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
'use client';
|
|
|
|
import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from '@/components/ui/sheet';
|
|
import Link from 'next-intl/link';
|
|
import { useState } from 'react';
|
|
import OpenMobileMenu from './open-mobile-menu';
|
|
|
|
interface MobileMenuModalProps {
|
|
items: [];
|
|
}
|
|
|
|
export default function MobileMenuModal({ items }: MobileMenuModalProps) {
|
|
const [isOpen, setIsOpen] = useState(false);
|
|
|
|
return (
|
|
<>
|
|
<Sheet open={isOpen} onOpenChange={() => setIsOpen(!isOpen)}>
|
|
<SheetTrigger aria-label="Open menu">
|
|
<OpenMobileMenu />
|
|
</SheetTrigger>
|
|
<SheetContent side="left" className="bg-app">
|
|
<SheetHeader>
|
|
<SheetTitle className="text-lg font-semibold">Menu</SheetTitle>
|
|
</SheetHeader>
|
|
<div className="mt-4">
|
|
<ul className="flex flex-col gap-2">
|
|
{items.map((item: { title: string; slug: string }, i: number) => {
|
|
return (
|
|
<li key={i}>
|
|
<Link onClick={() => setIsOpen(false)} href={`${item.slug}`}>
|
|
{item.title}
|
|
</Link>
|
|
</li>
|
|
);
|
|
})}
|
|
</ul>
|
|
</div>
|
|
</SheetContent>
|
|
</Sheet>
|
|
</>
|
|
);
|
|
}
|