@hitachivantara/uikit-react-core
Version:
UI Kit Core React components.
36 lines (35 loc) • 1.55 kB
JavaScript
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 };