1
- import { useEffect } from 'react' ;
1
+ import { useEffect , forwardRef } from 'react' ;
2
2
import { Alert , Linking } from 'react-native' ;
3
3
import { WebView , WebViewMessageEvent } from 'react-native-webview' ;
4
4
import { InAppBrowser } from 'react-native-inappbrowser-reborn' ;
5
- import { generateURL } from 'Utils/generate-url' ;
5
+ import { generateGlobalTransakUrl } from 'Utils/generate-global-transak -url' ;
6
6
import { eventListener } from 'Utils/event-listener' ;
7
7
import { TransakWebViewInputs } from 'Types/sdk-config.types' ;
8
8
9
- function TransakWebView ( { transakConfig, onTransakEvent, ...webviewProps } : TransakWebViewInputs ) {
10
- const transakUrl = generateURL ( transakConfig ) ;
9
+ const TransakWebView = forwardRef < WebView , TransakWebViewInputs > ( ( { transakConfig, onTransakEvent, ...webviewProps } , ref ) => {
10
+ const transakUrl = generateGlobalTransakUrl ( transakConfig ) ;
11
11
const currentWebviewProps = { ...webviewProps } ;
12
12
13
13
delete currentWebviewProps . sharedCookiesEnabled ;
@@ -49,15 +49,16 @@ function TransakWebView({ transakConfig, onTransakEvent, ...webviewProps }: Tran
49
49
}
50
50
} ;
51
51
52
- const onMessageHandler = async ( event : WebViewMessageEvent ) => {
52
+ const onMessageHandler = ( event : WebViewMessageEvent ) => {
53
53
if ( webviewProps . onMessage ) {
54
54
webviewProps . onMessage ( event ) ;
55
55
}
56
56
57
57
const url = event . nativeEvent . data ;
58
58
59
59
if ( url . includes ( '/googlepay' ) ) {
60
- await openTransak ( url . replace ( 'isWebView' , 'useAsExternalPayment' ) ) ;
60
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
61
+ openTransak ( url . replace ( 'isWebView' , 'useAsExternalPayment' ) ) ;
61
62
}
62
63
} ;
63
64
@@ -71,6 +72,7 @@ function TransakWebView({ transakConfig, onTransakEvent, ...webviewProps }: Tran
71
72
72
73
return (
73
74
< WebView
75
+ ref = { ref }
74
76
{ ...currentWebviewProps }
75
77
originWhitelist = { [ '*' ] }
76
78
source = { { uri : transakUrl } }
@@ -79,6 +81,6 @@ function TransakWebView({ transakConfig, onTransakEvent, ...webviewProps }: Tran
79
81
onMessage = { onMessageHandler }
80
82
/>
81
83
) ;
82
- }
84
+ } ) ;
83
85
84
86
export { TransakWebView } ;
0 commit comments