"use client"; import { Mail, MoreHorizontal, Shield, UserPlus } from "lucide-react"; import { useState } from "react"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { cn } from "@/lib/utils"; interface Member { id: string; name: string; email: string; role: "admin" | "member" | "viewer"; avatar?: string; joinedAt: string; } interface SettingsMembers3Props { heading?: string; description?: string; members?: Member[]; className?: string; } const roleColors = { admin: "bg-amber-100 text-amber-800 dark:bg-amber-900/30 dark:text-amber-400", member: "bg-blue-100 text-blue-800 dark:bg-blue-900/30 dark:text-blue-400", viewer: "bg-zinc-100 text-zinc-700 dark:bg-zinc-800 dark:text-zinc-300", }; const getRoleLabel = (role: Member["role"]) => { const labels: Record = { admin: "مدیر", member: "عضو", viewer: "بیننده", }; return labels[role]; }; const SettingsMembers3 = ({ heading = "اعضای تیم", description = "اعضای تیم و سطح دسترسی آن‌ها را مدیریت کنید.", members = [ { id: "1", name: "مریم چناری", email: "sarah.chen@company.io", role: "admin", avatar: "/block-media/shadcnblocks/block/avatar/avatar2.jpg", joinedAt: "ژانویه ۲۲۴", }, { id: "2", name: "مهدی جعفری", email: "marcus.j@company.io", role: "member", avatar: "/block-media/shadcnblocks/block/avatar/avatar5.jpg", joinedAt: "مارس ۲۲۴", }, { id: "3", name: "Elena محمدی", email: "elena.r@company.io", role: "member", avatar: "/block-media/shadcnblocks/block/avatar/avatar4.jpg", joinedAt: "آوریل ۲۲۴", }, { id: "4", name: "داوود Park", email: "david.p@company.io", role: "viewer", joinedAt: "ژوئن ۲۲۴", }, { id: "5", name: "Aisha Patel", email: "aisha.p@company.io", role: "member", avatar: "/block-media/shadcnblocks/block/avatar/avatar6.jpg", joinedAt: "اوت ۲۲۴", }, { id: "6", name: "Thomas Wright", email: "thomas.w@company.io", role: "viewer", avatar: "/block-media/shadcnblocks/block/avatar/avatar7.jpg", joinedAt: "اکتبر ۲۲۴", }, ], className, }: SettingsMembers3Props) => { const [isInviteOpen, setIsInviteOpen] = useState(false); return (

{heading}

{description}

دعوت عضو تیم دعوتنامه‌ای برای پیوستن به تیم ارسال کنید.
{ e.preventDefault(); setIsInviteOpen(false); }} className="space-y-4" >
{members.map((member) => (
{member.name .split(" ") .map((n) => n[0]) .join("")}
{member.name} {getRoleLabel(member.role)}
تغییر نقش مشاهده فعالیت حذف عضو
{member.email}

عضویت از {member.joinedAt}

))}
); }; export { SettingsMembers3 };