@foreverrbum/ethsign
Version:
This package will allow you to electronically sign documents within your application
205 lines (171 loc) • 9.25 kB
JavaScript
;
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;