Item/item-interactive-

PreviousNext

A item/item-interactive- example

Docs
shadcnblocksblock

Preview

Loading preview…
code/example/item/item-interactive-2.tsx
"use client";

import { ChevronDownIcon } from "lucide-react";

import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
import { Button } from "@/components/ui/button";
import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu";
import {
  Item,
  ItemContent,
  ItemDescription,
  ItemMedia,
  ItemTitle,
} from "@/components/ui/item";

export const title = "Item in Dropdown";

const people = [
  {
    username: "haydenbleasel",
    avatar: "https://github.com/haydenbleasel.png",
    email: "h****n@vercel.com",
  },
  {
    username: "shadcn",
    avatar: "https://github.com/shadcn.png",
    email: "s****n@vercel.com",
  },
  {
    username: "rauchg",
    avatar: "https://github.com/rauchg.png",
    email: "r****g@vercel.com",
  },
];

const Example = () => (
  <div className="flex min-h-64 w-full max-w-md flex-col items-center gap-6">
    <DropdownMenu>
      <DropdownMenuTrigger asChild>
        <Button className="w-fit" size="sm" variant="outline">
          Select <ChevronDownIcon />
        </Button>
      </DropdownMenuTrigger>
      <DropdownMenuContent align="end" className="w-72 [--radius:0.65rem]">
        {people.map((person) => (
          <DropdownMenuItem className="p-0" key={person.username}>
            <Item className="w-full p-2" size="sm">
              <ItemMedia>
                <Avatar className="size-8">
                  <AvatarImage src={person.avatar} />
                  <AvatarFallback>{person.username.charAt(0)}</AvatarFallback>
                </Avatar>
              </ItemMedia>
              <ItemContent className="gap-0.5">
                <ItemTitle>{person.username}</ItemTitle>
                <ItemDescription>{person.email}</ItemDescription>
              </ItemContent>
            </Item>
          </DropdownMenuItem>
        ))}
      </DropdownMenuContent>
    </DropdownMenu>
  </div>
);

export default Example;

Installation

npx shadcn@latest add @shadcnblocks/item-item-interactive-2

Usage

import { ItemItemInteractive2 } from "@/components/item-item-interactive-2"
<ItemItemInteractive2 />