Saltar al contenido
El Muestrario

componente · @solu30/ui-kit/data-display

ColumnHeader

Encabezado de columna con orden y filtro, donde el contenido del filtro se pasa como nodo.

Seguir leyendo — 2 párrafos más

Table column header with optional sorting and filtering.

Uses CSS variables for theming:

  • --ui-accent for active sort/filter state
  • --ui-content-secondary for inactive icons

27 sitios de import en 2 de 15 verticales — un archivo que la importa cuenta una vez, monte una instancia o veinte.

  • dietaly
  • gestorsalon

El componente, montado

Cargando el componente del paquete instalado…

Cómo se usa

import { ColumnHeader } from '@solu30/ui-kit/data-display'

Props

10 props declaradas en los tipos de la versión instalada.
PropRequeridaTipoQué hace
labelsístringHeader label text
classNameopcionalstringAdditional CSS class
sortableopcionalbooleanWhether column is sortable
sortActiveopcionalbooleanWhether sort is currently active
sortDiropcional"asc" | "desc"Current sort direction
onSortopcional() => voidCallback when sort is requested
filterableopcionalbooleanWhether column is filterable
filterActiveopcionalbooleanWhether filter is currently active
filterContentopcionalReact__default.ReactNodeContent to display in filter popover
alignopcional"left" | "right"Text alignment

Ejemplo del paquete

const [sort, setSort] = useState<'asc' | 'desc' | null>(null)
const [filterOpen, setFilterOpen] = useState(false)

<ColumnHeader
  label="Name"
  sortable
  sortActive={sort !== null}
  sortDir={sort}
  onSort={() => setSort(sort === 'asc' ? 'desc' : 'asc')}
  filterable
  filterActive={hasFilter}
  filterContent={<TextColumnFilter value={filter} onChange={setFilter} onClear={() => setFilter('')} />}
/>

Del @example del JSDoc de @solu30/ui-kit, sin editar: son 65 de los 541 símbolos. La sangría y los renglones en blanco son los del paquete.