item
Team members with roles and multiple actions
Team members with roles and multiple actions
Загрузка превью…
src/item/c-item-9.vue
<script setup lang="ts">
import { Badge } from "@/components/reui/badge"
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { Button } from "@/components/ui/button"
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger } from "@/components/ui/dropdown-menu"
import { Item, ItemActions, ItemContent, ItemDescription, ItemGroup, ItemTitle, ItemMedia } from "@/components/ui/item"
const PIXEL =
"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAUwAOw=="
const members = [
{
name: "Sarah Chen",
email: "sarah@example.com",
role: "Admin",
roleVariant: "default" as const,
},
{
name: "Alex Johnson",
email: "alex@example.com",
role: "Editor",
roleVariant: "info-light" as const,
},
{
name: "Emily Park",
email: "emily@example.com",
role: "Viewer",
roleVariant: "outline" as const,
},
]
</script>
<template>
<div class="mx-auto flex w-full max-w-md flex-col">
<ItemGroup>
<div v-for="member in members" :key="member.email">
<Item variant="outline" size="xs">
<ItemMedia>
<Avatar>
<AvatarImage :src="PIXEL" :alt="member.name" />
<AvatarFallback>
{{ member.name.split(" ").map((n) => n[0]).join("") }}
</AvatarFallback>
</Avatar>
</ItemMedia>
<ItemContent>
<ItemTitle>{{ member.name }}</ItemTitle>
<ItemDescription>{{ member.email }}</ItemDescription>
</ItemContent>
<ItemActions>
<Badge :variant="member.roleVariant" size="sm">
{{ member.role }}
</Badge>
<DropdownMenu>
<DropdownMenuTrigger as-child>
<Button variant="ghost" size="icon" class="ml-1 size-7">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="1" />
<circle cx="19" cy="12" r="1" />
<circle cx="5" cy="12" r="1" />
</svg>
<span class="sr-only">Actions</span>
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuItem>Change Role</DropdownMenuItem>
<DropdownMenuItem>View Profile</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem variant="destructive">
Remove
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</ItemActions>
</Item>
</div>
</ItemGroup>
</div>
</template>
Установка
npx shadcn-vue@latest add https://revueui.rootapi.dev/r/c-item-9.jsonЗависимости реестра
Источник: порт из ReUI (Keenthemes, MIT)