index.js 1.3 KB

12345678910111213141516171819202122232425262728293031
  1. import { useContext } from '@rc-component/context';
  2. import * as React from 'react';
  3. import TableContext, { responseImmutable } from "../context/TableContext";
  4. import devRenderTimes from "../hooks/useRenderTimes";
  5. import Summary from "./Summary";
  6. import SummaryContext from "./SummaryContext";
  7. function Footer(props) {
  8. if (process.env.NODE_ENV !== 'production') {
  9. devRenderTimes(props);
  10. }
  11. var children = props.children,
  12. stickyOffsets = props.stickyOffsets,
  13. flattenColumns = props.flattenColumns;
  14. var prefixCls = useContext(TableContext, 'prefixCls');
  15. var lastColumnIndex = flattenColumns.length - 1;
  16. var scrollColumn = flattenColumns[lastColumnIndex];
  17. var summaryContext = React.useMemo(function () {
  18. return {
  19. stickyOffsets: stickyOffsets,
  20. flattenColumns: flattenColumns,
  21. scrollColumnIndex: scrollColumn !== null && scrollColumn !== void 0 && scrollColumn.scrollbar ? lastColumnIndex : null
  22. };
  23. }, [scrollColumn, flattenColumns, lastColumnIndex, stickyOffsets]);
  24. return /*#__PURE__*/React.createElement(SummaryContext.Provider, {
  25. value: summaryContext
  26. }, /*#__PURE__*/React.createElement("tfoot", {
  27. className: "".concat(prefixCls, "-summary")
  28. }, children));
  29. }
  30. export default responseImmutable(Footer);
  31. export var FooterComponents = Summary;