UNPKG

kea-react

Version:

Componentes comunes de react

23 lines (21 loc) 1.19 kB
import { Grid2Column } from "./column"; /**Mezcla una definición de una columna con una función de estilo, dandole prioridad al estilo original de las columnas */ function mixStyle<TItem, TShared>(columm: Grid2Column<TItem, TShared>, style: (item: TItem, shared: TShared) => React.CSSProperties): Grid2Column<TItem, TShared> { return { ...columm, cell: (row) => { const ret = columm.cell(row); const retStyleFunc = ret.style || (() => ({})); return { ...ret, style: (itemData: TShared) => ({ ...style(row, itemData), ...retStyleFunc(itemData) }) } } } } /**Le agrega un estilo a todas las celdas de un arreglo de Grid2Column. Si la celda ya define su propio estilo, este es mezclado con el estido dado por la funcion * rowStyle con el operador spread (...), dandole prioridad a las propiedades del estilo definido por la celda */ export function applyRowStyleToColumns<TItem, TShared>(columns: Grid2Column<TItem, TShared>[], rowStyle: (item: TItem, shared: TShared) => React.CSSProperties) { return columns.map(col => mixStyle(col, rowStyle)); }