UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

90 lines (89 loc) 2.34 kB
import { clsx } from "clsx"; const getTablePropsHook = (props, { instance }) => { const nextProps = { component: instance.tableComponent }; if (instance.style != null) { nextProps.style = instance.style; } if (instance.className != null) { nextProps.className = instance.className; } if (instance.classes != null) { nextProps.classes = instance.classes; } return [props, nextProps]; }; const getHeaderFooterPropsHook = (props, { column }) => { const nextProps = { variant: column.variant, align: column.align }; if (column.style != null || column.headerStyle != null) { nextProps.style = { ...props.style, ...column.style, ...column.headerStyle }; } if (column.className != null || column.headerClassName != null) { nextProps.className = clsx( props.className, column.className, column.headerClassName ); } if (column.classes != null || column.headerClasses) { nextProps.classes = { ...props.classes, ...column.classes, ...column.headerClasses }; } return [props, nextProps]; }; const getRowPropsHook = (props) => { const nextProps = { hover: true }; return [props, nextProps]; }; const getCellPropsHook = (props, { cell }) => { const nextProps = { variant: cell.column.variant, align: cell.column.align }; if (cell.column.style != null || cell.column.cellStyle != null) { nextProps.style = { ...props.style, ...cell.column.style, ...cell.column.cellStyle }; } if (cell.column.className != null || cell.column.cellClassName != null) { nextProps.className = clsx( props.className, cell.column.className, cell.column.cellClassName ); } if (cell.column.classes != null || cell.column.cellClasses) { nextProps.classes = { ...props.classes, ...cell.column.classes, ...cell.column.cellClasses }; } return [props, nextProps]; }; const useHvTableStyles = (hooks) => { hooks.getTableProps.push(getTablePropsHook); hooks.getHeaderProps.push(getHeaderFooterPropsHook); hooks.getFooterProps.push(getHeaderFooterPropsHook); hooks.getRowProps.push(getRowPropsHook); hooks.getCellProps.push(getCellPropsHook); }; useHvTableStyles.pluginName = "useHvTableStyles"; export { useHvTableStyles };