"use client"; import { CornerDownLeft, Search, SlidersHorizontal, UserRoundPlus, } from "lucide-react"; import { useMemo, useState } from "react"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { Checkbox } from "@/components/ui/checkbox"; import { Dialog, DialogContent, DialogFooter, DialogTitle, DialogTrigger, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Popover, PopoverContent, PopoverTrigger, } from "@/components/ui/popover"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { cn } from "@/lib/utils"; interface User { name?: string; email: string; accessLevel: string; status?: string; } interface UsersTableProps { users: User[]; } const UsersTable = ({ users }: UsersTableProps) => { return ( عضو سطح دسترسی {users.map((user) => ( {user.name ? user.name.charAt(0) : "?"} {user.name} {user.email} {user.accessLevel} {user.status === "دعوت در انتظار" && ( {user.status} )} ))}
); }; const InviteUserForm = () => { return ( دعوت عضو جدید
e.preventDefault()} className="flex flex-col gap-4 bg-muted pt-4" >
); }; interface SettingsMembers1Props { heading?: string; subHeading?: string; className?: string; users?: User[]; } const SettingsMembers1 = ({ heading = "اعضای فضای کاری", subHeading = "دسترسی همکاران به CRM را مدیریت کنید و نقش هر عضو را تنظیم کنید.", users = [ { name: "الهام حسینی", email: "emily.w@acme.io", accessLevel: "مالک فضای کاری", }, { email: "john.d@acme.io", accessLevel: "فروشنده", status: "دعوت در انتظار", }, { name: "مهدی پارسا", email: "michael.p@acme.io", accessLevel: "فقط مشاهده", }, { email: "lisa.t@acme.io", accessLevel: "فروشنده", status: "دعوت در انتظار", }, ], className, }: SettingsMembers1Props) => { const [searchValue, setSearchValue] = useState(""); const [selectedAccessLevels, setSelectedAccessLevels] = useState( [], ); const accessLevels = useMemo(() => { return Array.from(new Set(users.map((user) => user.accessLevel))); }, [users]); const filteredUsers = useMemo(() => { return users.filter((user) => { const isAccessLevelSelected = selectedAccessLevels.length === 0 || selectedAccessLevels.includes(user.accessLevel); const isSearchMatch = user.name?.toLowerCase().includes(searchValue.toLowerCase()) || user.email.toLowerCase().includes(searchValue.toLowerCase()); return isAccessLevelSelected && isSearchMatch; }); }, [users, selectedAccessLevels, searchValue]); const toggleAccessLevel = (accessLevel: string) => { setSelectedAccessLevels((prev) => { if (prev.includes(accessLevel)) { return prev.filter((level) => level !== accessLevel); } return [...prev, accessLevel]; }); }; return (

{heading}

{subHeading}

setSearchValue(e.target.value)} />

سطح دسترسی

{accessLevels.map((accessLevel) => ( ))}
); }; export { SettingsMembers1 };