"use client"; import { useState } from "react"; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from "@/components/ui/table"; import { Button } from "@/components/ui/button"; import { Checkbox } from "@/components/ui/checkbox"; import { ScrollArea } from "@/components/ui/scroll-area"; import { UpdateMemberDialog } from "./UpdateMemberDialog"; import { AddMemberDialog } from "./AddMemberDialog"; interface Member { user_id: string; firstname: string; lastname: string; email: string; password: string; phone: string; role: string; } const initialMembers: Member[] = [ // Add some sample data here { user_id: "1", firstname: "John", lastname: "Doe", email: "john@example.com", password: "********", phone: "1234567890", role: "User", }, { user_id: "1", firstname: "John", lastname: "Doe", email: "john@example.com", password: "********", phone: "1234567890", role: "User", }, { user_id: "1", firstname: "John", lastname: "Doe", email: "john@example.com", password: "********", phone: "1234567890", role: "User", }, { user_id: "1", firstname: "John", lastname: "Doe", email: "john@example.com", password: "********", phone: "1234567890", role: "User", }, { user_id: "1", firstname: "John", lastname: "Doe", email: "john@example.com", password: "********", phone: "1234567890", role: "User", }, { user_id: "1", firstname: "John", lastname: "Doe", email: "john@example.com", password: "********", phone: "1234567890", role: "User", }, { user_id: "1", firstname: "John", lastname: "Doe", email: "john@example.com", password: "********", phone: "1234567890", role: "User", }, // Add more sample members... ]; export function MembersTable() { const [members, setMembers] = useState(initialMembers); const [selectMode, setSelectMode] = useState(false); const [selectedMembers, setSelectedMembers] = useState([]); const [updateDialogOpen, setUpdateDialogOpen] = useState(false); const [addDialogOpen, setAddDialogOpen] = useState(false); const [currentMember, setCurrentMember] = useState(null); const toggleSelectMode = () => { setSelectMode(!selectMode); setSelectedMembers([]); }; const toggleMemberSelection = (userId: string) => { setSelectedMembers((prev) => prev.includes(userId) ? prev.filter((id) => id !== userId) : [...prev, userId], ); }; const handleUpdate = (member: Member) => { setCurrentMember(member); setUpdateDialogOpen(true); }; const handleDelete = (userId: string) => { setMembers((prev) => prev.filter((member) => member.user_id !== userId), ); }; const handleAdd = (newMember: Member) => { setMembers((prev) => [ ...prev, { ...newMember, user_id: String(prev.length + 1) }, ]); }; return (
{selectMode && ( Select )} User ID First Name Last Name Email Password Phone Role Actions {members.map((member) => ( {selectMode && ( toggleMemberSelection( member.user_id, ) } /> )} {member.user_id} {member.firstname} {member.lastname} {member.email} {member.password} {member.phone} {member.role} ))}
setUpdateDialogOpen(false)} member={currentMember} onUpdate={(updatedMember) => { setMembers((prev) => prev.map((m) => m.user_id === updatedMember.user_id ? updatedMember : m, ), ); setUpdateDialogOpen(false); }} /> setAddDialogOpen(false)} onAdd={handleAdd} />
); }