UNPKG

@rebilly/framepay-react

Version:

A React wrapper for Rebilly's FramePay offering out-of-the-box support for Redux and other common React features

151 lines 8.72 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); 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 () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var React = __importStar(require("react")); var BaseElement = /** @class */ (function (_super) { __extends(BaseElement, _super); function BaseElement() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.state = { element: null, mounted: false, ready: false, }; _this.elementNode = null; return _this; } BaseElement.prototype.componentWillUnmount = function () { if (this.state.mounted && !this.state.element) { console.warn("WARNING Element does not exist, please fix the setupElement method and add setState({element})"); return; } if (this.state.element) { this.state.element.destroy(); } }; BaseElement.prototype.componentDidMount = function () { this.handleSetupElement(); }; BaseElement.prototype.setupElement = function () { throw new Error("Please implement method setupElement"); }; BaseElement.prototype.handleSetupElement = function () { if (!this.props.Framepay.ready) { /** * The remote api isn't ready */ return; } if (this.state.mounted) { /** * The field already mounted */ return; } if (!this.elementNode) { /** * Component dom element not mounted */ return; } /** * Setup field */ // @ts-expect-error todo fix type issue this.state.mounted = true; this.setupElement(); }; // eslint-disable-next-line @typescript-eslint/no-explicit-any BaseElement.prototype.shouldComponentUpdate = function (nextProps, nextState) { // we can't use the componentDidUpdate, componentWillReceiveProps methods // also, we can't return true here (to avoid the dom element re-render) // so, in that case we had to use that method as componentDidUpdate or componentWillReceiveProps // with some magic // eslint-disable-next-line @typescript-eslint/no-explicit-any var rules = [ [this.props.Framepay.ready, nextProps.Framepay.ready], [this.state.mounted, nextState.mounted], [this.state.ready, nextState.ready], [Boolean(this.state.element), Boolean(nextState.element)], ]; var shouldUpdate = rules.find(function (_a) { var prev = _a[0], next = _a[1]; return prev !== next; }); if (shouldUpdate) { // @ts-expect-error todo fix typing issues this.props = nextProps; this.handleSetupElement(); // @ts-expect-error todo fix typing issues this.state = __assign({}, nextState); } return false; }; BaseElement.prototype.render = function () { var _this = this; return (React.createElement("div", { id: this.props.id, ref: function (node) { _this.elementNode = node; } })); }; return BaseElement; }(React.Component)); exports.default = BaseElement; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2VsZW1lbnRzL2Jhc2UtZWxlbWVudC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUErQjtBQU0vQjtJQUdVLCtCQUFxQjtJQUgvQjs7UUFJYSxXQUFLLEdBQUc7WUFDYixPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxLQUFLO1lBQ2QsS0FBSyxFQUFFLEtBQUs7U0FDVixDQUFDO1FBRUcsaUJBQVcsR0FBMEIsSUFBSSxDQUFDOztJQXNGeEQsQ0FBQztJQXBGRywwQ0FBb0IsR0FBcEI7UUFDSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QyxPQUFPLENBQUMsSUFBSSxDQUNSLGdHQUFnRyxDQUNuRyxDQUFDO1lBQ0YsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNMLENBQUM7SUFFRCx1Q0FBaUIsR0FBakI7UUFDSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsa0NBQVksR0FBWjtRQUNJLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsd0NBQWtCLEdBQWxCO1FBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdCOztlQUVHO1lBQ0gsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckI7O2VBRUc7WUFDSCxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDcEI7O2VBRUc7WUFDSCxPQUFPO1FBQ1gsQ0FBQztRQUNEOztXQUVHO1FBQ0gsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCwyQ0FBcUIsR0FBckIsVUFBc0IsU0FBYyxFQUFFLFNBQWM7UUFDaEQseUVBQXlFO1FBQ3pFLHVFQUF1RTtRQUN2RSxnR0FBZ0c7UUFDaEcsa0JBQWtCO1FBQ2xCLDhEQUE4RDtRQUM5RCxJQUFNLEtBQUssR0FBdUI7WUFDOUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDckQsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDO1lBQ3ZDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDNUQsQ0FBQztRQUVGLElBQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBQyxFQUFZO2dCQUFYLElBQUksUUFBQSxFQUFFLElBQUksUUFBQTtZQUFNLE9BQUEsSUFBSSxLQUFLLElBQUk7UUFBYixDQUFhLENBQUMsQ0FBQztRQUVqRSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2YsMENBQTBDO1lBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLDBDQUEwQztZQUMxQyxJQUFJLENBQUMsS0FBSyxnQkFBUSxTQUFTLENBQUUsQ0FBQztRQUNsQyxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVELDRCQUFNLEdBQU47UUFBQSxpQkFTQztRQVJHLE9BQU8sQ0FDSCw2QkFDSSxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQ2pCLEdBQUcsRUFBRSxVQUFDLElBQUk7Z0JBQ04sS0FBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDNUIsQ0FBQyxHQUNILENBQ0wsQ0FBQztJQUNOLENBQUM7SUFDTCxrQkFBQztBQUFELENBQUMsQUFoR0QsQ0FHVSxLQUFLLENBQUMsU0FBUyxHQTZGeEIifQ==