UNPKG

decentraland-ui

Version:

Decentraland's UI components and styles

185 lines (184 loc) 11.2 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.UserMenuSignedIn = void 0; var react_1 = __importStar(require("react")); var classnames_1 = __importDefault(require("classnames")); var ManaBalances_1 = require("../ManaBalances/ManaBalances"); var AvatarFace_1 = require("../../AvatarFace/AvatarFace"); var Button_1 = require("../../Button/Button"); var ActivityIcon_1 = __importDefault(require("../../Icons/ActivityIcon")); var LogoutIcon_1 = __importDefault(require("../../Icons/LogoutIcon")); var Notifications_1 = __importDefault(require("../../Notifications/Notifications")); var ArrowIcon_1 = __importDefault(require("../../Icons/ArrowIcon")); var config_1 = require("../../../config"); var UserMenu_types_1 = require("../UserMenu.types"); var Media_1 = require("../../Media"); require("../UserMenu.css"); require("./UserMenuSignedIn.css"); /** * @deprecated Should start using the same component migrated to UI2. */ var UserMenuSignedIn = function (props) { var _a, _b, _c, _d; var manaBalances = props.manaBalances, avatar = props.avatar, address = props.address, hasActivity = props.hasActivity, isOpen = props.isOpen, trackingId = props.trackingId, notifications = props.notifications, i18n = props.i18n, onClickMarketplaceAuthorization = props.onClickMarketplaceAuthorization, onClickActivity = props.onClickActivity, onClickBalance = props.onClickBalance, onClickClose = props.onClickClose, onClickUserMenuItem = props.onClickUserMenuItem, onClickMyAssets = props.onClickMyAssets, onClickProfile = props.onClickProfile, onClickSignOut = props.onClickSignOut, onClickToggle = props.onClickToggle, onClickAccount = props.onClickAccount; var isTabletAndBelow = (0, Media_1.useTabletAndBelowMediaQuery)(); var handleClickActivity = (0, react_1.useCallback)(function (event) { onClickUserMenuItem && onClickUserMenuItem(event, { type: UserMenu_types_1.UserMenuEventId.ACTIVITY, track_uuid: trackingId, url: "".concat(config_1.config.get('MARKETPLACE_URL'), "/activity") }); setTimeout(function () { onClickActivity ? onClickActivity(event) : window.open("".concat(config_1.config.get('MARKETPLACE_URL'), "/activity"), '_blank', 'noopener'); }, onClickActivity ? 300 : 0); }, [onClickActivity, onClickUserMenuItem, trackingId]); var handleClickMyAssets = (0, react_1.useCallback)(function (event) { onClickUserMenuItem && onClickUserMenuItem(event, { type: UserMenu_types_1.UserMenuEventId.MY_ASSETS, track_uuid: trackingId, url: config_1.config.get('MARKETPLACE_MY_ASSETS_URL') }); setTimeout(function () { onClickMyAssets ? onClickMyAssets(event) : window.open("".concat(config_1.config.get('MARKETPLACE_MY_ASSETS_URL')), '_blank', 'noopener'); }, onClickUserMenuItem ? 300 : 0); }, [onClickMyAssets, onClickUserMenuItem, trackingId]); var handleClickMarketplaceAuthorization = (0, react_1.useCallback)(function (event) { onClickUserMenuItem && onClickUserMenuItem(event, { type: UserMenu_types_1.UserMenuEventId.MARKETPLACE_AUTHORIZATIONS, track_uuid: trackingId, url: config_1.config.get('MARKETPLACE_SETTINGS_URL') }); setTimeout(function () { onClickMarketplaceAuthorization ? onClickMarketplaceAuthorization(event) : window.open("".concat(config_1.config.get('MARKETPLACE_SETTINGS_URL')), '_blank', 'noopener'); }, onClickUserMenuItem ? 300 : 0); }, [onClickMarketplaceAuthorization, onClickUserMenuItem, trackingId]); var handleClickProfile = (0, react_1.useCallback)(function (event) { onClickUserMenuItem && onClickUserMenuItem(event, { type: UserMenu_types_1.UserMenuEventId.PROFILE, track_uuid: trackingId, url: config_1.config.get('PROFILE_URL') }); setTimeout(function () { onClickProfile ? onClickProfile(event) : window.open(config_1.config.get('PROFILE_URL'), '_blank', 'noopener'); }, onClickUserMenuItem ? 300 : 0); }, [onClickProfile, onClickUserMenuItem, trackingId]); var handleClickAccount = (0, react_1.useCallback)(function (event) { onClickUserMenuItem && onClickUserMenuItem(event, { type: UserMenu_types_1.UserMenuEventId.ACCOUNT, track_uuid: trackingId, url: config_1.config.get('ACCOUNT_URL') }); setTimeout(function () { onClickAccount ? onClickAccount(event) : window.open(config_1.config.get('ACCOUNT_URL'), '_blank', 'noopener'); }, onClickUserMenuItem ? 300 : 0); }, [onClickAccount, onClickUserMenuItem, trackingId]); var handleClickSignOut = (0, react_1.useCallback)(function (event) { onClickUserMenuItem && onClickUserMenuItem(event, { type: UserMenu_types_1.UserMenuEventId.SIGN_OUT, track_uuid: trackingId }); onClickSignOut(event, trackingId); }, [onClickSignOut, onClickUserMenuItem, trackingId]); var handleClickToggle = (0, react_1.useCallback)(function (event) { onClickToggle(event); }, [onClickToggle]); var handleClickClose = (0, react_1.useCallback)(function () { onClickClose(); }, [onClickClose]); var userAddress = (0, react_1.useMemo)(function () { return (avatar === null || avatar === void 0 ? void 0 : avatar.ethAddress) || address; }, [avatar, address]); return (react_1.default.createElement("div", { className: (0, classnames_1.default)('dui-user-menu-signed-in') }, notifications && react_1.default.createElement(Notifications_1.default, __assign({}, notifications)), react_1.default.createElement(Button_1.Button, { basic: true, onClick: handleClickActivity, className: "activity-icon" }, react_1.default.createElement(ActivityIcon_1.default, { hasActivity: hasActivity })), react_1.default.createElement(ManaBalances_1.ManaBalances, { manaBalances: manaBalances, onClickBalance: onClickBalance }), react_1.default.createElement("div", { className: "toggle", onClick: handleClickToggle }, react_1.default.createElement(AvatarFace_1.AvatarFace, { size: "medium", avatar: avatar })), react_1.default.createElement("div", { className: (0, classnames_1.default)('menu-wrapper', isOpen && 'open'), onMouseLeave: handleClickClose, onScroll: !isTabletAndBelow ? handleClickClose : undefined }, react_1.default.createElement("div", { className: (0, classnames_1.default)('menu-wearable-preview', !avatar && 'default-avatar') }, react_1.default.createElement("div", { style: ((_b = (_a = avatar === null || avatar === void 0 ? void 0 : avatar.avatar) === null || _a === void 0 ? void 0 : _a.snapshots) === null || _b === void 0 ? void 0 : _b.body) ? { backgroundImage: "url(".concat((_d = (_c = avatar === null || avatar === void 0 ? void 0 : avatar.avatar) === null || _c === void 0 ? void 0 : _c.snapshots) === null || _d === void 0 ? void 0 : _d.body, ")") } : undefined })), react_1.default.createElement("div", { className: "menu-actions__wrapper" }, react_1.default.createElement("div", { className: 'menu-info' }, (avatar === null || avatar === void 0 ? void 0 : avatar.name) || i18n.guest, ' ', !(avatar === null || avatar === void 0 ? void 0 : avatar.hasClaimedName) && userAddress && (react_1.default.createElement("span", null, "#", userAddress.substring(userAddress.length - 4)))), react_1.default.createElement("ul", { className: "menu-actions" }, react_1.default.createElement("li", null, react_1.default.createElement("div", { onClick: handleClickProfile }, i18n.viewProfile, react_1.default.createElement(ArrowIcon_1.default, null))), react_1.default.createElement("li", null, react_1.default.createElement("div", { onClick: handleClickMyAssets }, i18n.myAssets, react_1.default.createElement(ArrowIcon_1.default, null))), react_1.default.createElement("li", null, react_1.default.createElement("div", { onClick: handleClickAccount }, i18n.account, react_1.default.createElement(ArrowIcon_1.default, null))), react_1.default.createElement("li", null, react_1.default.createElement("div", { onClick: handleClickMarketplaceAuthorization }, i18n.marketplaceAuthorizations, react_1.default.createElement(ArrowIcon_1.default, null)))), react_1.default.createElement("div", { onClick: handleClickSignOut, className: "menu-option__sign-out" }, i18n.signOut, react_1.default.createElement(LogoutIcon_1.default, null)))))); }; exports.UserMenuSignedIn = UserMenuSignedIn;