@atlaskit/table-tree
Version:
A table tree is an expandable table for showing nested hierarchies of information.
40 lines (38 loc) • 1.15 kB
JavaScript
/* eslint-disable @repo/internal/react/no-clone-element */
import React, { cloneElement } from 'react';
import toItemId from '../../utils/to-item-id';
import Items from './items';
/**
* __Item__
* Internal item component.
*/
function Item(_ref) {
var _ref$depth = _ref.depth,
depth = _ref$depth === void 0 ? 0 : _ref$depth,
data = _ref.data,
render = _ref.render,
loadingLabel = _ref.loadingLabel;
var renderedRow = render(data);
if (!renderedRow) {
return null;
}
// itemId exists on RowProps, but not on RowsProps
var itemId = 'itemId' in renderedRow.props ? renderedRow.props.itemId : undefined;
var items = renderedRow.props.items;
return /*#__PURE__*/cloneElement(renderedRow, {
depth: depth,
data: data,
loadingLabel: loadingLabel,
renderChildren: function renderChildren() {
return /*#__PURE__*/React.createElement("div", {
id: !!itemId ? toItemId(itemId) : undefined
}, /*#__PURE__*/React.createElement(Items, {
depth: depth,
items: items,
render: render,
loadingLabel: loadingLabel
}));
}
});
}
export default Item;