@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
61 lines (60 loc) • 2.35 kB
JavaScript
"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const useForkRef = require("../../hooks/useForkRef.cjs");
const TableContext = require("../TableContext.cjs");
const TableSectionContext = require("../TableSectionContext.cjs");
const TableBody_styles = require("./TableBody.styles.cjs");
const Focus = require("../../Focus/Focus.cjs");
const tableSectionContext = {
type: "body",
filterClassName: "_trgrid"
};
const defaultComponent = "tbody";
const HvTableBody = React.forwardRef(
function HvTableBody2(props, externalRef) {
const {
classes: classesProp,
className,
component,
children,
withNavigation = false,
...others
} = uikitReactUtils.useDefaultProps("HvTableBody", props);
const { classes, cx } = TableBody_styles.useClasses(classesProp);
const tableContext = React.useContext(TableContext.default);
const bodyRef = React.useRef(null);
const handleRef = useForkRef.useForkRef(externalRef, bodyRef);
const Component = component || tableContext?.components?.TBody || defaultComponent;
return /* @__PURE__ */ jsxRuntime.jsx(TableSectionContext.TableSectionContext.Provider, { value: tableSectionContext, children: /* @__PURE__ */ jsxRuntime.jsx(
Component,
{
className: cx(classes.root, className),
ref: handleRef,
role: Component === defaultComponent ? null : "rowgroup",
...others,
children: withNavigation ? React.Children.map(children, (element) => {
if (!React.isValidElement(element)) return void 0;
return /* @__PURE__ */ jsxRuntime.jsx(
Focus.HvFocus,
{
id: `my-id-${element.key}`,
rootRef: bodyRef,
strategy: "grid",
filterClass: tableSectionContext.filterClassName,
navigationJump: 1,
focusDisabled: false,
selected: element.props.selected,
children: element
},
`row-${element.key}`
);
}) : children
}
) });
}
);
exports.tableBodyClasses = TableBody_styles.staticClasses;
exports.HvTableBody = HvTableBody;