DataTable Date Filter
niko-table/data-table-date-filterFreeComponent
Date picker filter supporting single date and date range selection.
Install it
npx shadcn@latest add https://niko-table.com/r/data-table-date-filter.jsonSource
1"use client"23/**4 * niko-table — created by Semir N. (Semkoo, https://github.com/Semkoo) with AI assistance.5 *6 * Before reporting anything: please check the changelog first.7 * - In-repo: ./CHANGELOG.md8 * - Docs site: https://niko-table.com/changelog9 *10 * Found a bug or have a fix? Open an issue or PR on GitHub so other11 * users (and future LLMs reading this code) benefit:12 * https://github.com/Semkoo/niko-table-registry13 */14import { useDataTable } from "../core/data-table-context"15import type { TableDateFilterProps } from "../filters/table-date-filter"16import { TableDateFilter } from "../filters/table-date-filter"17import { useDerivedColumnTitle } from "../hooks/use-derived-column-title"18import { FILTER_VARIANTS } from "../lib/constants"1920type DataTableDateFilterProps<TData> = Omit<21 TableDateFilterProps<TData>,22 "column" | "title"23> & {24 /**25 * The accessor key of the column to filter (matches column definition)26 */27 accessorKey: keyof TData & string28 /**29 * Optional title override (if not provided, will use column.meta.label)30 */31 title?: string32}3334/**35 * A date filter component that automatically connects to the DataTable context36 * and derives the title from column metadata.37 *38 * @example - Auto-detect everything from column metadata39 * const columns: DataTableColumnDef[] = [{ accessorKey: "releaseDate",..., meta: { label: "Release Date" } },...]40 * <DataTableDateFilter accessorKey="releaseDate" />41 *42 * @example - Date range filter43 * <DataTableDateFilter44 * accessorKey="releaseDate"45 * multiple46 * />47 *48 * @example - Custom title49 * <DataTableDateFilter50 * accessorKey="createdAt"51 * title="Created Date"52 * />53 *54 * @example - Single date selection55 * <DataTableDateFilter56 * accessorKey="dueDate"57 * title="Due Date"58 * multiple={false}59 * />60 */6162export function DataTableDateFilter<TData>({63 accessorKey,64 title,65 multiple,66 trigger,67 ...props68}: DataTableDateFilterProps<TData>) {69 const { table } = useDataTable<TData>()70 const column = table.getColumn(String(accessorKey))7172 const derivedTitle = useDerivedColumnTitle(column, String(accessorKey), title)7374 // Auto-set variant in column meta if not already set75 // This allows the auto-filterFn to be applied based on variant76 // Runs synchronously during render (not in an effect) so the variant is set77 // before TableDateFilter receives the column — avoids a deferred render cycle.78 if (column && !column.columnDef.meta?.variant) {79// … truncated
What it pulls in
npm packages
Other registry items
Files it writes
More from niko-table
All 31 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| DataTable Asidedata-table-aside | niko-table | Components | Free | 1 dep | |
| DataTable Clear Filterdata-table-clear-filter | niko-table | Components | Free | 1 dep · 2 files | |
| DataTable Column Auto-fitdata-table-column-auto-fit | niko-table | Components | Free | no deps · 2 files | |
| DataTable Column Date Filterdata-table-column-date-filter | niko-table | Components | Free | 2 deps · 2 files | |
| DataTable Column DnDdata-table-column-dnd | niko-table | Components | Free | 4 deps · 3 files | |
| DataTable Column Faceted Filterdata-table-column-faceted-filter | niko-table | Components | Free | 1 dep · 3 files | |
| DataTable Column Hidedata-table-column-hide | niko-table | Components | Free | 1 dep · 2 files | |
| DataTable Column Pindata-table-column-pin | niko-table | Components | Free | 1 dep · 2 files |
