@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
JavaScript
"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
}