@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
55 lines (54 loc) • 1.76 kB
JavaScript
import { jsx } from "react/jsx-runtime";
import { forwardRef, useContext } from "react";
import { useDefaultProps } from "@hitachivantara/uikit-react-utils";
import TableContext from "../TableContext.js";
import { TableSectionContext } from "../TableSectionContext.js";
import { useClasses } from "./TableRow.styles.js";
import { staticClasses } from "./TableRow.styles.js";
const defaultComponent = "tr";
const HvTableRow = forwardRef(
function HvTableRow2(props, ref) {
const {
classes: classesProp,
className,
component,
hover = false,
selected = false,
expanded = false,
striped = false,
...others
} = useDefaultProps("HvTableRow", props);
const { classes, cx } = useClasses(classesProp);
const tableContext = useContext(TableContext);
const tableSectionContext = useContext(TableSectionContext);
const type = tableSectionContext?.type || "body";
const isList = tableContext.variant === "listrow";
const Component = component || tableContext?.components?.Tr || defaultComponent;
return /* @__PURE__ */ jsx(
Component,
{
ref,
className: cx(
tableSectionContext.filterClassName,
classes.root,
classes[type],
{
[classes.hover]: hover,
[classes.selected]: selected,
[classes.expanded]: expanded,
[classes.striped]: striped,
[classes.variantList]: isList && type === "body",
[classes.variantListHead]: isList && type === "head"
},
className
),
role: Component === defaultComponent ? null : "row",
...others
}
);
}
);
export {
HvTableRow,
staticClasses as tableRowClasses
};