UNPKG

@antdp/basic-layouts

Version:

入口框架公共界面

84 lines (83 loc) 3.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports.useLayouts = exports.LayoutsProvider = exports.LayoutsContext = void 0; var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _documentTitle = _interopRequireDefault(require("@antdp/document-title")); var _react = require("react"); var _reactRouterDom = require("react-router-dom"); var _max = require("@umijs/max"); var _interface = require("./interface"); var _utils = require("./utils"); var _excluded = ["intlLanguage", "children"]; // @ts-ignore var LayoutsContext = exports.LayoutsContext = /*#__PURE__*/(0, _react.createContext)({ HandleMenu: new _utils.HandleMenu({ routers: [] }), collapsed: false, setCollapsed: function setCollapsed() { return null; }, layout: _interface.LayoutModel.MIX }); var useLayouts = exports.useLayouts = function useLayouts() { return (0, _react.useContext)(LayoutsContext); }; var LayoutsProvider = exports.LayoutsProvider = function LayoutsProvider(props) { var intlLanguage = props.intlLanguage, children = props.children, rest = (0, _objectWithoutProperties2["default"])(props, _excluded); var _useState = (0, _react.useState)(false), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), collapsed = _useState2[0], setCollapsed = _useState2[1]; var location = (0, _reactRouterDom.useLocation)(); var _useAppData = (0, _max.useAppData)(), clientRoutes = _useAppData.clientRoutes; var layout = props.layout; var routes = (0, _react.useMemo)(function () { var routes = clientRoutes.find(function (item) { return item.path === '/'; }); return (routes === null || routes === void 0 ? void 0 : routes.routes) || []; }, [clientRoutes]); var Menus = (0, _react.useMemo)(function () { return new _utils.HandleMenu({ routers: routes || [], intlLanguage: intlLanguage, isCheckAuth: !!ANTD_AUTH_CONF, isTOPLEFT: layout === _interface.LayoutModel.TOPLEFT }); }, [routes, intlLanguage, layout]); var title = (0, _react.useMemo)(function () { var item = Menus.getPathItem(location.pathname); return (item === null || item === void 0 ? void 0 : item.name) || ''; }, [location.pathname]); var renderTitle = (0, _react.useMemo)(function () { var arr = []; if (title) { arr.push(title); } if (props.projectName) { arr.push(props.projectName); } return arr.filter(Boolean).join('-'); }, [title, props.projectName]); return /*#__PURE__*/(0, _react.createElement)(_documentTitle["default"], { title: renderTitle, children: /*#__PURE__*/(0, _react.createElement)(LayoutsContext.Provider, { value: (0, _objectSpread2["default"])({ HandleMenu: Menus, collapsed: collapsed, setCollapsed: setCollapsed, layout: _interface.LayoutModel.MIX, defultOpenMenus: false }, rest), children: children }) }); };