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 ApplicationExhibition TaskManagement 5 imports 1 dependents 1 functions

Entity Profile

Dependency Diagram

graph LR
  ac7d025e_c65b_8066_4ef7_9fc6b0584275["data-table-column-header.tsx"]
  eff11612_0b61_f7f9_e13e_9117a7062bb3["react-table"]
  ac7d025e_c65b_8066_4ef7_9fc6b0584275 --> eff11612_0b61_f7f9_e13e_9117a7062bb3
  d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3["lucide-react"]
  ac7d025e_c65b_8066_4ef7_9fc6b0584275 --> d39cd1e4_1b2d_9aa2_1d29_fd0b4bfb61c3
  79081a1f_55a3_945a_fb8c_d53d6d3eab81["utils"]
  ac7d025e_c65b_8066_4ef7_9fc6b0584275 --> 79081a1f_55a3_945a_fb8c_d53d6d3eab81
  57e86e45_ac6e_7278_be08_9092724e8401["button"]
  ac7d025e_c65b_8066_4ef7_9fc6b0584275 --> 57e86e45_ac6e_7278_be08_9092724e8401
  d1cb37f2_0d1d_01bc_0d60_a15219afac51["dropdown-menu"]
  ac7d025e_c65b_8066_4ef7_9fc6b0584275 --> d1cb37f2_0d1d_01bc_0d60_a15219afac51
  43b33977_407a_3859_0d77_dc087ee891e4["columns.tsx"]
  43b33977_407a_3859_0d77_dc087ee891e4 --> ac7d025e_c65b_8066_4ef7_9fc6b0584275
  style ac7d025e_c65b_8066_4ef7_9fc6b0584275 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

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

import { cn } from "@/lib/utils"
import { Button } from "@/registry/new-york-v4/ui/button"
import {
  DropdownMenu,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuSeparator,
  DropdownMenuTrigger,
} from "@/registry/new-york-v4/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 gap-2", className)}>
      <DropdownMenu>
        <DropdownMenuTrigger asChild>
          <Button
            variant="ghost"
            size="sm"
            className="data-[state=open]:bg-accent -ml-3 h-8"
          >
            <span>{title}</span>
            {column.getIsSorted() === "desc" ? (
              <ArrowDown />
            ) : column.getIsSorted() === "asc" ? (
              <ArrowUp />
            ) : (
              <ChevronsUpDown />
            )}
          </Button>
        </DropdownMenuTrigger>
        <DropdownMenuContent align="start">
          <DropdownMenuItem onClick={() => column.toggleSorting(false)}>
            <ArrowUp />
            Asc
          </DropdownMenuItem>
          <DropdownMenuItem onClick={() => column.toggleSorting(true)}>
            <ArrowDown />
            Desc
          </DropdownMenuItem>
          <DropdownMenuSeparator />
          <DropdownMenuItem onClick={() => column.toggleVisibility(false)}>
            <EyeOff />
            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 ApplicationExhibition domain, TaskManagement 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 apps/v4/app/(app)/examples/tasks/components/data-table-column-header.tsx (domain: ApplicationExhibition, subdomain: TaskManagement, directory: apps/v4/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