UNPKG

@hitachivantara/uikit-react-core

Version:
36 lines (35 loc) 1.55 kB
import TableContext from "../TableContext.js"; import { TableSectionContext } from "../TableSectionContext.js"; import { useClasses } from "./TableRow.styles.js"; import { useDefaultProps } from "@hitachivantara/uikit-react-utils"; import { forwardRef, useContext } from "react"; import { jsx } from "react/jsx-runtime"; //#region src/Table/TableRow/TableRow.tsx var defaultComponent = "tr"; /** * `HvTableRow` acts as a `tr` element and inherits styles from its context */ var HvTableRow = forwardRef(function HvTableRow(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 }); }); //#endregion export { HvTableRow };