Home / File/ data-table-column-header.tsx — ui Source File

data-table-column-header.tsx — ui Source File

Architecture documentation for data-table-column-header.tsx, a tsx file in the ui codebase. 5 imports, 1 dependents.

File tsx ComponentRegistry UIPrimitives 5 imports 1 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  d08e884e_d8e0_d508_139d_37ecbc7abcd9["data-table-column-header.tsx"]
  eff11612_0b61_f7f9_e13e_9117a7062bb3["react-table"]
  d08e884e_d8e0_d508_139d_37ecbc7abcd9 --> eff11612_0b61_f7f9_e13e_9117a7062bb3
  d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3["lucide-react"]
  d08e884e_d8e0_d508_139d_37ecbc7abcd9 --> d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3
  79081a1f_55a3_945a_fb8c_d53d6d3eab81["utils"]
  d08e884e_d8e0_d508_139d_37ecbc7abcd9 --> 79081a1f_55a3_945a_fb8c_d53d6d3eab81
  aa2f3ec6_f291_3763_88ec_65a3f5ad5939["button"]
  d08e884e_d8e0_d508_139d_37ecbc7abcd9 --> aa2f3ec6_f291_3763_88ec_65a3f5ad5939
  194a9418_8170_2169_6f94_b2f555b74f26["dropdown-menu"]
  d08e884e_d8e0_d508_139d_37ecbc7abcd9 --> 194a9418_8170_2169_6f94_b2f555b74f26
  d88ec880_a12a_ff06_0114_176bf18e71fc["columns.tsx"]
  d88ec880_a12a_ff06_0114_176bf18e71fc --> d08e884e_d8e0_d508_139d_37ecbc7abcd9
  style d08e884e_d8e0_d508_139d_37ecbc7abcd9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { Column } from "@tanstack/react-table"
import { ArrowDown, ArrowUp, ChevronsUpDown, EyeOff } from "lucide-react"

import { cn } from "@/lib/utils"
import { Button } from "@/registry/new-york/ui/button"
import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuSeparator,
  DropdownMenuTrigger,
} from "@/registry/new-york/ui/dropdown-menu"

interface DataTableColumnHeaderProps<TData, TValue>
  extends React.HTMLAttributes<HTMLDivElement> {
  column: Column<TData, TValue>
  title: string
}

export function DataTableColumnHeader<TData, TValue>({
  column,
  title,
  className,
}: DataTableColumnHeaderProps<TData, TValue>) {
  if (!column.getCanSort()) {
    return <div className={cn(className)}>{title}</div>
  }

  return (
    <div className={cn("flex items-center space-x-2", className)}>
      <DropdownMenu>
        <DropdownMenuTrigger asChild>
          <Button
            variant="ghost"
            size="sm"
            className="-ml-3 h-8 data-[state=open]:bg-accent"
          >
            <span>{title}</span>
            {column.getIsSorted() === "desc" ? (
              <ArrowDown />
            ) : column.getIsSorted() === "asc" ? (
              <ArrowUp />
            ) : (
              <ChevronsUpDown />
            )}
          </Button>
        </DropdownMenuTrigger>
        <DropdownMenuContent align="start">
          <DropdownMenuItem onClick={() => column.toggleSorting(false)}>
            <ArrowUp className="h-3.5 w-3.5 text-muted-foreground/70" />
            Asc
          </DropdownMenuItem>
          <DropdownMenuItem onClick={() => column.toggleSorting(true)}>
            <ArrowDown className="h-3.5 w-3.5 text-muted-foreground/70" />
            Desc
          </DropdownMenuItem>
          <DropdownMenuSeparator />
          <DropdownMenuItem onClick={() => column.toggleVisibility(false)}>
            <EyeOff className="h-3.5 w-3.5 text-muted-foreground/70" />
            Hide
          </DropdownMenuItem>
        </DropdownMenuContent>
      </DropdownMenu>
    </div>
  )
}

Subdomains

Dependencies

  • button
  • dropdown-menu
  • lucide-react
  • react-table
  • utils

Frequently Asked Questions

What does data-table-column-header.tsx do?
data-table-column-header.tsx is a source file in the ui codebase, written in tsx. It belongs to the ComponentRegistry domain, UIPrimitives subdomain.
What functions are defined in data-table-column-header.tsx?
data-table-column-header.tsx defines 1 function(s): DataTableColumnHeader.
What does data-table-column-header.tsx depend on?
data-table-column-header.tsx imports 5 module(s): button, dropdown-menu, lucide-react, react-table, utils.
What files import data-table-column-header.tsx?
data-table-column-header.tsx is imported by 1 file(s): columns.tsx.
Where is data-table-column-header.tsx in the architecture?
data-table-column-header.tsx is located at deprecated/www/app/(app)/examples/tasks/components/data-table-column-header.tsx (domain: ComponentRegistry, subdomain: UIPrimitives, directory: deprecated/www/app/(app)/examples/tasks/components).

Analyze Your Own Codebase

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

Try Supermodel Free