react-native-klarna-inapp-sdk
Version:
This library wraps Klarna Mobile SDK and exposes its functionality as React Native components.
89 lines (88 loc) • 3.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.KlarnaStandaloneWebView = void 0;
var _react = _interopRequireWildcard(require("react"));
var _KlarnaStandaloneWebViewNativeComponent = _interopRequireWildcard(require("./specs/KlarnaStandaloneWebViewNativeComponent"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
class KlarnaStandaloneWebView extends _react.Component {
constructor(props) {
super(props);
this.standaloneWebViewRef = /*#__PURE__*/_react.default.createRef();
}
render() {
return /*#__PURE__*/_react.default.createElement(_KlarnaStandaloneWebViewNativeComponent.default, {
ref: this.standaloneWebViewRef,
style: this.props.style,
returnUrl: this.props.returnUrl || '',
overScrollMode: this.props.overScrollMode ?? 'always',
bounces: this.props.bounces ?? true,
onLoadStart: event => {
if (this.props.onLoadStart != null) {
this.props.onLoadStart(event.nativeEvent.navigationEvent);
}
},
onLoadEnd: event => {
if (this.props.onLoadEnd != null) {
this.props.onLoadEnd(event.nativeEvent.navigationEvent);
}
},
onError: event => {
if (this.props.onError != null) {
this.props.onError(event.nativeEvent.error);
}
},
onLoadProgress: event => {
if (this.props.onLoadProgress != null) {
this.props.onLoadProgress(event.nativeEvent.progressEvent);
}
},
onKlarnaMessage: event => {
if (this.props.onKlarnaMessage != null) {
const klarnaMessageEvent = event.nativeEvent.klarnaMessageEvent;
let params = {};
try {
params = JSON.parse(klarnaMessageEvent.params);
} catch (e) {}
this.props.onKlarnaMessage({
action: klarnaMessageEvent.action,
params: params
});
}
},
onRenderProcessGone: event => {
if (this.props.onRenderProcessGone != null) {
this.props.onRenderProcessGone(event.nativeEvent.renderProcessGoneEvent);
}
}
});
}
load = url => {
const view = this.standaloneWebViewRef.current;
if (view != null) {
_KlarnaStandaloneWebViewNativeComponent.Commands.load(view, url);
}
};
goForward = () => {
const view = this.standaloneWebViewRef.current;
if (view != null) {
_KlarnaStandaloneWebViewNativeComponent.Commands.goForward(view);
}
};
goBack = () => {
const view = this.standaloneWebViewRef.current;
if (view != null) {
_KlarnaStandaloneWebViewNativeComponent.Commands.goBack(view);
}
};
reload = () => {
const view = this.standaloneWebViewRef.current;
if (view != null) {
_KlarnaStandaloneWebViewNativeComponent.Commands.reload(view);
}
};
}
exports.KlarnaStandaloneWebView = KlarnaStandaloneWebView;
var _default = exports.default = KlarnaStandaloneWebView;
//# sourceMappingURL=KlarnaStandaloneWebView.js.map