import { useState } from "react"; import { Search, Plus, MoreHorizontal, Shield, User, Mail, Clock } from "lucide-react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Card, CardContent } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; const members = [ { id: "1", name: "John Doe", email: "john@example.com", role: "admin", status: "active", lastActive: "2 hours ago", avatar: null, initials: "JD", }, { id: "2", name: "Jane Smith", email: "jane@example.com", role: "member", status: "active", lastActive: "5 minutes ago", avatar: null, initials: "JS", }, { id: "3", name: "Bob Wilson", email: "bob@example.com", role: "member", status: "disabled", lastActive: "3 days ago", avatar: null, initials: "BW", }, ]; const pendingInvites = [ { id: "1", email: "alice@example.com", role: "member", sentAt: "2 days ago", expiresAt: "5 days", }, { id: "2", email: "charlie@example.com", role: "admin", sentAt: "1 hour ago", expiresAt: "7 days", }, ]; export default function MembersPage() { const [search, setSearch] = useState(""); return (

Members

Manage organization members and invitations

Members ({members.length}) Pending Invites ({pendingInvites.length})
setSearch(e.target.value)} className="pl-10 max-w-sm" />
{members.map((member) => (
{member.initials}

{member.name}

{member.role === "admin" && ( Admin )} {member.status === "disabled" && ( Disabled )}

{member.email}

Active {member.lastActive}

View profile Change role {member.status === "active" ? "Disable" : "Enable"} account
))}
{pendingInvites.map((invite) => (

{invite.email}

Invited as {invite.role} Expires in {invite.expiresAt}
))}
); }