UNPKG

react-payline

Version:

_This is an unofficial repository_

57 lines 2.67 kB
"use strict"; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = __importStar(require("react")); var getBaseUrl = function (production) { return production ? 'https://payment.cdn.payline.com/cdn' : 'https://homologation-payment.cdn.payline.com/cdn'; }; var getScriptUrl = function (production) { return getBaseUrl(production) + "/scripts/widget-min.js"; }; var getStylesheetUrl = function (production) { return getBaseUrl(production) + "/styles/widget-min.css"; }; function PaylineHead(_a) { var _b = _a.production, production = _b === void 0 ? false : _b; return (react_1.default.createElement(react_1.default.Fragment, null, react_1.default.createElement("script", { src: getScriptUrl(production) }), react_1.default.createElement("link", { href: getStylesheetUrl(production), rel: "stylesheet" }))); } exports.PaylineHead = PaylineHead; function PaylineProvider(_a) { var _b = _a.production, production = _b === void 0 ? false : _b, children = _a.children; // add script var scriptUrl = getScriptUrl(production); var _c = react_1.useState(window.Payline !== undefined), setIsLoaded = _c[1]; react_1.useLayoutEffect(function () { var script = document.querySelector("script[src=\"" + scriptUrl + "\"]"); if (!script) { script = document.createElement('script'); script.src = scriptUrl; document.head.appendChild(script); } var onLoad = function () { return setIsLoaded(true); }; script.addEventListener('load', onLoad, false); return function () { if (script) script.removeEventListener('load', onLoad, false); }; }, [scriptUrl]); // add stylesheet var stylesheetUrl = getStylesheetUrl(production); react_1.useLayoutEffect(function () { var stylesheet = document.querySelector("link[href=\"" + stylesheetUrl + "\"]"); if (!stylesheet) { stylesheet = document.createElement('link'); stylesheet.href = stylesheetUrl; stylesheet.rel = 'stylesheet'; document.head.appendChild(stylesheet); } }, [stylesheetUrl]); // render children return react_1.default.createElement(react_1.default.Fragment, null, children); } exports.default = PaylineProvider; //# sourceMappingURL=PaylineProvider.js.map