Home / File/ checkbox-table.tsx — ui Source File

checkbox-table.tsx — ui Source File

Architecture documentation for checkbox-table.tsx, a tsx file in the ui codebase. 3 imports, 0 dependents.

File tsx DocumentationAtlas ContentSourcing 3 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  4edd85ed_c078_b7b5_81da_6c03870515cf["checkbox-table.tsx"]
  1d141819_425e_b5fd_4c8e_32f7c6a42cf2["react"]
  4edd85ed_c078_b7b5_81da_6c03870515cf --> 1d141819_425e_b5fd_4c8e_32f7c6a42cf2
  0e5204ae_c5d7_cc02_3599_620cb7011a92["checkbox"]
  4edd85ed_c078_b7b5_81da_6c03870515cf --> 0e5204ae_c5d7_cc02_3599_620cb7011a92
  3aaa9248_aca1_99ec_ddef_2b12cbbef710["table"]
  4edd85ed_c078_b7b5_81da_6c03870515cf --> 3aaa9248_aca1_99ec_ddef_2b12cbbef710
  style 4edd85ed_c078_b7b5_81da_6c03870515cf fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

"use client"

import * as React from "react"
import { Checkbox } from "@/examples/radix/ui/checkbox"
import {
  Table,
  TableBody,
  TableCell,
  TableHead,
  TableHeader,
  TableRow,
} from "@/examples/radix/ui/table"

const tableData = [
  {
    id: "1",
    name: "Sarah Chen",
    email: "sarah.chen@example.com",
    role: "Admin",
  },
  {
    id: "2",
    name: "Marcus Rodriguez",
    email: "marcus.rodriguez@example.com",
    role: "User",
  },
  {
    id: "3",
    name: "Priya Patel",
    email: "priya.patel@example.com",
    role: "User",
  },
  {
    id: "4",
    name: "David Kim",
    email: "david.kim@example.com",
    role: "Editor",
  },
]

export function CheckboxInTable() {
  const [selectedRows, setSelectedRows] = React.useState<Set<string>>(
    new Set(["1"])
  )

  const selectAll = selectedRows.size === tableData.length

  const handleSelectAll = (checked: boolean) => {
    if (checked) {
      setSelectedRows(new Set(tableData.map((row) => row.id)))
    } else {
      setSelectedRows(new Set())
    }
  }

  const handleSelectRow = (id: string, checked: boolean) => {
    const newSelected = new Set(selectedRows)
    if (checked) {
      newSelected.add(id)
    } else {
      newSelected.delete(id)
    }
    setSelectedRows(newSelected)
  }

  return (
    <Table>
      <TableHeader>
        <TableRow>
          <TableHead className="w-8">
            <Checkbox
              id="select-all-checkbox"
              name="select-all-checkbox"
              checked={selectAll}
              onCheckedChange={handleSelectAll}
            />
          </TableHead>
          <TableHead>Name</TableHead>
          <TableHead>Email</TableHead>
          <TableHead>Role</TableHead>
        </TableRow>
      </TableHeader>
      <TableBody>
        {tableData.map((row) => (
          <TableRow
            key={row.id}
            data-state={selectedRows.has(row.id) ? "selected" : undefined}
          >
            <TableCell>
              <Checkbox
                id={`row-${row.id}-checkbox`}
                name={`row-${row.id}-checkbox`}
                checked={selectedRows.has(row.id)}
                onCheckedChange={(checked) =>
                  handleSelectRow(row.id, checked === true)
                }
              />
            </TableCell>
            <TableCell className="font-medium">{row.name}</TableCell>
            <TableCell>{row.email}</TableCell>
            <TableCell>{row.role}</TableCell>
          </TableRow>
        ))}
      </TableBody>
    </Table>
  )
}

Subdomains

Functions

Dependencies

  • checkbox
  • react
  • table

Frequently Asked Questions

What does checkbox-table.tsx do?
checkbox-table.tsx is a source file in the ui codebase, written in tsx. It belongs to the DocumentationAtlas domain, ContentSourcing subdomain.
What functions are defined in checkbox-table.tsx?
checkbox-table.tsx defines 1 function(s): CheckboxInTable.
What does checkbox-table.tsx depend on?
checkbox-table.tsx imports 3 module(s): checkbox, react, table.
Where is checkbox-table.tsx in the architecture?
checkbox-table.tsx is located at apps/v4/examples/radix/checkbox-table.tsx (domain: DocumentationAtlas, subdomain: ContentSourcing, directory: apps/v4/examples/radix).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free