UNPKG

@cainiaofe/cn-ui-layout

Version:

- 安装 cone-cli | [Cone-CLI 使用指引](https://alidocs.dingtalk.com/i/nodes/xdqZp24KneBJzvGM6XezJvyb7RA0Nr1E) - `tnpm i -g @alife/cone-cli@latest` - 安装依赖包 - `cone install` - 启动研发 - `cone start`

70 lines (69 loc) 4.83 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose")); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _context = _interopRequireDefault(require("../common/context")); var _utils = require("../utils"); var _excluded = ["children", "mode", "noPadding", "style"]; function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } /** * Content 的高度默认占据 一个屏幕的剩余空间,即使里面内容不足也应该背景色撑满 * @param props * @param ref */ var PageContent = function PageContent(props, ref) { var _navNode, _navNode$props, _asideNode, _asideNode$props, _classNames, _classNames2, _classNames3; var children = props.children, mode = props.mode, noPadding = props.noPadding, style = props.style, others = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded); var _useContext = (0, _react.useContext)(_context["default"]), prefix = _useContext.prefix; var sectionWrapperRef = (0, _react.useRef)(null); var navNode; var asideNode; var newChildren = _react.Children.map(children, function (child) { var tm; if (/*#__PURE__*/(0, _react.isValidElement)(child)) { var _child$type; // @ts-ignore tm = child === null || child === void 0 ? void 0 : (_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.typeMark; if (tm === 'Nav') { navNode = child; } else if (tm === 'Aside') { asideNode = child; } } return tm !== 'Nav' && tm !== 'Aside' ? child : null; }); var navWidth = ((_navNode = navNode) === null || _navNode === void 0 ? void 0 : (_navNode$props = _navNode.props) === null || _navNode$props === void 0 ? void 0 : _navNode$props.width) || 0; var asideWidth = ((_asideNode = asideNode) === null || _asideNode === void 0 ? void 0 : (_asideNode$props = _asideNode.props) === null || _asideNode$props === void 0 ? void 0 : _asideNode$props.width) || 0; var centerMode = !!(asideNode || navNode); var mainCls = (0, _classnames["default"])((_classNames = {}, _classNames[prefix + "page-main"] = true, _classNames)); var contentHelpCls = (0, _classnames["default"])((_classNames2 = {}, _classNames2[prefix + "page-bg-" + mode] = !!mode, _classNames2[prefix + "page-min-height-helper"] = true, _classNames2[prefix + "page-content--with-aside"] = asideNode, _classNames2[prefix + "page-content--with-nav"] = navNode, _classNames2[prefix + "page-content--center-mode"] = navNode || asideNode, _classNames2[prefix + "page-content--single-col"] = !navNode && !asideNode, _classNames2)); var contentCls = (0, _classnames["default"])((_classNames3 = {}, _classNames3[prefix + "page-content"] = true, _classNames3[prefix + "page-content-no-padding"] = noPadding, _classNames3[prefix + "page-content--with-nav"] = navNode, _classNames3)); return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({ ref: ref, className: contentHelpCls }, others), /*#__PURE__*/_react["default"].createElement("div", { className: contentCls, style: (0, _extends2["default"])({}, centerMode ? { gridTemplateColumns: (navWidth ? (0, _utils.wrapUnit)(navWidth) : '') + " 1fr " + (asideWidth ? (0, _utils.wrapUnit)(asideWidth) : '') } : null, style) }, navNode, /*#__PURE__*/_react["default"].createElement("main", { ref: sectionWrapperRef, className: mainCls }, newChildren), asideNode)); }; var RefPageContent = /*#__PURE__*/(0, _react.forwardRef)(PageContent); RefPageContent.displayName = 'Content'; RefPageContent.typeMark = 'Content'; var _default = exports["default"] = RefPageContent; module.exports = exports.default; module.exports.default = exports.default;