@rebilly/framepay-react 8.3.0 → 9.0.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +22 -2
- package/README.md +7 -9
- package/build/lib/components/provider.d.ts +0 -1
- package/build/lib/components/provider.js +3 -7
- package/build/lib/constants.d.ts +2 -2
- package/build/lib/constants.js +3 -5
- package/build/lib/dom-util.d.ts +1 -2
- package/build/lib/dom-util.js +62 -27
- package/package.json +2 -1
- package/src/lib/components/provider.spec.tsx +0 -41
- package/src/lib/components/provider.tsx +2 -6
- package/src/lib/constants.ts +4 -6
- package/src/lib/dom-util.ts +10 -22
- package/test/e2e/fixtures/apple-pay.js +0 -1
- package/test/e2e/fixtures/bank-separate.js +1 -1
- package/test/e2e/fixtures/card-separate-brands.js +1 -1
- package/test/e2e/fixtures/card-separate-rebilly-fields.js +1 -1
- package/test/e2e/fixtures/card-separate.js +1 -1
- package/test/e2e/fixtures/checkout-combined.js +1 -1
- package/test/e2e/fixtures/google-pay.js +0 -1
- package/test/e2e/fixtures/iban.js +1 -1
- package/test/e2e/fixtures/inject-metadata.js +0 -1
- package/test/e2e/fixtures/multiple-methods.js +0 -1
- package/test/e2e/fixtures/paypal.js +0 -1
- package/test/e2e/fixtures/samsung-pay.js +0 -1
- package/types/provider.d.ts +0 -1
package/CHANGELOG.md
CHANGED
@@ -1,6 +1,26 @@
|
|
1
|
-
## [
|
1
|
+
## [9.0.0](https://github.com/Rebilly/rebilly/compare/framepay-react-v8.3.0...framepay-react-v9.0.0) (2024-11-26)
|
2
2
|
|
3
3
|
|
4
|
+
### ⚠ BREAKING CHANGES
|
5
|
+
|
6
|
+
* **framepay-react:** use @rebilly/framepay in framepay-react (#8702)
|
7
|
+
* **framepay-npm:** initial release (#8815)
|
8
|
+
|
4
9
|
### Features
|
5
10
|
|
6
|
-
* **
|
11
|
+
* **cashier:** Add hosted app ([#8723](https://github.com/Rebilly/rebilly/issues/8723)) ([49481ec](https://github.com/Rebilly/rebilly/commit/49481ec1336a518d5ba513b53b24a46fdcc47acb))
|
12
|
+
* **framepay-npm:** initial release ([#8815](https://github.com/Rebilly/rebilly/issues/8815)) ([4029127](https://github.com/Rebilly/rebilly/commit/402912752363d7da51424b38185ac239bae7afe6))
|
13
|
+
* **framepay-npm:** Prepare for publishing, and add error propagation ([#8765](https://github.com/Rebilly/rebilly/issues/8765)) ([b4ab4a5](https://github.com/Rebilly/rebilly/commit/b4ab4a52bba2de2c986b1292896391598194ace8))
|
14
|
+
|
15
|
+
|
16
|
+
### Bug Fixes
|
17
|
+
|
18
|
+
* **cashier, framepay-npm:** use framepay-npm types ([#8830](https://github.com/Rebilly/rebilly/issues/8830)) ([8bdeeea](https://github.com/Rebilly/rebilly/commit/8bdeeeaf7accec1d79f2ce4cbdb67a7d4ec76b74))
|
19
|
+
* **framepay-npm:** add the main export for the outdated build tools ([#8766](https://github.com/Rebilly/rebilly/issues/8766)) ([abcd6ea](https://github.com/Rebilly/rebilly/commit/abcd6eaec41223b964b0e71dec8a6893916359de))
|
20
|
+
* **framepay-npm:** publish package publically ([#8817](https://github.com/Rebilly/rebilly/issues/8817)) ([ccc245c](https://github.com/Rebilly/rebilly/commit/ccc245ccc142ea891695233ecd6e62bc905ddeda))
|
21
|
+
* **framepay-react:** fix undefined error ([#8837](https://github.com/Rebilly/rebilly/issues/8837)) ([8d4f6e6](https://github.com/Rebilly/rebilly/commit/8d4f6e65a5edd6d707c3bf36c008a42e67519877))
|
22
|
+
|
23
|
+
|
24
|
+
### Refactors
|
25
|
+
|
26
|
+
* **framepay-react:** use @rebilly/framepay in framepay-react ([#8702](https://github.com/Rebilly/rebilly/issues/8702)) ([87ef705](https://github.com/Rebilly/rebilly/commit/87ef7058f67abe0dfa790cc681adedb0aa710c93))
|
package/README.md
CHANGED
@@ -76,13 +76,13 @@ FramePayProvider provides settings to the FramePay API. See [Framepay.initialize
|
|
76
76
|
// index.js
|
77
77
|
import React from 'react';
|
78
78
|
import { render } from 'react-dom';
|
79
|
-
import { FramePayProvider } from 'framepay-react';
|
79
|
+
import { FramePayProvider } from '@rebilly/framepay-react';
|
80
80
|
|
81
81
|
import MyCardPageComponent from './MyCardPageComponent';
|
82
82
|
|
83
83
|
const App = () => {
|
84
84
|
return (
|
85
|
-
<FramePayProvider
|
85
|
+
<FramePayProvider publishableKey="pk_sandbox_1234567890">
|
86
86
|
<MyCardPageComponent/>
|
87
87
|
</FramePayProvider>
|
88
88
|
);
|
@@ -159,7 +159,7 @@ Wrapper for the payment card features.
|
|
159
159
|
```jsx harmony
|
160
160
|
// MyCardPageComponent.js
|
161
161
|
import React from 'react';
|
162
|
-
import { withFramePayCardComponent } from 'framepay-react';
|
162
|
+
import { withFramePayCardComponent } from '@rebilly/framepay-react';
|
163
163
|
|
164
164
|
class MyCardPageComponent extends React.Component {
|
165
165
|
constructor(props) {
|
@@ -216,7 +216,7 @@ export default withFramePayCardComponent(MyCardPageComponent);
|
|
216
216
|
Wrapper for the ACH features.
|
217
217
|
```jsx harmony
|
218
218
|
import React from 'react';
|
219
|
-
import { withFramePayBankComponent } from 'framepay-react';
|
219
|
+
import { withFramePayBankComponent } from '@rebilly/framepay-react';
|
220
220
|
|
221
221
|
class MyBankPageComponent extends React.Component {
|
222
222
|
constructor(props) {
|
@@ -275,10 +275,8 @@ export default withFramePayBankComponent(MyBankPageComponent);
|
|
275
275
|
The **framepay-react** package supports all the [FramePay](https://www.rebilly.com/docs/dev-docs/framepay/) initialization settings.
|
276
276
|
See [Framepay.initialize](https://www.rebilly.com/docs/dev-docs/framepay-global-reference/#framepay.initialize) for all customizations.
|
277
277
|
|
278
|
-
Additionally `injectStyle` is available. When defined in the `FramePayProvider` it will add the default FramePay CSS in the header of your application.
|
279
|
-
|
280
278
|
```jsx harmony
|
281
|
-
<FramePayProvider
|
279
|
+
<FramePayProvider publishableKey="pk_sandbox_1234567890">
|
282
280
|
<MyCardPageComponent/>
|
283
281
|
</FramePayProvider>
|
284
282
|
```
|
@@ -296,7 +294,7 @@ The methods `withFramePay`, `withFramePayCardComponent` and `withFramePayBankCom
|
|
296
294
|
##### Incorrect
|
297
295
|
```jsx harmony
|
298
296
|
import * as React from 'react';
|
299
|
-
import {withFramePayCardComponent} from 'framepay-react'
|
297
|
+
import {withFramePayCardComponent} from '@rebilly/framepay-react'
|
300
298
|
|
301
299
|
class SomeComponent extends React.Component {
|
302
300
|
render(){
|
@@ -310,7 +308,7 @@ class SomeComponent extends React.Component {
|
|
310
308
|
##### Correct
|
311
309
|
```jsx harmony
|
312
310
|
import * as React from 'react';
|
313
|
-
import {withFramePayCardComponent} from 'framepay-react'
|
311
|
+
import {withFramePayCardComponent} from '@rebilly/framepay-react'
|
314
312
|
|
315
313
|
const MyCardElement = withFramePayCardComponent(MyCardComponent);
|
316
314
|
|
@@ -2,7 +2,6 @@ import * as React from 'react';
|
|
2
2
|
export default class Provider extends React.Component<ProviderProps, FramePayContext> {
|
3
3
|
static readonly defaultProps: {
|
4
4
|
injectScript: boolean;
|
5
|
-
injectStyle: boolean;
|
6
5
|
onError: () => {};
|
7
6
|
onReady: () => {};
|
8
7
|
onTokenReady: () => {};
|
@@ -113,9 +113,6 @@ var Provider = /** @class */ (function (_super) {
|
|
113
113
|
onReady: function () { return _this.onApiReady(); },
|
114
114
|
});
|
115
115
|
}
|
116
|
-
if (this.props.injectStyle) {
|
117
|
-
(0, dom_util_1.injectStyle)();
|
118
|
-
}
|
119
116
|
};
|
120
117
|
Provider.prototype.onApiError = function () {
|
121
118
|
return this.setState({
|
@@ -131,12 +128,12 @@ var Provider = /** @class */ (function (_super) {
|
|
131
128
|
};
|
132
129
|
Provider.prototype.onApiReady = function () {
|
133
130
|
return __awaiter(this, void 0, void 0, function () {
|
134
|
-
var api, _a,
|
131
|
+
var api, _a, children, settings;
|
135
132
|
var _this = this;
|
136
133
|
return __generator(this, function (_b) {
|
137
134
|
api = (0, get_framepay_api_1.default)();
|
138
135
|
try {
|
139
|
-
_a = this.props,
|
136
|
+
_a = this.props, children = _a.children, settings = __rest(_a, ["children"]);
|
140
137
|
api.initialize(settings);
|
141
138
|
api.on('ready', function () {
|
142
139
|
_this.setState({ ready: true, api: api, error: null });
|
@@ -185,7 +182,6 @@ var Provider = /** @class */ (function (_super) {
|
|
185
182
|
};
|
186
183
|
Provider.defaultProps = {
|
187
184
|
injectScript: true,
|
188
|
-
injectStyle: false,
|
189
185
|
onError: function () { return ({}); },
|
190
186
|
onReady: function () { return ({}); },
|
191
187
|
onTokenReady: function () { return ({}); },
|
@@ -193,4 +189,4 @@ var Provider = /** @class */ (function (_super) {
|
|
193
189
|
return Provider;
|
194
190
|
}(React.Component));
|
195
191
|
exports.default = Provider;
|
196
|
-
//# sourceMappingURL=data:application/json;base64,
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvcHJvdmlkZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUErQjtBQUMvQiwwQ0FBb0Q7QUFDcEQsc0NBQTZDO0FBQzdDLHdDQUEyQztBQUMzQyxxRUFBOEM7QUFDOUMseUVBQWlEO0FBRWpEO0lBQXNDLDRCQUdyQztJQUhEOztRQVdhLFdBQUssR0FBb0I7WUFDOUIsR0FBRyxFQUFFLElBQUEsMEJBQWMsR0FBRTtZQUNyQixLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxLQUFLO1NBQ2YsQ0FBQzs7SUFvRk4sQ0FBQztJQWxGRyxvQ0FBaUIsR0FBakI7UUFBQSxpQkFPQztRQU5HLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQixJQUFBLHVCQUFZLEVBQUM7Z0JBQ1QsT0FBTyxFQUFFLGNBQU0sT0FBQSxLQUFJLENBQUMsVUFBVSxFQUFFLEVBQWpCLENBQWlCO2dCQUNoQyxPQUFPLEVBQUUsY0FBTSxPQUFBLEtBQUksQ0FBQyxVQUFVLEVBQUUsRUFBakIsQ0FBaUI7YUFDbkMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztJQUNMLENBQUM7SUFFRCw2QkFBVSxHQUFWO1FBQ0ksT0FBTyxJQUFJLENBQUMsUUFBUSxDQUNoQjtZQUNJLEtBQUssRUFBRSx3QkFBYSxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7WUFDNUMsS0FBSyxFQUFFLEtBQUs7U0FDZixFQUNEO1lBQ0ksSUFBTSxLQUFLLEdBQUcsSUFBQSx3QkFBYSxFQUFDO2dCQUN4QixJQUFJLEVBQUUsd0JBQWEsQ0FBQyxLQUFLLENBQUMsaUJBQWlCO2dCQUMzQyxPQUFPLEVBQUUs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
|
package/build/lib/constants.d.ts
CHANGED
@@ -12,11 +12,11 @@ export declare const REACT_VERSION: string;
|
|
12
12
|
/**
|
13
13
|
* Remote FramePay library CDN link.
|
14
14
|
*/
|
15
|
-
export declare const FRAMEPAY_SCRIPT_LINK: string;
|
15
|
+
export declare const FRAMEPAY_SCRIPT_LINK: string | undefined;
|
16
16
|
/**
|
17
17
|
* Remote FramePay style CDN link.
|
18
18
|
*/
|
19
|
-
export declare const FRAMEPAY_STYLE_LINK: string;
|
19
|
+
export declare const FRAMEPAY_STYLE_LINK: string | undefined;
|
20
20
|
/**
|
21
21
|
* Supported FramePay card types
|
22
22
|
*/
|
package/build/lib/constants.js
CHANGED
@@ -39,13 +39,11 @@ exports.REACT_VERSION = React.version;
|
|
39
39
|
/**
|
40
40
|
* Remote FramePay library CDN link.
|
41
41
|
*/
|
42
|
-
exports.FRAMEPAY_SCRIPT_LINK = process.env.FRAMEPAY_SCRIPT_LINK
|
43
|
-
'https://framepay.rebilly.com/framepay.js';
|
42
|
+
exports.FRAMEPAY_SCRIPT_LINK = typeof process === 'object' ? process.env.FRAMEPAY_SCRIPT_LINK : undefined;
|
44
43
|
/**
|
45
44
|
* Remote FramePay style CDN link.
|
46
45
|
*/
|
47
|
-
exports.FRAMEPAY_STYLE_LINK = process.env.FRAMEPAY_STYLE_LINK
|
48
|
-
'https://framepay.rebilly.com/framepay.css';
|
46
|
+
exports.FRAMEPAY_STYLE_LINK = typeof process === 'object' ? process.env.FRAMEPAY_STYLE_LINK : undefined;
|
49
47
|
/**
|
50
48
|
* Supported FramePay card types
|
51
49
|
*/
|
@@ -60,4 +58,4 @@ exports.SUPPORTED_CARD_BRANDS = {
|
|
60
58
|
MasterCard: "MasterCard" /* SupportedCardBrands.MasterCard */,
|
61
59
|
Visa: "Visa" /* SupportedCardBrands.Visa */,
|
62
60
|
};
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBK0I7QUFFL0I7Ozs7O0dBS0c7QUFFSDs7O0dBR0c7QUFDVSxRQUFBLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO0FBRTNDOztHQUVHO0FBQ1UsUUFBQSxvQkFBb0IsR0FDN0IsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFFL0U7O0dBRUc7QUFDVSxRQUFBLG1CQUFtQixHQUM1QixPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUU5RTs7R0FFRztBQUNVLFFBQUEscUJBQXFCLEdBQThCO0lBQzVELElBQUksbURBQTBCO0lBQzlCLFlBQVksd0RBQWtDO0lBQzlDLEdBQUcsK0NBQXlCO0lBQzVCLFVBQVUsb0RBQWdDO0lBQzFDLFFBQVEsK0NBQThCO0lBQ3RDLEdBQUcscUNBQXlCO0lBQzVCLE9BQU8sNkNBQTZCO0lBQ3BDLFVBQVUsbURBQWdDO0lBQzFDLElBQUksdUNBQTBCO0NBQ2pDLENBQUMifQ==
|
package/build/lib/dom-util.d.ts
CHANGED
@@ -2,6 +2,5 @@ interface ScriptProperties {
|
|
2
2
|
readonly onReady: () => void;
|
3
3
|
readonly onError: () => void;
|
4
4
|
}
|
5
|
-
export declare const injectScript: ({ onReady, onError }: ScriptProperties) => void
|
6
|
-
export declare const injectStyle: () => void;
|
5
|
+
export declare const injectScript: ({ onReady, onError }: ScriptProperties) => Promise<void>;
|
7
6
|
export {};
|
package/build/lib/dom-util.js
CHANGED
@@ -1,31 +1,66 @@
|
|
1
1
|
"use strict";
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
script.setAttribute('async', 'true');
|
11
|
-
script.setAttribute('defer', 'true');
|
12
|
-
script.setAttribute('src', constants_1.FRAMEPAY_SCRIPT_LINK);
|
13
|
-
script.setAttribute('defer', 'true');
|
14
|
-
script.addEventListener('load', function () { return onReady(); });
|
15
|
-
script.addEventListener('error', function () { return onError(); });
|
16
|
-
if (header) {
|
17
|
-
header.appendChild(script);
|
18
|
-
}
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
19
10
|
};
|
20
|
-
|
21
|
-
var
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
15
|
+
function step(op) {
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
20
|
+
switch (op[0]) {
|
21
|
+
case 0: case 1: t = op; break;
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
25
|
+
default:
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
30
|
+
if (t[2]) _.ops.pop();
|
31
|
+
_.trys.pop(); continue;
|
32
|
+
}
|
33
|
+
op = body.call(thisArg, _);
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
28
36
|
}
|
29
37
|
};
|
30
|
-
exports
|
31
|
-
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
39
|
+
exports.injectScript = void 0;
|
40
|
+
var constants_1 = require("./constants");
|
41
|
+
var framepay_1 = require("@rebilly/framepay");
|
42
|
+
var injectScript = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
43
|
+
var _error_1;
|
44
|
+
var onReady = _b.onReady, onError = _b.onError;
|
45
|
+
return __generator(this, function (_c) {
|
46
|
+
switch (_c.label) {
|
47
|
+
case 0:
|
48
|
+
_c.trys.push([0, 2, , 3]);
|
49
|
+
return [4 /*yield*/, (0, framepay_1.loadFramepay)({
|
50
|
+
scriptLink: constants_1.FRAMEPAY_SCRIPT_LINK,
|
51
|
+
styleLink: constants_1.FRAMEPAY_STYLE_LINK,
|
52
|
+
})];
|
53
|
+
case 1:
|
54
|
+
_c.sent();
|
55
|
+
onReady();
|
56
|
+
return [3 /*break*/, 3];
|
57
|
+
case 2:
|
58
|
+
_error_1 = _c.sent();
|
59
|
+
onError();
|
60
|
+
return [3 /*break*/, 3];
|
61
|
+
case 3: return [2 /*return*/];
|
62
|
+
}
|
63
|
+
});
|
64
|
+
}); };
|
65
|
+
exports.injectScript = injectScript;
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2RvbS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHlDQUF3RTtBQUN4RSw4Q0FBaUQ7QUFPMUMsSUFBTSxZQUFZLEdBQUcsaUVBQU8sRUFBc0M7O1FBQXBDLE9BQU8sYUFBQSxFQUFFLE9BQU8sYUFBQTs7Ozs7Z0JBRTdDLHFCQUFNLElBQUEsdUJBQVksRUFBQzt3QkFDZixVQUFVLEVBQUUsZ0NBQW9CO3dCQUNoQyxTQUFTLEVBQUUsK0JBQW1CO3FCQUNqQyxDQUFDLEVBQUE7O2dCQUhGLFNBR0UsQ0FBQztnQkFDSCxPQUFPLEVBQUUsQ0FBQzs7OztnQkFFVixPQUFPLEVBQUUsQ0FBQzs7Ozs7S0FFakIsQ0FBQztBQVZXLFFBQUEsWUFBWSxnQkFVdkIifQ==
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@rebilly/framepay-react",
|
3
|
-
"version": "
|
3
|
+
"version": "9.0.0",
|
4
4
|
"description": "A React wrapper for Rebilly's FramePay offering out-of-the-box support for Redux and other common React features",
|
5
5
|
"main": "build/index.js",
|
6
6
|
"author": "Rebilly",
|
@@ -59,6 +59,7 @@
|
|
59
59
|
"react-dom": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
|
60
60
|
},
|
61
61
|
"dependencies": {
|
62
|
+
"@rebilly/framepay": "*",
|
62
63
|
"create-react-context": "^0.3.0"
|
63
64
|
},
|
64
65
|
"devDependencies": {
|
@@ -1,49 +1,8 @@
|
|
1
1
|
import { render } from '@testing-library/react';
|
2
2
|
import * as React from 'react';
|
3
|
-
import { FRAMEPAY_SCRIPT_LINK, FRAMEPAY_STYLE_LINK } from '../constants';
|
4
3
|
import Provider from './provider';
|
5
4
|
|
6
5
|
describe('Provider', () => {
|
7
|
-
it('should add the FramePay script on the page', () => {
|
8
|
-
const props = { publishableKey: 'pk_sandbox_1234567890' };
|
9
|
-
|
10
|
-
class ChildComponent extends React.Component {
|
11
|
-
render() {
|
12
|
-
return <div>child</div>;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
|
16
|
-
expect(document.head.innerHTML).not.toContain(FRAMEPAY_SCRIPT_LINK);
|
17
|
-
|
18
|
-
render(
|
19
|
-
<Provider {...props}>
|
20
|
-
<ChildComponent />
|
21
|
-
</Provider>,
|
22
|
-
);
|
23
|
-
expect(document.head.innerHTML).toContain(FRAMEPAY_SCRIPT_LINK);
|
24
|
-
});
|
25
|
-
|
26
|
-
it('should add the FramePay styles on the page', () => {
|
27
|
-
const props = {
|
28
|
-
injectStyle: true,
|
29
|
-
publishableKey: 'pk_sandbox_1234567890',
|
30
|
-
};
|
31
|
-
|
32
|
-
class ChildComponent extends React.Component {
|
33
|
-
render() {
|
34
|
-
return <div>child</div>;
|
35
|
-
}
|
36
|
-
}
|
37
|
-
|
38
|
-
expect(document.head.innerHTML).not.toContain(FRAMEPAY_STYLE_LINK);
|
39
|
-
render(
|
40
|
-
<Provider {...props}>
|
41
|
-
<ChildComponent />
|
42
|
-
</Provider>,
|
43
|
-
);
|
44
|
-
expect(document.head.innerHTML).toContain(FRAMEPAY_STYLE_LINK);
|
45
|
-
});
|
46
|
-
|
47
6
|
it('should render with single child component', () => {
|
48
7
|
const props = { publishableKey: 'pk_sandbox_1234567890' };
|
49
8
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import * as React from 'react';
|
2
2
|
import { FRAMEPAY_SCRIPT_LINK } from '../constants';
|
3
3
|
import { ContextProvider } from '../context';
|
4
|
-
import { injectScript
|
4
|
+
import { injectScript } from '../dom-util';
|
5
5
|
import FramePayError from '../framepay-error';
|
6
6
|
import getFramepayApi from '../get-framepay-api';
|
7
7
|
|
@@ -11,7 +11,6 @@ export default class Provider extends React.Component<
|
|
11
11
|
> {
|
12
12
|
static readonly defaultProps = {
|
13
13
|
injectScript: true,
|
14
|
-
injectStyle: false,
|
15
14
|
onError: () => ({}),
|
16
15
|
onReady: () => ({}),
|
17
16
|
onTokenReady: () => ({}),
|
@@ -30,9 +29,6 @@ export default class Provider extends React.Component<
|
|
30
29
|
onReady: () => this.onApiReady(),
|
31
30
|
});
|
32
31
|
}
|
33
|
-
if (this.props.injectStyle) {
|
34
|
-
injectStyle();
|
35
|
-
}
|
36
32
|
}
|
37
33
|
|
38
34
|
onApiError() {
|
@@ -55,7 +51,7 @@ export default class Provider extends React.Component<
|
|
55
51
|
const api = getFramepayApi();
|
56
52
|
try {
|
57
53
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
58
|
-
const {
|
54
|
+
const { children, ...settings } = this.props;
|
59
55
|
api.initialize(settings);
|
60
56
|
api.on('ready', () => {
|
61
57
|
this.setState({ ready: true, api, error: null });
|
package/src/lib/constants.ts
CHANGED
@@ -16,16 +16,14 @@ export const REACT_VERSION = React.version;
|
|
16
16
|
/**
|
17
17
|
* Remote FramePay library CDN link.
|
18
18
|
*/
|
19
|
-
export const FRAMEPAY_SCRIPT_LINK
|
20
|
-
process.env.FRAMEPAY_SCRIPT_LINK
|
21
|
-
'https://framepay.rebilly.com/framepay.js';
|
19
|
+
export const FRAMEPAY_SCRIPT_LINK =
|
20
|
+
typeof process === 'object' ? process.env.FRAMEPAY_SCRIPT_LINK : undefined;
|
22
21
|
|
23
22
|
/**
|
24
23
|
* Remote FramePay style CDN link.
|
25
24
|
*/
|
26
|
-
export const FRAMEPAY_STYLE_LINK
|
27
|
-
process.env.FRAMEPAY_STYLE_LINK
|
28
|
-
'https://framepay.rebilly.com/framepay.css';
|
25
|
+
export const FRAMEPAY_STYLE_LINK =
|
26
|
+
typeof process === 'object' ? process.env.FRAMEPAY_STYLE_LINK : undefined;
|
29
27
|
|
30
28
|
/**
|
31
29
|
* Supported FramePay card types
|
package/src/lib/dom-util.ts
CHANGED
@@ -1,31 +1,19 @@
|
|
1
1
|
import { FRAMEPAY_SCRIPT_LINK, FRAMEPAY_STYLE_LINK } from './constants';
|
2
|
+
import { loadFramepay } from '@rebilly/framepay';
|
2
3
|
|
3
4
|
interface ScriptProperties {
|
4
5
|
readonly onReady: () => void;
|
5
6
|
readonly onError: () => void;
|
6
7
|
}
|
7
8
|
|
8
|
-
export const injectScript = ({ onReady, onError }: ScriptProperties) => {
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
script.addEventListener('error', () => onError());
|
18
|
-
if (header) {
|
19
|
-
header.appendChild(script);
|
20
|
-
}
|
21
|
-
};
|
22
|
-
|
23
|
-
export const injectStyle = () => {
|
24
|
-
const style = document.createElement('link');
|
25
|
-
const header = document.querySelector('head');
|
26
|
-
style.setAttribute('rel', 'stylesheet');
|
27
|
-
style.setAttribute('href', FRAMEPAY_STYLE_LINK);
|
28
|
-
if (header) {
|
29
|
-
header.appendChild(style);
|
9
|
+
export const injectScript = async ({ onReady, onError }: ScriptProperties) => {
|
10
|
+
try {
|
11
|
+
await loadFramepay({
|
12
|
+
scriptLink: FRAMEPAY_SCRIPT_LINK,
|
13
|
+
styleLink: FRAMEPAY_STYLE_LINK,
|
14
|
+
});
|
15
|
+
onReady();
|
16
|
+
} catch (_error) {
|
17
|
+
onError();
|
30
18
|
}
|
31
19
|
};
|
@@ -311,7 +311,7 @@ const BankElement = withFramePayBankComponent(CardElementComponent);
|
|
311
311
|
class App extends Component {
|
312
312
|
render() {
|
313
313
|
return (
|
314
|
-
<FramePayProvider
|
314
|
+
<FramePayProvider {...params}>
|
315
315
|
<div>
|
316
316
|
{ReactVersion()}
|
317
317
|
<BankElement />
|
@@ -364,7 +364,7 @@ const CardElement = withFramePayCardComponent(CardElementComponent);
|
|
364
364
|
class App extends Component {
|
365
365
|
render() {
|
366
366
|
return (
|
367
|
-
<FramePayProvider
|
367
|
+
<FramePayProvider {...params}>
|
368
368
|
<div>
|
369
369
|
{ReactVersion()}
|
370
370
|
<CardElement />
|
@@ -259,7 +259,7 @@ const CardElement = withFramePayCardComponent(CardElementComponent);
|
|
259
259
|
class App extends Component {
|
260
260
|
render() {
|
261
261
|
return (
|
262
|
-
<FramePayProvider
|
262
|
+
<FramePayProvider {...params}>
|
263
263
|
<div>
|
264
264
|
{ReactVersion()}
|
265
265
|
<CardElement />
|
@@ -316,7 +316,7 @@ const CardElement = withFramePayCardComponent(CardElementComponent);
|
|
316
316
|
class App extends Component {
|
317
317
|
render() {
|
318
318
|
return (
|
319
|
-
<FramePayProvider
|
319
|
+
<FramePayProvider {...params}>
|
320
320
|
<div>
|
321
321
|
{ReactVersion()}
|
322
322
|
<CardElement />
|
@@ -236,7 +236,7 @@ const CardElement = withFramePayCardComponent(CardElementComponent);
|
|
236
236
|
class App extends Component {
|
237
237
|
render() {
|
238
238
|
return (
|
239
|
-
<FramePayProvider
|
239
|
+
<FramePayProvider {...params}>
|
240
240
|
<div>
|
241
241
|
{ReactVersion()}
|
242
242
|
<CardElement />
|
@@ -228,7 +228,7 @@ const IBANElement = withFramePayIBANComponent(IBANlementComponent);
|
|
228
228
|
class App extends Component {
|
229
229
|
render() {
|
230
230
|
return (
|
231
|
-
<FramePayProvider
|
231
|
+
<FramePayProvider {...params}>
|
232
232
|
<div>
|
233
233
|
{ReactVersion()};
|
234
234
|
<IBANElement />
|
package/types/provider.d.ts
CHANGED