옆에서 나오는 페이지를 Sheet 라고 하며, 아래 코드로 설치하면 components/sheet.tsx 파일이 추가됩니다. 주로 Mobile 사이즈의 Menu로 사용하므로 별도의 파일로 만드는 것이 편리 함. /MobileMenu.tsx
npx shadcn-ui@latest add sheet
import {
Sheet,
SheetContent,
SheetDescription,
SheetHeader,
SheetTitle,
SheetTrigger,
} from "@/components/ui/sheet"
<Sheet>
<SheetTrigger>Open</SheetTrigger>
<SheetContent>
<SheetHeader>
<SheetTitle>Are you absolutely sure?</SheetTitle>
<SheetDescription>
This action cannot be undone. This will permanently delete your account
and remove your data from our servers.
</SheetDescription>
</SheetHeader>
</SheetContent>
</Sheet>
or
<Sheet>
<SheetTrigger asChild>
<Button variant="outline" size="icon">
<Menu className="h-4 w-4" />
</Button>
</SheetTrigger>
<SheetContent>
<div className="mt-5 flex px-2 space-y-1 flex-col">
{navigationItems.map((item, index) => (
<Link
key={index}
href={item.href}
className={cn(
location === item.href
? "bg-muted"
: "hover:bg-muted hover:bg-opacity-75",
"group flex items-center px-2 py-2 text-md font-semibold rounded-md"
)}
>
{item.name}
</Link>
))}
</div>
<SheetFooter className="mt-5">
<SheetClose asChild>
<Button type="submit">Close</Button>
</SheetClose>
</SheetFooter>
</SheetContent>
</Sheet>