import { Badge, Checkbox } from "@/components/retroui" import { Table, } from "@/components/retroui/Table" import { useState } from "react" const employees = [ { id: "1", name: "Alice Johnson", department: "Engineering", status: "Active", salary: "85,000", }, { id: "2", name: "Bob Smith", department: "Product", status: "Active", salary: "95,000", }, { id: "3", name: "Carol Williams", department: "Design", status: "On Leave", salary: "70,000", }, { id: "4", name: "David Brown", department: "Engineering", status: "Active", salary: "90,000", }, { id: "5", name: "Eve Davis", department: "Engineering", status: "Active", salary: "75,000", }, { id: "6", name: "Frank Wilson", department: "Marketing", status: "Inactive", salary: "80,000", }, ] export default function TableWithCheckbox() { const [selectedEmployees, setSelectedEmployees] = useState>(new Set()) const handleSelectAll = (checked: boolean) => { if (checked) { setSelectedEmployees(new Set(employees.map(emp => emp.id))) } else { setSelectedEmployees(new Set()) } } const handleSelectEmployee = (employeeId: string, checked: boolean) => { const newSelected = new Set(selectedEmployees) if (checked) { newSelected.add(employeeId) } else { newSelected.delete(employeeId) } setSelectedEmployees(newSelected) } const isAllSelected = selectedEmployees.size === employees.length return ( Name Department Status Salary {employees.map((employee) => ( handleSelectEmployee(employee.id, Boolean(checked))} /> {employee.name} {employee.department} {employee.status} $ {employee.salary} ))} Selected: {selectedEmployees.size} / {employees.length} $ {employees.reduce((total, employee) => total + Number(employee.salary.replace(',', '')), 0)}
) }