From 1a2241c40e10193c5ff7008a7b7b36cc1d855d96 Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Tue, 25 Mar 2025 15:55:45 +0900 Subject: initial commit --- .../data-table-column-simple-header.tsx | 61 ++ .../client-data-table/data-table-filter-list.tsx | 662 +++++++++++++++++++++ .../client-data-table/data-table-group-list.tsx | 279 +++++++++ .../client-data-table/data-table-pagination.tsx | 132 ++++ .../client-data-table/data-table-resizer.tsx | 119 ++++ .../client-data-table/data-table-sort-list.tsx | 272 +++++++++ .../client-data-table/data-table-toolbar.tsx | 100 ++++ .../client-data-table/data-table-view-options.tsx | 192 ++++++ components/client-data-table/data-table.tsx | 336 +++++++++++ 9 files changed, 2153 insertions(+) create mode 100644 components/client-data-table/data-table-column-simple-header.tsx create mode 100644 components/client-data-table/data-table-filter-list.tsx create mode 100644 components/client-data-table/data-table-group-list.tsx create mode 100644 components/client-data-table/data-table-pagination.tsx create mode 100644 components/client-data-table/data-table-resizer.tsx create mode 100644 components/client-data-table/data-table-sort-list.tsx create mode 100644 components/client-data-table/data-table-toolbar.tsx create mode 100644 components/client-data-table/data-table-view-options.tsx create mode 100644 components/client-data-table/data-table.tsx (limited to 'components/client-data-table') diff --git a/components/client-data-table/data-table-column-simple-header.tsx b/components/client-data-table/data-table-column-simple-header.tsx new file mode 100644 index 00000000..0f3997c6 --- /dev/null +++ b/components/client-data-table/data-table-column-simple-header.tsx @@ -0,0 +1,61 @@ +"use client" + +import * as React from "react" +import { cn } from "@/lib/utils" +import { type Column } from "@tanstack/react-table" +import { ArrowDown, ArrowUp, ChevronsUpDown } from "lucide-react" + +interface DataTableColumnHeaderSimpleProps + extends React.HTMLAttributes { + column: Column + title: string +} + +export function ClientDataTableColumnHeaderSimple({ + column, + title, + className, +}: DataTableColumnHeaderSimpleProps) { + // 정렬 불가능 시 → 제목만 보여주기 + if (!column.getCanSort()) { + return
{title}
+ } + + // 정렬 상태: "asc" | "desc" | false + const sorted = column.getIsSorted() + + // 아이콘 결정 + let icon =