"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 (
);
};
interface SettingsMembers1Props {
heading?: string;
subHeading?: string;
className?: string;
users?: User[];
}
const SettingsMembers1 = ({
heading = "اعضای فضای کاری",
subHeading = "دسترسی همکاران به سامانه مدیریت ارتباط با مشتری را مدیریت کنید و نقش هر عضو را تنظیم کنید.",
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 (
setSearchValue(e.target.value)}
/>
سطح دسترسی
{accessLevels.map((accessLevel) => (
))}
);
};
export { SettingsMembers1 };