UNPKG

tntd

Version:

tntd是基于 TNT Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。

162 lines (160 loc) 8.2 kB
"use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _get2 = _interopRequireDefault(require("lodash/get")); var _react = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireWildcard(require("styled-components")); var _images = _interopRequireDefault(require("../images")); var _ActionsContext = _interopRequireDefault(require("../ActionsContext")); var _Language = _interopRequireDefault(require("./Language")); var _Theme = _interopRequireDefault(require("./Theme")); var _storage = require("../storage"); var _divider = _interopRequireDefault(require("../../divider")); var _popover = _interopRequireDefault(require("../../popover")); var _row = _interopRequireDefault(require("../../row")); var _templateObject, _templateObject2, _templateObject3; 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; } function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _taggedTemplateLiteral(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })); } var Avatar = _styledComponents["default"].li(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n margin-right: 0;\n font-size: 0;\n img {\n width: 26px;\n height: 26px;\n border-radius: 50%;\n cursor: pointer;\n .large-size & {\n width: 32px;\n height: 32px;\n }\n }\n"]))); var GlobalStyle = (0, _styledComponents.createGlobalStyle)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n .tnt-layout-personal-popover {\n .ant-popover-inner-content {\n padding: 0;\n }\n }\n"]))); var UserInfoWrapper = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n width: 330px;\n z-index: 1;\n background-color: #fff;\n border-radius: 4px;\n box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1);\n .isInIframe & {\n display: none;\n }\n\n .user-info-body {\n padding: 20px 15px;\n line-height: 16px;\n list-style: none;\n margin: 0;\n .user-info-body-username {\n margin-top: 0px;\n font-family: PingFangSC-Regular;\n font-weight: normal;\n font-size: 14px;\n color: ", ";\n line-height: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .user-info-body-account {\n margin-top: 0px;\n font-family: PingFangSC-Regular;\n font-size: 12px;\n color: #8b919e;\n margin-bottom: 14px;\n line-height: 14px;\n margin-left: 10px;\n }\n }\n .user-info-footer {\n border-top: ", ";\n background-color: #fff;\n height: 36px;\n line-height: 36px;\n padding: 0 15px;\n font-size: 12px;\n color: ", ";\n a {\n flex: 1;\n text-align: center;\n color: ", ";\n }\n }\n"])), function (props) { return "".concat(props.theme.primaryTextColor); }, function (props) { return "1px solid ".concat(props.theme.dividerColor); }, function (props) { return "".concat(props.theme.primaryColor); }, function (props) { return "".concat(props.theme.primaryColor); }); var UserInfoContent = function UserInfoContent(props) { var userInfo = props.userInfo, _props$config = props.config, config = _props$config === void 0 ? {} : _props$config, onLogout = props.onLogout, _props$onChangePasswo = props.onChangePassword, onChangePassword = _props$onChangePasswo === void 0 ? function () { return true; } : _props$onChangePasswo, _props$onPersonalSett = props.onPersonalSetting, onPersonalSetting = _props$onPersonalSett === void 0 ? function () { return true; } : _props$onPersonalSett, onLanguageChange = props.onLanguageChange, onThemeChange = props.onThemeChange; var _useContext = (0, _react.useContext)(_ActionsContext["default"]), getText = _useContext.getText; var _ref = config || {}, _ref$language = _ref.language, language = _ref$language === void 0 ? true : _ref$language; return _react["default"].createElement(UserInfoWrapper, { className: "user-info-setting-wrap" }, _react["default"].createElement("ul", { className: "user-info-body" }, _react["default"].createElement("li", { className: "user-info-body-username" }, userInfo.userName || getText('nameNull'), _react["default"].createElement("span", { className: "user-info-body-account" }, userInfo.account)), language && _react["default"].createElement(_Language["default"], { language: userInfo.lang, onChange: onLanguageChange }), _react["default"].createElement(_Theme["default"], { theme: userInfo.theme, onChange: onThemeChange })), _react["default"].createElement(_row["default"], { className: "user-info-footer", type: "flex", justify: "space-between", align: "middle" }, _react["default"].createElement("a", { onClick: onPersonalSetting, href: "/bridge/userCenter?currentTab=1" }, getText('personalSettings')), _react["default"].createElement(_divider["default"], { type: "vertical" }), _react["default"].createElement("a", { onClick: onChangePassword, href: "/bridge/userCenter?currentTab=2", style: (0, _storage.getLanguageStore)() === 'en' ? { flex: 2 } : {} }, getText('changePwd')), _react["default"].createElement(_divider["default"], { type: "vertical" }), _react["default"].createElement("a", { className: "user-info-footer-signout", onClick: function onClick() { if (onLogout) { onLogout(); (0, _storage.clearLoginCookie)(); } else { (0, _storage.clearLoginCookie)(); window.location.href = "/user/login?callbackUrl=".concat(window.encodeURI(location.href)); } } }, getText('signOut')))); }; var _default = exports["default"] = function _default(props) { var _a; var _props$userInfo = props.userInfo, userInfo = _props$userInfo === void 0 ? {} : _props$userInfo; var avatar = userInfo.avatar; return _react["default"].createElement(Avatar, null, _react["default"].createElement(_popover["default"], { popupClassName: "tnt-layout-personal-popover", placement: "bottomRight", title: null, content: _react["default"].createElement(UserInfoContent, Object.assign({}, props)), trigger: "click" }, avatar ? _react["default"].createElement("img", { src: avatar.indexOf('base64') > 0 ? avatar : (0, _get2["default"])(_images["default"][avatar], 'default', _images["default"][avatar]), onError: function onError(e) { var _a; e.target.onerror = null; e.target.src = ((_a = _images["default"].empty) === null || _a === void 0 ? void 0 : _a["default"]) || _images["default"].empty; } }) : _react["default"].createElement("img", { src: ((_a = _images["default"].empty) === null || _a === void 0 ? void 0 : _a["default"]) || _images["default"].empty })), _react["default"].createElement(GlobalStyle, null)); };