UNPKG

@foreverrbum/ethsign

Version:

This package will allow you to electronically sign documents within your application

205 lines (171 loc) 9.25 kB
"use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _logoBgLight = _interopRequireDefault(require("../../assets/logo-bg-light.png")); var _add = _interopRequireDefault(require("../../assets/add.svg")); var _SignerForm = _interopRequireDefault(require("./SignerForm")); var _dashboard = require("../../helpers/dashboard"); var _reactIntl = require("react-intl"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } 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(o); 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) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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; } var Invite = function Invite(props) { var provider = props.provider, signers = props.signers, handleSigners = props.handleSigners, handleProgress = props.handleProgress, ensEnabled = props.ensEnabled, ethAccount = props.ethAccount, addedSigners = props.addedSigners, updateStoredData = props.updateStoredData; var _useState = (0, _react.useState)(1), _useState2 = _slicedToArray(_useState, 2), max = _useState2[0], handleMax = _useState2[1]; var _useIntl = (0, _reactIntl.useIntl)(), formatMessage = _useIntl.formatMessage; var isAdded = function isAdded(signer) { var index = _.indexOf(addedSigners, signer); if (index > -1) { return true; } else { return false; } }; var _useState3 = (0, _react.useState)(signers.map(function (signer, index) { return /*#__PURE__*/_react.default.createElement(_SignerForm.default, { key: index, ensEnabled: ensEnabled, provider: provider, ethAccount: ethAccount, signers: signers, handleSigners: handleSigners, initialValue: signer, id: index, added: isAdded(signer), updateStoredData: updateStoredData }); })), _useState4 = _slicedToArray(_useState3, 2), forms = _useState4[0], handleForms = _useState4[1]; // this variable just triggers display refresh var _useState5 = (0, _react.useState)(signers.length), _useState6 = _slicedToArray(_useState5, 2), count = _useState6[0], handleCount = _useState6[1]; (0, _react.useEffect)(function () { var isSubscribed = true; addForm(); return function () { return isSubscribed = false; }; }, []); var addForm = function addForm() { var tempForm = forms; tempForm.push( /*#__PURE__*/_react.default.createElement(_SignerForm.default, { provider: provider, key: tempForm.length, ensEnabled: ensEnabled, ethAccount: ethAccount, signers: signers, handleSigners: handleSigners, initialValue: null, id: tempForm.length, added: null, updateStoredData: updateStoredData })); handleForms(tempForm); handleCount(tempForm.length); handleMax(max + 1); }; var validateSigners = function validateSigners() { // if(numOfSigners!=null && signers.length!=numOfSigners){ // let diff = numOfSigners - signers.length; // storeNotif(formatMessage({id: 'ERROR'}), formatMessage({id: 'THIS_CONTRACT_HAS'}, {num:numOfSigners, len: signers.length, operation: (diff>0? 'add':'remove'), diff: (diff>0? diff:diff*-1)}), 'warning') // return; // } var userInputs = []; for (var i = -1; i < max; i++) { if (document.getElementById("signer-".concat(i))) { userInputs.push(document.getElementById("signer-".concat(i)).value); } } var notAdded = _.pullAll(userInputs, signers); var valid = true; notAdded.map(function (signer, idx) { if (signer != "") { valid = false; (0, _dashboard.storeNotif)(formatMessage({ id: 'WARNING' }), formatMessage({ id: 'SIGNER_WAS_ENTERED_BUT_NOT_ADDED' }, { signer: signer }), 'warning'); } }); if (valid) { handleProgress(2); } }; return /*#__PURE__*/_react.default.createElement("div", { className: "select-none max-w-7xl mx-auto px-2 sm:px-6 lg:px-8 w-full my-8 text-gray-300 text-15" }, /*#__PURE__*/_react.default.createElement("div", { className: "relative mx-5 pb-2 border-b border-gray-200" }, /*#__PURE__*/_react.default.createElement("div", { className: "px-3 font-bold text-30 " }, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, { id: "INVITE_SIGNERS" })), /*#__PURE__*/_react.default.createElement("img", { src: _logoBgLight.default, className: "absolute bottom-0 -left-5 -z-10" })), /*#__PURE__*/_react.default.createElement("div", { className: "mx-8 my-10 flex flex-col md:flex-row md:flex-wrap justify-between" }, forms.map(function (form) { return form; })), /*#__PURE__*/_react.default.createElement("div", { className: "mx-8 px-3 mt-5 mb-10" }, /*#__PURE__*/_react.default.createElement("div", { className: "flex" }, /*#__PURE__*/_react.default.createElement("img", { src: _add.default, id: "add-btn", onClick: function onClick() { addForm(); }, className: "cursor-pointer mr-3 hover:shadow-md rounded-full" }), /*#__PURE__*/_react.default.createElement("div", { className: "text-gray-80 my-auto" }, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, { id: "ADD_SIGNER" })))), /*#__PURE__*/_react.default.createElement("div", { className: "flex justify-center xs:justify-end" }, /*#__PURE__*/_react.default.createElement("button", { className: "focus:outline-none text-white mr-5 w-28 py-2 font-medium bg-gray-300 hover:bg-gray-600 rounded-sm", onClick: function onClick() { handleProgress(0); } }, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, { id: "BACK" })), /*#__PURE__*/_react.default.createElement("button", { id: "invite-next-btn", className: "focus:outline-none text-white w-28 py-2 font-medium bg-orange-500 hover:bg-orange-600 rounded-sm", onClick: function onClick() { validateSigners(); } }, /*#__PURE__*/_react.default.createElement(_reactIntl.FormattedMessage, { id: "NEXT" })))); }; var _default = Invite; exports.default = _default;