UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

55 lines (54 loc) 1.76 kB
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 };