@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
90 lines (89 loc) • 2.34 kB
JavaScript
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
};