UNPKG

@mymonero/mymonero-page-templates

Version:

This npm package contains a number of Lit element templates that MyMonero uses for various page layouts.

272 lines (224 loc) 13.1 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.YatSettingsView = void 0; var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _lit = require("lit"); var _sweetalert = _interopRequireDefault(require("sweetalert2")); var _templateObject, _templateObject2; function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var YatSettingsView = /*#__PURE__*/function (_LitElement) { (0, _inherits2["default"])(YatSettingsView, _LitElement); var _super = _createSuper(YatSettingsView); function YatSettingsView() { (0, _classCallCheck2["default"])(this, YatSettingsView); return _super.call(this); } (0, _createClass2["default"])(YatSettingsView, [{ key: "connectedCallback", value: function connectedCallback() { (0, _get2["default"])((0, _getPrototypeOf2["default"])(YatSettingsView.prototype), "connectedCallback", this).call(this); this.wallets = this.context.walletsListController.records; this.partnerPath = "https://y.at/partner/mymonero"; // Live url // this.partnerPath = "https://yat.fyi/partner/mymonero" // debug url } }, { key: "openExternal", value: function openExternal(url) { // Check whether we're on desktop, or web and Android if (typeof this.context.shell !== "undefined") { // Electron passes the shell variable as part of context this.context.shell.openExternal(url); } else { // Web (and Capacitor?) codebase window.open(url, "_blank"); } } }, { key: "handleBuyAYatClickEvent", value: function handleBuyAYatClickEvent() { // Params: // addresses: // eid: // refresh_token: User's refresh token that was received in the response body of redirection to Yat web or as a deep link query parameter in redirection from Yat web in Get a Yat (Flow 1A). var partnerPath = this.partnerPath; // Uncomment the next line once we have proper Yat management functionality in the core wallet experience var addressString = "0x1001=".concat(this.context.walletsListController.records[0].public_address); partnerPath += "?".concat(addressString); if (this.context.refresh_token !== undefined) { partnerPath += "&refresh_token=" + this.context.refresh_token; } this.openExternal(partnerPath); } }, { key: "handleConnectAYatClickEvent", value: function () { var _handleConnectAYatClickEvent = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { var _Swal$fire, walletsString, inputObj, _html, _yield$Swal$fire, address, addressString, partnerPath, refresh_token, _addressString, _partnerPath, _refresh_token; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!(this.context.walletsListController.records.length > 0)) { _context.next = 11; break; } inputObj = {}; this.wallets.forEach(function (wallet) { inputObj[wallet.public_address] = wallet.walletLabel; walletsString += "<option value='".concat(wallet.public_address, "'>").concat(wallet.walletLabel, "</option>"); }); _html = "\n <select>\n ".concat(walletsString, "\n </select>\n "); _context.next = 6; return _sweetalert["default"].fire((_Swal$fire = { input: 'select', inputOptions: inputObj, inputPlaceholder: 'Select a wallet to link to your Yat handle', showCancelButton: true, title: 'Please select a wallet to connect to', background: "#272527", color: "#FFFFFF", confirmButtonColor: "#11bbec", confirmButtonText: 'Connect a Yat', cancelButtonText: 'Close', showCloseButton: true }, (0, _defineProperty2["default"])(_Swal$fire, "showCancelButton", true), (0, _defineProperty2["default"])(_Swal$fire, "inputOptions", inputObj), (0, _defineProperty2["default"])(_Swal$fire, "inputPlaceholder", 'Select a wallet'), (0, _defineProperty2["default"])(_Swal$fire, "showCancelButton", true), (0, _defineProperty2["default"])(_Swal$fire, "inputValidator", function inputValidator(value) { return new Promise(function (resolve) { if (value !== '') { resolve(); } else { resolve('You need to select a wallet'); } }); }), (0, _defineProperty2["default"])(_Swal$fire, "customClass", { confirmButton: 'base-button hoverable-cell navigation-blue-button-enabled action right-save-button', cancelButton: 'base-button hoverable-cell navigation-blue-button-enabled action right-save-button disabled navigation-blue-button-disabled' }), _Swal$fire)); case 6: _yield$Swal$fire = _context.sent; address = _yield$Swal$fire.value; if (address) { this.context.walletsListController.addressToLink = address; addressString = encodeURIComponent("0x1001=".concat(address)); partnerPath = this.partnerPath + "/manage?addresses=" + addressString; if (this.context.refresh_token !== undefined) { refresh_token = this.context.refresh_token; partnerPath += "&refresh_token=" + refresh_token; } this.openExternal(partnerPath); } _context.next = 20; break; case 11: if (!(this.context.walletsListController.records.length === 1)) { _context.next = 19; break; } // immediate redirect this.context.walletsListController.addressToLink = this.wallets.records[0]; _addressString = "0x1001=".concat(this.wallets.records[0]); _partnerPath = this.partnerPath + "/manage?addresses=" + _addressString; if (this.context.refresh_token !== undefined) { _refresh_token = this.context.refresh_token; _partnerPath += "&refresh_token=" + _refresh_token; } this.openExternal(_partnerPath); _context.next = 20; break; case 19: throw new Error("Cannot link a Yat when zero wallets exist"); case 20: case "end": return _context.stop(); } } }, _callee, this); })); function handleConnectAYatClickEvent() { return _handleConnectAYatClickEvent.apply(this, arguments); } return handleConnectAYatClickEvent; }() }, { key: "createRenderRoot", value: function createRenderRoot() { var _this = this; var root = (0, _get2["default"])((0, _getPrototypeOf2["default"])(YatSettingsView.prototype), "createRenderRoot", this).call(this); var self = this; root.addEventListener('click', function (e) { if (e.target.classList.contains("buy-a-yat")) { _this.handleBuyAYatClickEvent(); } if (e.target.classList.contains("connect-a-yat")) { _this.handleConnectAYatClickEvent(); } }); root.addEventListener('touchend', /*#__PURE__*/function () { var _ref = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(e) { var test; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (e.target.classList.contains("buy-a-yat")) { _this.handleBuyAYatClickEvent(e); } if (!e.target.classList.contains("connect-a-yat")) { _context2.next = 5; break; } _context2.next = 4; return _this.handleConnectAYatClickEvent(); case 4: test = _context2.sent; case 5: case "end": return _context2.stop(); } } }, _callee2); })); return function (_x) { return _ref.apply(this, arguments); }; }()); return root; } }, { key: "render", value: function render() { return (0, _lit.html)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n <!-- <div style=\"\">\n <a class=\"clickableLinkButton\">ABOUT MYMONERO</a>\n </div> -->\n <div class=\"form-field\">\n <span class=\"field-title\">\n Yat\n </span>\n </div>\n <div class=\"buy-a-yat\">\n <a class=\"buy-a-yat clickable-link\">Buy a Yat</a> \n </div>\n <div class=\"connect-a-yat\">\n <a class=\"connect-a-yat clickable-link\">Connect / Manage your Yat(s)</a>\n </div>\n "]))); } }], [{ key: "styles", get: function get() { return (0, _lit.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n .clickable-link {\n color: rgb(17, 187, 236); \n cursor: pointer; \n user-select: none; \n font-family: Native-Light, input, menlo, monospace; \n -webkit-font-smoothing: subpixel-antialiased; \n font-size: 10px; \n letter-spacing: 0.5px; \n font-weight: 300; \n width: auto; \n display: inline; \n clear: none; \n -webkit-tap-highlight-color: rgba(0, 0, 0, 0); \n float: none;\n text-transform: uppercase;\n }\n .field-title {\n text-transform: uppercase;\n user-select: none;\n display: block;\n text-align: left;\n color: rgb(248, 247, 248);\n font-family: Native-Regular, input, menlo, monospace;\n font-size: 11px;\n font-weight: lighter;\n }\n div {\n padding: 12px 0px 12px 33px;\n }\n "]))); } }, { key: "properties", get: function get() { return { context: Object, partnerPath: String, wallets: Array }; } }]); return YatSettingsView; }(_lit.LitElement); exports.YatSettingsView = YatSettingsView; try { customElements.define('mym-yat-settings-view', YatSettingsView); } catch (error) {// already defined }