ExpandedRow.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { useContext } from '@rc-component/context';
  2. import * as React from 'react';
  3. import Cell from "../Cell";
  4. import TableContext from "../context/TableContext";
  5. import devRenderTimes from "../hooks/useRenderTimes";
  6. function ExpandedRow(props) {
  7. if (process.env.NODE_ENV !== 'production') {
  8. devRenderTimes(props);
  9. }
  10. var prefixCls = props.prefixCls,
  11. children = props.children,
  12. Component = props.component,
  13. cellComponent = props.cellComponent,
  14. className = props.className,
  15. expanded = props.expanded,
  16. colSpan = props.colSpan,
  17. isEmpty = props.isEmpty,
  18. _props$stickyOffset = props.stickyOffset,
  19. stickyOffset = _props$stickyOffset === void 0 ? 0 : _props$stickyOffset;
  20. var _useContext = useContext(TableContext, ['scrollbarSize', 'fixHeader', 'fixColumn', 'componentWidth', 'horizonScroll']),
  21. scrollbarSize = _useContext.scrollbarSize,
  22. fixHeader = _useContext.fixHeader,
  23. fixColumn = _useContext.fixColumn,
  24. componentWidth = _useContext.componentWidth,
  25. horizonScroll = _useContext.horizonScroll;
  26. // Cache render node
  27. var contentNode = children;
  28. if (isEmpty ? horizonScroll && componentWidth : fixColumn) {
  29. contentNode = /*#__PURE__*/React.createElement("div", {
  30. style: {
  31. width: componentWidth - stickyOffset - (fixHeader && !isEmpty ? scrollbarSize : 0),
  32. position: 'sticky',
  33. left: stickyOffset,
  34. overflow: 'hidden'
  35. },
  36. className: "".concat(prefixCls, "-expanded-row-fixed")
  37. }, contentNode);
  38. }
  39. return /*#__PURE__*/React.createElement(Component, {
  40. className: className,
  41. style: {
  42. display: expanded ? null : 'none'
  43. }
  44. }, /*#__PURE__*/React.createElement(Cell, {
  45. component: cellComponent,
  46. prefixCls: prefixCls,
  47. colSpan: colSpan
  48. }, contentNode));
  49. }
  50. export default ExpandedRow;