@ant-design/pro-layout
Version:
72 lines (61 loc) • 2.92 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import "antd/es/config-provider/style";
import _ConfigProvider from "antd/es/config-provider";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["children", "className", "extra", "style", "renderContent"];
import React, { useContext, useEffect, useMemo } from 'react';
import classNames from 'classnames';
import omit from 'omit.js';
import './index.less';
import { RouteContext } from '../../index';
var FooterToolbar = function FooterToolbar(props) {
var children = props.children,
className = props.className,
extra = props.extra,
style = props.style,
renderContent = props.renderContent,
restProps = _objectWithoutProperties(props, _excluded);
var _useContext = useContext(_ConfigProvider.ConfigContext),
getPrefixCls = _useContext.getPrefixCls;
var prefixCls = props.prefixCls || getPrefixCls('pro');
var baseClassName = "".concat(prefixCls, "-footer-bar");
var value = useContext(RouteContext);
var width = useMemo(function () {
var hasSiderMenu = value.hasSiderMenu,
isMobile = value.isMobile,
siderWidth = value.siderWidth;
if (!hasSiderMenu) {
return undefined;
} // 0 or undefined
if (!siderWidth) {
return '100%';
}
return isMobile ? '100%' : "calc(100% - ".concat(siderWidth, "px)"); // eslint-disable-next-line react-hooks/exhaustive-deps
}, [value.collapsed, value.hasSiderMenu, value.isMobile, value.siderWidth]);
var dom = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
className: "".concat(baseClassName, "-left")
}, extra), /*#__PURE__*/React.createElement("div", {
className: "".concat(baseClassName, "-right")
}, children));
/** 告诉 props 是否存在 footerBar */
useEffect(function () {
if (!value || !(value === null || value === void 0 ? void 0 : value.setHasFooterToolbar)) {
return function () {};
}
value === null || value === void 0 ? void 0 : value.setHasFooterToolbar(true);
return function () {
var _value$setHasFooterTo;
value === null || value === void 0 ? void 0 : (_value$setHasFooterTo = value.setHasFooterToolbar) === null || _value$setHasFooterTo === void 0 ? void 0 : _value$setHasFooterTo.call(value, false);
}; // eslint-disable-next-line react-hooks/exhaustive-deps
}, []);
return /*#__PURE__*/React.createElement("div", _extends({
className: classNames(className, "".concat(baseClassName)),
style: _objectSpread({
width: width
}, style)
}, omit(restProps, ['prefixCls'])), renderContent ? renderContent(_objectSpread(_objectSpread(_objectSpread({}, props), value), {}, {
leftWidth: width
}), dom) : dom);
};
export default FooterToolbar;