UNPKG

react-native-klarna-inapp-sdk

Version:

This library wraps Klarna Mobile SDK and exposes its functionality as React Native components.

81 lines 2.67 kB
import React, { Component } from 'react'; import RNKlarnaStandaloneWebView, { Commands as RNKlarnaStandaloneWebViewCommands } from './specs/KlarnaStandaloneWebViewNativeComponent'; export class KlarnaStandaloneWebView extends Component { constructor(props) { super(props); this.standaloneWebViewRef = /*#__PURE__*/React.createRef(); } render() { return /*#__PURE__*/React.createElement(RNKlarnaStandaloneWebView, { 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) { RNKlarnaStandaloneWebViewCommands.load(view, url); } }; goForward = () => { const view = this.standaloneWebViewRef.current; if (view != null) { RNKlarnaStandaloneWebViewCommands.goForward(view); } }; goBack = () => { const view = this.standaloneWebViewRef.current; if (view != null) { RNKlarnaStandaloneWebViewCommands.goBack(view); } }; reload = () => { const view = this.standaloneWebViewRef.current; if (view != null) { RNKlarnaStandaloneWebViewCommands.reload(view); } }; } export default KlarnaStandaloneWebView; //# sourceMappingURL=KlarnaStandaloneWebView.js.map