UNPKG

@carbon/react

Version:

React components for the Carbon Design System

59 lines (57 loc) 2.22 kB
/** * Copyright IBM Corp. 2016, 2026 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ const require_runtime = require("../../_virtual/_rolldown/runtime.js"); const require_usePrefix = require("../../internal/usePrefix.js"); const require_TableCell = require("./TableCell.js"); let classnames = require("classnames"); classnames = require_runtime.__toESM(classnames); let react = require("react"); react = require_runtime.__toESM(react); let prop_types = require("prop-types"); prop_types = require_runtime.__toESM(prop_types); let react_jsx_runtime = require("react/jsx-runtime"); //#region src/components/DataTable/TableExpandedRow.tsx /** * Copyright IBM Corp. 2016, 2025 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ const TableExpandedRow = ({ className: customClassName, children, colSpan, ...rest }) => { const rowRef = (0, react.useRef)(null); const prefix = require_usePrefix.usePrefix(); const className = (0, classnames.default)(`${prefix}--expandable-row`, customClassName); const toggleParentHoverClass = (eventType) => { if (rowRef && rowRef.current && rowRef.current.previousElementSibling) { const parentNode = rowRef.current.previousElementSibling; if (eventType === "enter") parentNode.classList.add(`${prefix}--expandable-row--hover`); else parentNode.classList.remove(`${prefix}--expandable-row--hover`); } }; return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("tr", { ref: rowRef, onMouseEnter: () => toggleParentHoverClass("enter"), onMouseLeave: () => toggleParentHoverClass("leave"), ...rest, className, "data-child-row": true, children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_TableCell.default, { colSpan, children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: `${prefix}--child-row-inner-container`, children }) }) }); }; TableExpandedRow.propTypes = { children: prop_types.default.node, className: prop_types.default.string, colSpan: prop_types.default.number.isRequired }; //#endregion exports.default = TableExpandedRow;