"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = exports.MESSAGES = exports.renderAvatar = void 0; var _react = _interopRequireDefault(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _reactMasonryComponent = _interopRequireDefault(require("react-masonry-component")); var _isPlainObject = _interopRequireDefault(require("lodash/isPlainObject")); var _antd = require("antd"); var _context = _interopRequireDefault(require("./context")); var _indexModule = _interopRequireDefault(require("./index.module.less")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var useCallback = _react.default.useCallback, useEffect = _react.default.useEffect; var renderAvatar = function renderAvatar(item) { var isMini = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var icon = item.icon, title = item.title, _item$backgroundColor = item.backgroundColor, backgroundColor = _item$backgroundColor === void 0 ? '#459BF7' : _item$backgroundColor; var commonAvatarProps = { style: { backgroundColor: backgroundColor }, shape: 'square', className: _indexModule.default.avatar, size: isMini ? 'small' : 'default' }; if (_react.default.isValidElement(icon)) { return /*#__PURE__*/_react.default.createElement(_antd.Avatar, _extends({}, commonAvatarProps, { icon: icon })); } if (typeof icon === 'string') { return /*#__PURE__*/_react.default.createElement(_antd.Avatar, _extends({}, commonAvatarProps, { src: icon })); } if ((0, _isPlainObject.default)(icon)) { return /*#__PURE__*/_react.default.createElement(_antd.Avatar, _extends({}, commonAvatarProps, icon)); } // 默认返回 title 第一个字符 var defaultChar = typeof title === 'string' ? title.charAt(0) : 'Umi'; if (defaultChar) { return /*#__PURE__*/_react.default.createElement(_antd.Avatar, commonAvatarProps, defaultChar); } }; exports.renderAvatar = renderAvatar; var MESSAGES = { CHANGE_CARDS: Symbol('CHANGE_CARDS') }; exports.MESSAGES = MESSAGES; var DashboardUI = function DashboardUI(props) { // const isClosed = window.localStorage.getItem('umi_ui_dashboard_welcome') || false; // const [closed, setClosed] = useState(!!isClosed); var _React$useContext = _react.default.useContext(_context.default), api = _React$useContext.api, loading = _React$useContext.loading, dashboardCards = _React$useContext.dashboardCards, setCardSettings = _React$useContext.setCardSettings; var event = api.event, currentProject = api.currentProject, intl = api.intl, _api$getBasicUI = api.getBasicUI, getBasicUI = _api$getBasicUI === void 0 ? function () { return {}; } : _api$getBasicUI; var _React$useState = _react.default.useState(), _React$useState2 = _slicedToArray(_React$useState, 2), updateState = _React$useState2[1]; var forceUpdate = useCallback(function () { return updateState({}); }, []); var actionCardCls = (0, _classnames.default)(_indexModule.default.card, _indexModule.default['card-action']); var welcomeCardCls = (0, _classnames.default)(_indexModule.default.card, _indexModule.default.welcome); var basicUI = getBasicUI(); var containerCls = (0, _classnames.default)(_indexModule.default['container-row'], 'ant-row', 'ant-row-flex'); var renderCard = function renderCard(content) { var childProps = { // 用于动态卡片 DidMount 后,重新计算瀑布流 forceUpdate: forceUpdate }; if (Array.isArray(content)) { // 横向排列快捷入口 return /*#__PURE__*/_react.default.createElement(_antd.Row, { className: _indexModule.default['content-row'] }, _react.default.Children.map(content, function (child, i) { return /*#__PURE__*/_react.default.createElement(_antd.Col, { className: _indexModule.default['content-col'], key: i.toString(), span: Math.floor(24 / content.length) }, child); })); } if (_react.default.isValidElement(content)) { return _react.default.cloneElement(content, childProps); } }; useEffect(function () { event.on(MESSAGES.CHANGE_CARDS, setCardSettings); return function () { event.off(MESSAGES.CHANGE_CARDS, setCardSettings); }; }, []); var enableCards = (dashboardCards || []).filter(function (card) { return !!card.enable; }); if (loading) { return /*#__PURE__*/_react.default.createElement(_antd.Spin, null); } var colCls = (0, _classnames.default)(actionCardCls, _indexModule.default['container-col']); return /*#__PURE__*/_react.default.createElement("div", { className: _indexModule.default.container }, /*#__PURE__*/_react.default.createElement(_reactMasonryComponent.default, { className: containerCls }, enableCards.map(function (card) { var _card$title = card.title, title = _card$title === void 0 ? '' : _card$title, description = card.description, key = card.key, content = card.content, right = card.right, colClassName = card.colClassName; var Title = /*#__PURE__*/_react.default.createElement(_antd.Row, { className: _indexModule.default.main, gutter: 16, align: "top", justify: "space-between" }, /*#__PURE__*/_react.default.createElement(_antd.Col, { className: _indexModule.default['main-col'] }, /*#__PURE__*/_react.default.createElement("div", { className: (0, _classnames.default)(_indexModule.default.icon) }, renderAvatar(card, api.mini)), /*#__PURE__*/_react.default.createElement("div", { className: _indexModule.default.info }, /*#__PURE__*/_react.default.createElement("h4", null, title), description && /*#__PURE__*/_react.default.createElement("p", null, description))), right && /*#__PURE__*/_react.default.createElement("div", { className: _indexModule.default.right }, right)); var cardColCls = (0, _classnames.default)(colCls, colClassName); return /*#__PURE__*/_react.default.createElement("div", { key: key, className: cardColCls }, /*#__PURE__*/_react.default.createElement(_antd.Card, { title: Title, className: _indexModule.default.card, bordered: false, hoverable: false }, renderCard(content))); }))); }; var _default = DashboardUI; exports.default = _default;