@atlaskit/table-tree
Version:
A table tree is an expandable table for showing nested hierarchies of information.
38 lines (36 loc) • 944 B
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({
depth = 0,
data,
render,
loadingLabel
}) {
const renderedRow = render(data);
if (!renderedRow) {
return null;
}
// itemId exists on RowProps, but not on RowsProps
const itemId = 'itemId' in renderedRow.props ? renderedRow.props.itemId : undefined;
const items = renderedRow.props.items;
return /*#__PURE__*/cloneElement(renderedRow, {
depth,
data,
loadingLabel,
renderChildren: () => /*#__PURE__*/React.createElement("div", {
id: !!itemId ? toItemId(itemId) : undefined
}, /*#__PURE__*/React.createElement(Items, {
depth: depth,
items: items,
render: render,
loadingLabel: loadingLabel
}))
});
}
export default Item;