partner_react_native_sdk 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
 
3
- // import { APICall } from "../network/APICall";
3
+ import { APICall } from "../network/APICall.js";
4
4
  import { ServiceNames } from "../ServiceNames.js";
5
5
  import { DeviceInfoManager } from "../utils/deviceInfoManager.js";
6
6
  import { AnalyticsEvent } from "./analytics_event_model.js";
7
7
  import { EventStorage } from "./event_storage.js";
8
8
  export class AnalyticsLogger {
9
- // private apiCall = new APICall();
10
-
9
+ apiCall = new APICall();
11
10
  events = [];
12
11
  debouncerTimer = null;
13
12
  _lastPost = 0;
@@ -57,11 +56,12 @@ export class AnalyticsLogger {
57
56
  try {
58
57
  console.log("ANALYTICS_URL ", this.analyticsUrl);
59
58
  console.log('Posting events:', eventsToSend);
60
- // const payload = {
61
- // body: { data: eventsToSend.map(event => event.toJson()) },
62
-
63
- // };
64
- // const response = await this.apiCall.callAPI('POST', this.analyticsUrl, payload);
59
+ const payload = {
60
+ body: {
61
+ data: eventsToSend.map(event => event.toJson())
62
+ }
63
+ };
64
+ const response = await this.apiCall.callAPI('POST', this.analyticsUrl, payload);
65
65
  await this.eventStorage.clearEvents();
66
66
  } catch (error) {
67
67
  console.error('Error posting events:', error);
@@ -1 +1 @@
1
- {"version":3,"names":["ServiceNames","DeviceInfoManager","AnalyticsEvent","EventStorage","AnalyticsLogger","events","debouncerTimer","_lastPost","maxBatchSize","maxInterval","analyticsUrl","ANALYTICS_URL","eventStorage","constructor","getInstance","instance","logEvent","info","device","getDeviceInfo","now","Date","toLocaleString","replace","slice","console","log","event","time","loadEvents","push","saveEvents","nowMillis","length","post","debouncePost","clearTimeout","setTimeout","eventsToSend","clearEvents","error"],"sourceRoot":"../../../../src","sources":["helpers/analytics/analytics_logger.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["APICall","ServiceNames","DeviceInfoManager","AnalyticsEvent","EventStorage","AnalyticsLogger","apiCall","events","debouncerTimer","_lastPost","maxBatchSize","maxInterval","analyticsUrl","ANALYTICS_URL","eventStorage","constructor","getInstance","instance","logEvent","info","device","getDeviceInfo","now","Date","toLocaleString","replace","slice","console","log","event","time","loadEvents","push","saveEvents","nowMillis","length","post","debouncePost","clearTimeout","setTimeout","eventsToSend","payload","body","data","map","toJson","response","callAPI","clearEvents","error"],"sourceRoot":"../../../../src","sources":["helpers/analytics/analytics_logger.tsx"],"mappings":"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","ignoreList":[]}
@@ -19,7 +19,6 @@ export const WebView = ({
19
19
  onPageFinished
20
20
  }) => {
21
21
  const webviewRef = useRef(null);
22
- ;
23
22
  const [canGoBack, setCanGoBack] = useState(false);
24
23
  const _analyticsLogger = new AnalyticsLogger();
25
24
  // const [hasRedirected, setHasRedirected] = useState(false);
@@ -28,13 +27,11 @@ export const WebView = ({
28
27
  try {
29
28
  await new Promise(resolve => setTimeout(resolve, 200));
30
29
  await Linking.openURL(url);
31
- _analyticsLogger.logEvent({
32
- "event": "REACT_NATIVE_OPEN_URL_EXTERNALLY"
33
- });
30
+ // _analyticsLogger.logEvent({ event: 'REACT_NATIVE_OPEN_URL_EXTERNALLY' });
34
31
  } catch (error) {
35
32
  // Implement your toast here
36
33
  if (Platform.OS === 'android') {
37
- ToastAndroid.show("Oops! Something went wrong. Please try again.", ToastAndroid.LONG);
34
+ ToastAndroid.show('Oops! Something went wrong. Please try again.', ToastAndroid.LONG);
38
35
  }
39
36
  console.log('Application not found to open link');
40
37
  }
@@ -51,10 +48,10 @@ export const WebView = ({
51
48
  message
52
49
  });
53
50
  if (Platform.OS === 'android') {
54
- ToastAndroid.show("Oops! Something went wrong. Please try again.", ToastAndroid.LONG);
51
+ ToastAndroid.show('Oops! Something went wrong. Please try again.', ToastAndroid.LONG);
55
52
  }
56
53
  setTimeout(() => setToast(null), 5000);
57
- onCallback?.(WebViewCallback.redirect("WEBVIEW_ERROR"));
54
+ onCallback?.(WebViewCallback.redirect('WEBVIEW_ERROR'));
58
55
  }
59
56
  };
60
57
  const getQueryParam = (url, param) => {
@@ -131,18 +128,17 @@ export const WebView = ({
131
128
  if (url === 'about:blank' || url === 'about:srcdoc') {
132
129
  return true;
133
130
  }
134
- _analyticsLogger.logEvent({
135
- "event": "REACT_NATIVE_LOADING_URL ",
136
- url
137
- });
138
- if (url?.includes('/api/user/session-expired?status=') || url?.includes("/api/redirect?status=")) {
131
+ // _analyticsLogger.logEvent({ event: 'REACT_NATIVE_LOADING_URL ', url });
132
+
133
+ if (url?.includes('/session-expired?status=') || url?.includes('/redirect?status=')) {
134
+ console.log('overriding url');
139
135
  const status = getQueryParam(url, 'status');
140
136
  console.log('Status thrown from webview ', status);
141
- // navigation.pop();
142
- _analyticsLogger.logEvent({
143
- "event": "REACT_NATIVE_WEBVIEW_CALLBACK ",
144
- status
145
- });
137
+ // _analyticsLogger.logEvent({
138
+ // event: 'REACT_NATIVE_WEBVIEW_CALLBACK ',
139
+ // status,
140
+ // });
141
+
146
142
  StatusBar.setBackgroundColor('#7E7E7EFF');
147
143
  onCallback?.(WebViewCallback.redirect(status ?? undefined));
148
144
  return false;
@@ -244,10 +240,11 @@ export const WebView = ({
244
240
  };
245
241
  const handleWebViewLoadEnd = syntheticEvent => {
246
242
  const loadedUrl = syntheticEvent?.nativeEvent?.url || url;
247
- _analyticsLogger.logEvent({
248
- event: "REACT_NATIVE_WEBVIEW_LOADED",
249
- url: loadedUrl
250
- });
243
+ // _analyticsLogger.logEvent({
244
+ // event: 'REACT_NATIVE_WEBVIEW_LOADED',
245
+ // url: loadedUrl,
246
+ // });
247
+
251
248
  onPageFinished?.();
252
249
  };
253
250
  return /*#__PURE__*/_jsx(SafeAreaView, {
@@ -267,7 +264,11 @@ export const WebView = ({
267
264
  microphone: true,
268
265
  geolocation: true
269
266
  },
270
- onError: showToast_with_code_message,
267
+ onError: e => {
268
+ showToast_with_code_message(e);
269
+ options?.onError?.(e);
270
+ },
271
+ ...options,
271
272
  startInLoadingState: true,
272
273
  renderLoading: () => /*#__PURE__*/_jsx(Loading, {}),
273
274
  onLoadEnd: handleWebViewLoadEnd,
@@ -286,8 +287,7 @@ export const WebView = ({
286
287
  sharedCookiesEnabled: true,
287
288
  setSupportMultipleWindows: false,
288
289
  mixedContentMode: "always",
289
- allowsLinkPreview: true,
290
- ...options
290
+ allowsLinkPreview: true
291
291
  })
292
292
  });
293
293
  };
@@ -1 +1 @@
1
- {"version":3,"names":["WebView","RNWebView","BackHandler","Platform","Linking","SafeAreaView","ActivityIndicator","View","ToastAndroid","StatusBar","useEffect","useRef","useState","WebViewCallback","check","PERMISSIONS","request","RESULTS","FileViewer","RNFS","CookieManager","AnalyticsLogger","jsx","_jsx","url","options","onCallback","hostName","whitelistedUrls","onPageFinished","webviewRef","canGoBack","setCanGoBack","_analyticsLogger","setToast","handleExternalUrl","Promise","resolve","setTimeout","openURL","logEvent","error","OS","show","LONG","console","log","showToast_with_code_message","syntheticEvent","nativeEvent","errorCodesToHandle","includes","code","message","description","visible","redirect","getQueryParam","param","match","RegExp","decodeURIComponent","downloadAndOpenFile","fileUrl","cookieString","cookies","get","Object","keys","map","key","value","join","e","timestamp","Date","getTime","urlParts","split","lastPart","length","fileExt","pop","fileName","downloadPath","select","ios","DocumentDirectoryPath","android","DownloadDirectoryPath","Error","fromUrl","toFile","headers","background","begin","res","response","downloadFile","promise","statusCode","SHORT","open","showOpenWithDialog","onDismiss","unlink","catch","handleOnShouldStartLoadWithRequest","event","status","setBackgroundColor","undefined","isWhitelisted","some","white","handleBackButton","current","goBack","backHandler","addEventListener","remove","Loading","style","flex","justifyContent","alignItems","children","size","injectedJavaScript","requestPermission","permission","result","DENIED","requestResult","GRANTED","handlePermissionRequest","resources","permissionsToRequest","push","IOS","CAMERA","ANDROID","MICROPHONE","RECORD_AUDIO","LOCATION_WHEN_IN_USE","ACCESS_FINE_LOCATION","results","all","granted","every","grant","deny","handleWebViewLoadEnd","loadedUrl","backgroundColor","ref","source","uri","onPermissionRequest","geolocationEnabled","androidPermissions","camera","microphone","geolocation","onError","startInLoadingState","renderLoading","onLoadEnd","originWhitelist","javaScriptEnabled","domStorageEnabled","mediaPlaybackRequiresUserAction","allowsInlineMediaPlayback","onShouldStartLoadWithRequest","onNavigationStateChange","navState","decelerationRate","allowsBackForwardNavigationGestures","sharedCookiesEnabled","setSupportMultipleWindows","mixedContentMode","allowsLinkPreview"],"sourceRoot":"../../../src","sources":["helpers/webview.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["WebView","RNWebView","BackHandler","Platform","Linking","SafeAreaView","ActivityIndicator","View","ToastAndroid","StatusBar","useEffect","useRef","useState","WebViewCallback","check","PERMISSIONS","request","RESULTS","FileViewer","RNFS","CookieManager","AnalyticsLogger","jsx","_jsx","url","options","onCallback","hostName","whitelistedUrls","onPageFinished","webviewRef","canGoBack","setCanGoBack","_analyticsLogger","setToast","handleExternalUrl","Promise","resolve","setTimeout","openURL","error","OS","show","LONG","console","log","showToast_with_code_message","syntheticEvent","nativeEvent","errorCodesToHandle","includes","code","message","description","visible","redirect","getQueryParam","param","match","RegExp","decodeURIComponent","downloadAndOpenFile","fileUrl","cookieString","cookies","get","Object","keys","map","key","value","join","e","timestamp","Date","getTime","urlParts","split","lastPart","length","fileExt","pop","fileName","downloadPath","select","ios","DocumentDirectoryPath","android","DownloadDirectoryPath","Error","fromUrl","toFile","headers","background","begin","res","response","downloadFile","promise","statusCode","SHORT","open","showOpenWithDialog","onDismiss","unlink","catch","handleOnShouldStartLoadWithRequest","event","status","setBackgroundColor","undefined","isWhitelisted","some","white","handleBackButton","current","goBack","backHandler","addEventListener","remove","Loading","style","flex","justifyContent","alignItems","children","size","injectedJavaScript","requestPermission","permission","result","DENIED","requestResult","GRANTED","handlePermissionRequest","resources","permissionsToRequest","push","IOS","CAMERA","ANDROID","MICROPHONE","RECORD_AUDIO","LOCATION_WHEN_IN_USE","ACCESS_FINE_LOCATION","results","all","granted","every","grant","deny","handleWebViewLoadEnd","loadedUrl","backgroundColor","ref","source","uri","onPermissionRequest","geolocationEnabled","androidPermissions","camera","microphone","geolocation","onError","startInLoadingState","renderLoading","onLoadEnd","originWhitelist","javaScriptEnabled","domStorageEnabled","mediaPlaybackRequiresUserAction","allowsInlineMediaPlayback","onShouldStartLoadWithRequest","onNavigationStateChange","navState","decelerationRate","allowsBackForwardNavigationGestures","sharedCookiesEnabled","setSupportMultipleWindows","mixedContentMode","allowsLinkPreview"],"sourceRoot":"../../../src","sources":["helpers/webview.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  export declare class AnalyticsLogger {
2
2
  private static instance;
3
+ private apiCall;
3
4
  private events;
4
5
  private debouncerTimer;
5
6
  private _lastPost;
@@ -1 +1 @@
1
- {"version":3,"file":"analytics_logger.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/analytics/analytics_logger.tsx"],"names":[],"mappings":"AAMA,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAIzC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;;WAIrC,WAAW,IAAI,eAAe;IAO/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB/D,OAAO,CAAC,YAAY;YAWN,IAAI;CA0BrB"}
1
+ {"version":3,"file":"analytics_logger.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/analytics/analytics_logger.tsx"],"names":[],"mappings":"AAMA,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC,OAAO,CAAC,OAAO,CAAiB;IAEhC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAO;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;;WAIrC,WAAW,IAAI,eAAe;IAO/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB/D,OAAO,CAAC,YAAY;YAWN,IAAI;CA0BrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"webview.d.ts","sourceRoot":"","sources":["../../../../src/helpers/webview.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,YAAY,EAA0B,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAmB,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAOxF,UAAU,oBAAqB,SAAQ,YAAY;IAC/C,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,kBAAkB,CAAC,EAAE;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,WAAW,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACL;AACD,UAAU,kBAAkB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,uBAAuB,CAAA;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,OAAO,GAAI,0EAOrB,kBAAkB,4CAsTpB,CAAC"}
1
+ {"version":3,"file":"webview.d.ts","sourceRoot":"","sources":["../../../../src/helpers/webview.tsx"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAajC,UAAU,oBAAqB,SAAQ,YAAY;IACjD,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,kBAAkB,CAAC,EAAE;QACnB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AACD,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,OAAO,GAAI,0EAOrB,kBAAkB,4CAqUpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "partner_react_native_sdk",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "React Native package for Fintech Partner",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/module/index.js",
@@ -71,9 +71,6 @@
71
71
  "@types/react": "^19.0.0",
72
72
  "commitlint": "^19.6.1",
73
73
  "del-cli": "^5.1.0",
74
- "eslint": "^9.22.0",
75
- "eslint-config-prettier": "^10.1.1",
76
- "eslint-plugin-prettier": "^5.2.3",
77
74
  "jest": "^29.7.0",
78
75
  "prettier": "^3.0.3",
79
76
  "react": "19.0.0",
@@ -184,4 +181,4 @@
184
181
  "react-native-screens": "^4.10.0",
185
182
  "react-native-webview": "^13.13.5"
186
183
  }
187
- }
184
+ }
@@ -1,4 +1,4 @@
1
- // import { APICall } from "../network/APICall";
1
+ import { APICall } from "../network/APICall";
2
2
  import { ServiceNames } from "../ServiceNames";
3
3
  import { DeviceInfoManager } from "../utils/deviceInfoManager";
4
4
  import { AnalyticsEvent } from "./analytics_event_model";
@@ -7,7 +7,7 @@ import { EventStorage } from "./event_storage";
7
7
  export class AnalyticsLogger {
8
8
  private static instance: AnalyticsLogger;
9
9
 
10
- // private apiCall = new APICall();
10
+ private apiCall = new APICall();
11
11
 
12
12
  private events: AnalyticsEvent[] = [];
13
13
  private debouncerTimer: ReturnType<typeof setTimeout> | null = null;
@@ -73,11 +73,11 @@ export class AnalyticsLogger {
73
73
  try {
74
74
  console.log("ANALYTICS_URL ", this.analyticsUrl);
75
75
  console.log('Posting events:', eventsToSend);
76
- // const payload = {
77
- // body: { data: eventsToSend.map(event => event.toJson()) },
76
+ const payload = {
77
+ body: { data: eventsToSend.map(event => event.toJson()) },
78
78
 
79
- // };
80
- // const response = await this.apiCall.callAPI('POST', this.analyticsUrl, payload);
79
+ };
80
+ const response = await this.apiCall.callAPI('POST', this.analyticsUrl, payload);
81
81
  await this.eventStorage.clearEvents();
82
82
  }
83
83
  catch (error) {
@@ -1,237 +1,260 @@
1
1
  import { WebView as RNWebView } from 'react-native-webview';
2
2
  import {
3
- BackHandler,
4
- Platform,
5
- Linking,
6
- SafeAreaView,
7
- ActivityIndicator,
8
- View,
9
- ToastAndroid,
10
- StatusBar,
3
+ BackHandler,
4
+ Platform,
5
+ Linking,
6
+ SafeAreaView,
7
+ ActivityIndicator,
8
+ View,
9
+ ToastAndroid,
10
+ StatusBar,
11
11
  } from 'react-native';
12
12
  import { useEffect, useRef, useState } from 'react';
13
13
 
14
- import { type WebViewProps, type WebViewNavigation } from 'react-native-webview';
15
- import { WebViewCallback, type WebViewCallbackFunction } from './utils/webviewCallback';
16
- import { check, PERMISSIONS, request, RESULTS, type Permission } from 'react-native-permissions';
14
+ import {
15
+ type WebViewProps,
16
+ type WebViewNavigation,
17
+ } from 'react-native-webview';
18
+ import {
19
+ WebViewCallback,
20
+ type WebViewCallbackFunction,
21
+ } from './utils/webviewCallback';
22
+ import {
23
+ check,
24
+ PERMISSIONS,
25
+ request,
26
+ RESULTS,
27
+ type Permission,
28
+ } from 'react-native-permissions';
17
29
  import FileViewer from 'react-native-file-viewer';
18
30
  import RNFS from 'react-native-fs';
19
31
  import CookieManager from '@react-native-cookies/cookies';
20
32
  import { AnalyticsLogger } from './analytics/analytics_logger';
21
33
 
22
34
  interface ExtendedWebViewProps extends WebViewProps {
23
- onPermissionRequest?: (event: any) => void;
24
- androidPermissions?: {
25
- camera?: boolean;
26
- microphone?: boolean;
27
- geolocation?: boolean;
28
- };
35
+ onPermissionRequest?: (event: any) => void;
36
+ androidPermissions?: {
37
+ camera?: boolean;
38
+ microphone?: boolean;
39
+ geolocation?: boolean;
40
+ };
29
41
  }
30
42
  interface WebViewCustomProps {
31
- url: string;
32
- options?: Partial<ExtendedWebViewProps>;
33
- onCallback?: WebViewCallbackFunction
34
- hostName?: string;
35
- whitelistedUrls?: string[];
36
- onPageFinished?: () => void;
43
+ url: string;
44
+ options?: Partial<ExtendedWebViewProps>;
45
+ onCallback?: WebViewCallbackFunction;
46
+ hostName?: string;
47
+ whitelistedUrls?: string[];
48
+ onPageFinished?: () => void;
37
49
  }
38
50
 
39
51
  export const WebView = ({
40
- url,
41
- options,
42
- onCallback,
43
- hostName,
44
- whitelistedUrls = [],
45
- onPageFinished,
52
+ url,
53
+ options,
54
+ onCallback,
55
+ hostName,
56
+ whitelistedUrls = [],
57
+ onPageFinished,
46
58
  }: WebViewCustomProps) => {
47
- const webviewRef = useRef<RNWebView | null>(null);;
48
- const [canGoBack, setCanGoBack] = useState(false);
49
- const _analyticsLogger = new AnalyticsLogger();
50
- // const [hasRedirected, setHasRedirected] = useState(false);
51
- const [, setToast] = useState<{ visible: boolean; message: string } | null>(null);
52
- const handleExternalUrl = async (url: string) => {
53
- try {
54
- await new Promise(resolve => setTimeout(resolve, 200));
55
- await Linking.openURL(url);
56
- _analyticsLogger.logEvent({ "event": "REACT_NATIVE_OPEN_URL_EXTERNALLY" })
57
-
58
- } catch (error) {
59
- // Implement your toast here
60
- if (Platform.OS === 'android') {
61
- ToastAndroid.show("Oops! Something went wrong. Please try again.", ToastAndroid.LONG);
62
- }
63
- console.log('Application not found to open link');
64
- }
65
- };
66
- const showToast_with_code_message = (syntheticEvent: any) => {
67
- const { nativeEvent } = syntheticEvent;
68
- const errorCodesToHandle = [-6, -8, -10];
69
- if (errorCodesToHandle.includes(nativeEvent.code)) {
70
- const message = `WebView Error: [${nativeEvent.code}] ${nativeEvent.description}`;
71
- setToast({ visible: true, message });
72
- if (Platform.OS === 'android') {
73
- ToastAndroid.show("Oops! Something went wrong. Please try again.", ToastAndroid.LONG);
74
- }
75
- setTimeout(() => setToast(null), 5000);
76
- onCallback?.(
77
- WebViewCallback.redirect("WEBVIEW_ERROR")
78
- )
79
- }
80
- };
81
-
82
- const getQueryParam = (url: string, param: string): string | null => {
83
- const match = url.match(new RegExp('[?&]' + param + '=([^&#]*)'));
84
- return match && match[1] ? decodeURIComponent(match[1]) : null;
85
- };
86
-
87
- const downloadAndOpenFile = async (fileUrl: string) => {
88
- try {
89
- console.log('Starting file download...', fileUrl);
90
-
91
- // Get cookies using CookieManager
92
- let cookieString = '';
93
- try {
94
- const cookies = await CookieManager.get(fileUrl);
95
- cookieString = Object.keys(cookies)
96
- .map(key => `${key}=${cookies[key]?.value ?? ''}`)
97
- .join('; ');
98
- } catch (e) {
99
- console.error('Failed to get cookies:', e);
100
- }
101
-
102
- // Create a clean filename from the URL
103
- const timestamp = new Date().getTime();
104
- // Extract only the last part of the path for the filename
105
- const urlParts = fileUrl.split('/');
106
- const lastPart = urlParts[urlParts.length - 1];
107
- const fileExt = lastPart?.split('.').pop() || 'pdf';
108
- const fileName = `${timestamp}.${fileExt}`;
109
-
110
- const downloadPath = Platform.select({
111
- ios: `${RNFS.DocumentDirectoryPath}/${fileName}`,
112
- android: `${RNFS.DownloadDirectoryPath}/${fileName}`
113
- });
114
-
115
- if (!downloadPath) {
116
- throw new Error('Could not determine download path');
117
- }
118
-
119
- console.log('Downloading to:', downloadPath);
120
-
121
- const options = {
122
- fromUrl: fileUrl,
123
- toFile: downloadPath,
124
- headers: {
125
- 'Cookie': cookieString,
126
- 'Accept': 'application/pdf',
127
- 'Content-Type': 'application/pdf'
128
- },
129
- background: true,
130
- begin: (res: any) => {
131
- console.log('Download started with headers:', res);
132
- },
133
-
134
- };
135
-
136
- const response = await RNFS.downloadFile(options).promise;
137
-
138
- if (response.statusCode === 200) {
139
- console.log('File downloaded to:', downloadPath);
140
-
141
- if (Platform.OS === 'android') {
142
- ToastAndroid.show('File downloaded successfully', ToastAndroid.SHORT);
143
- }
144
-
145
- await FileViewer.open(downloadPath, {
146
- showOpenWithDialog: true,
147
- onDismiss: () => {
148
- if (Platform.OS === 'ios') {
149
- RNFS.unlink(downloadPath).catch(console.error);
150
- }
151
- }
152
- });
153
- } else {
154
- throw new Error(`Download failed with status ${response.statusCode}`);
155
- }
156
-
157
- } catch (error) {
158
- console.error('File download/open error:', error);
159
-
160
- }
161
- };
162
-
163
-
164
- const handleOnShouldStartLoadWithRequest = (event: WebViewNavigation) => {
165
- const { url } = event;
166
- console.log('URL:', url);
167
- if (url === 'about:blank' || url === 'about:srcdoc') {
168
- return true;
169
- }
170
- _analyticsLogger.logEvent({ "event": "REACT_NATIVE_LOADING_URL ", url });
171
-
172
-
173
- if (url?.includes('/api/user/session-expired?status=') || url?.includes("/api/redirect?status=")) {
174
- const status = getQueryParam(url, 'status');
175
-
176
- console.log('Status thrown from webview ', status);
177
- // navigation.pop();
178
- _analyticsLogger.logEvent({ "event": "REACT_NATIVE_WEBVIEW_CALLBACK ", status });
59
+ const webviewRef = useRef<RNWebView | null>(null);
60
+ const [canGoBack, setCanGoBack] = useState(false);
61
+ const _analyticsLogger = new AnalyticsLogger();
62
+ // const [hasRedirected, setHasRedirected] = useState(false);
63
+ const [, setToast] = useState<{ visible: boolean; message: string } | null>(
64
+ null
65
+ );
66
+ const handleExternalUrl = async (url: string) => {
67
+ try {
68
+ await new Promise((resolve) => setTimeout(resolve, 200));
69
+ await Linking.openURL(url);
70
+ // _analyticsLogger.logEvent({ event: 'REACT_NATIVE_OPEN_URL_EXTERNALLY' });
71
+ } catch (error) {
72
+ // Implement your toast here
73
+ if (Platform.OS === 'android') {
74
+ ToastAndroid.show(
75
+ 'Oops! Something went wrong. Please try again.',
76
+ ToastAndroid.LONG
77
+ );
78
+ }
79
+ console.log('Application not found to open link');
80
+ }
81
+ };
82
+ const showToast_with_code_message = (syntheticEvent: any) => {
83
+ const { nativeEvent } = syntheticEvent;
84
+ const errorCodesToHandle = [-6, -8, -10];
85
+ if (errorCodesToHandle.includes(nativeEvent.code)) {
86
+ const message = `WebView Error: [${nativeEvent.code}] ${nativeEvent.description}`;
87
+ setToast({ visible: true, message });
88
+ if (Platform.OS === 'android') {
89
+ ToastAndroid.show(
90
+ 'Oops! Something went wrong. Please try again.',
91
+ ToastAndroid.LONG
92
+ );
93
+ }
94
+ setTimeout(() => setToast(null), 5000);
95
+ onCallback?.(WebViewCallback.redirect('WEBVIEW_ERROR'));
96
+ }
97
+ };
98
+
99
+ const getQueryParam = (url: string, param: string): string | null => {
100
+ const match = url.match(new RegExp('[?&]' + param + '=([^&#]*)'));
101
+ return match && match[1] ? decodeURIComponent(match[1]) : null;
102
+ };
103
+
104
+ const downloadAndOpenFile = async (fileUrl: string) => {
105
+ try {
106
+ console.log('Starting file download...', fileUrl);
107
+
108
+ // Get cookies using CookieManager
109
+ let cookieString = '';
110
+ try {
111
+ const cookies = await CookieManager.get(fileUrl);
112
+ cookieString = Object.keys(cookies)
113
+ .map((key) => `${key}=${cookies[key]?.value ?? ''}`)
114
+ .join('; ');
115
+ } catch (e) {
116
+ console.error('Failed to get cookies:', e);
117
+ }
179
118
 
180
- StatusBar.setBackgroundColor('#7E7E7EFF');
181
- onCallback?.(
182
- WebViewCallback.redirect(status ?? undefined)
183
- );
184
- return false;
185
- }
119
+ // Create a clean filename from the URL
120
+ const timestamp = new Date().getTime();
121
+ // Extract only the last part of the path for the filename
122
+ const urlParts = fileUrl.split('/');
123
+ const lastPart = urlParts[urlParts.length - 1];
124
+ const fileExt = lastPart?.split('.').pop() || 'pdf';
125
+ const fileName = `${timestamp}.${fileExt}`;
126
+
127
+ const downloadPath = Platform.select({
128
+ ios: `${RNFS.DocumentDirectoryPath}/${fileName}`,
129
+ android: `${RNFS.DownloadDirectoryPath}/${fileName}`,
130
+ });
131
+
132
+ if (!downloadPath) {
133
+ throw new Error('Could not determine download path');
134
+ }
186
135
 
187
- // Handle whitelisted URLs
188
- const isWhitelisted = whitelistedUrls.some(white => url.includes(white)) ||
189
- (hostName && url.includes(hostName));
190
-
191
- if (!isWhitelisted &&
192
- url &&
193
- url !== 'about:blank' &&
194
- url !== 'about:srcdoc') {
195
- console.log('External URL detected:', url);
196
- handleExternalUrl(url);
197
- return false;
136
+ console.log('Downloading to:', downloadPath);
137
+
138
+ const options = {
139
+ fromUrl: fileUrl,
140
+ toFile: downloadPath,
141
+ headers: {
142
+ 'Cookie': cookieString,
143
+ 'Accept': 'application/pdf',
144
+ 'Content-Type': 'application/pdf',
145
+ },
146
+ background: true,
147
+ begin: (res: any) => {
148
+ console.log('Download started with headers:', res);
149
+ },
150
+ };
151
+
152
+ const response = await RNFS.downloadFile(options).promise;
153
+
154
+ if (response.statusCode === 200) {
155
+ console.log('File downloaded to:', downloadPath);
156
+
157
+ if (Platform.OS === 'android') {
158
+ ToastAndroid.show('File downloaded successfully', ToastAndroid.SHORT);
198
159
  }
199
- if (url.includes('.pdf') ||
200
- url.includes('/statements/') ||
201
- url.includes('/download_statements')
202
- ) {
203
- console.log('File download URL detected:', url);
204
- downloadAndOpenFile(url);
205
- return false;
206
- }
207
-
208
- return true;
209
- };
210
160
 
211
- const handleBackButton = () => {
212
- if (canGoBack && webviewRef.current) {
213
- webviewRef.current.goBack();
214
- return true;
215
- }
216
- return false;
161
+ await FileViewer.open(downloadPath, {
162
+ showOpenWithDialog: true,
163
+ onDismiss: () => {
164
+ if (Platform.OS === 'ios') {
165
+ RNFS.unlink(downloadPath).catch(console.error);
166
+ }
167
+ },
168
+ });
169
+ } else {
170
+ throw new Error(`Download failed with status ${response.statusCode}`);
171
+ }
172
+ } catch (error) {
173
+ console.error('File download/open error:', error);
174
+ }
175
+ };
176
+
177
+ const handleOnShouldStartLoadWithRequest = (event: WebViewNavigation) => {
178
+ const { url } = event;
179
+ console.log('URL:', url);
180
+ if (url === 'about:blank' || url === 'about:srcdoc') {
181
+ return true;
182
+ }
183
+ // _analyticsLogger.logEvent({ event: 'REACT_NATIVE_LOADING_URL ', url });
184
+
185
+ if (
186
+ url?.includes('/session-expired?status=') ||
187
+ url?.includes('/redirect?status=')
188
+ ) {
189
+ console.log('overriding url');
190
+ const status = getQueryParam(url, 'status');
191
+
192
+ console.log('Status thrown from webview ', status);
193
+ // _analyticsLogger.logEvent({
194
+ // event: 'REACT_NATIVE_WEBVIEW_CALLBACK ',
195
+ // status,
196
+ // });
197
+
198
+ StatusBar.setBackgroundColor('#7E7E7EFF');
199
+ onCallback?.(WebViewCallback.redirect(status ?? undefined));
200
+ return false;
201
+ }
202
+
203
+ // Handle whitelisted URLs
204
+ const isWhitelisted =
205
+ whitelistedUrls.some((white) => url.includes(white)) ||
206
+ (hostName && url.includes(hostName));
207
+
208
+ if (
209
+ !isWhitelisted &&
210
+ url &&
211
+ url !== 'about:blank' &&
212
+ url !== 'about:srcdoc'
213
+ ) {
214
+ console.log('External URL detected:', url);
215
+ handleExternalUrl(url);
216
+ return false;
217
+ }
218
+ if (
219
+ url.includes('.pdf') ||
220
+ url.includes('/statements/') ||
221
+ url.includes('/download_statements')
222
+ ) {
223
+ console.log('File download URL detected:', url);
224
+ downloadAndOpenFile(url);
225
+ return false;
226
+ }
227
+
228
+ return true;
229
+ };
230
+
231
+ const handleBackButton = () => {
232
+ if (canGoBack && webviewRef.current) {
233
+ webviewRef.current.goBack();
234
+ return true;
235
+ }
236
+ return false;
237
+ };
238
+
239
+ useEffect(() => {
240
+ const backHandler = BackHandler.addEventListener(
241
+ 'hardwareBackPress',
242
+ handleBackButton
243
+ );
244
+ return () => {
245
+ backHandler.remove();
217
246
  };
247
+ }, [canGoBack]);
218
248
 
219
- useEffect(() => {
220
- const backHandler = BackHandler.addEventListener('hardwareBackPress', handleBackButton);
221
- return () => {
222
- backHandler.remove();
223
- };
224
- }, [canGoBack]);
225
-
226
- const Loading = () => (
227
- <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
228
- <ActivityIndicator size="large" />
229
- </View>
230
- );
249
+ const Loading = () => (
250
+ <View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
251
+ <ActivityIndicator size="large" />
252
+ </View>
253
+ );
231
254
 
232
- // Cookie injection script
255
+ // Cookie injection script
233
256
 
234
- const injectedJavaScript = `
257
+ const injectedJavaScript = `
235
258
  window.onerror = function(message, source, lineno, colno, error) {
236
259
  if (message.includes('RATE_LIMIT_USER')) {
237
260
  window.ReactNativeWebView.postMessage(JSON.stringify({
@@ -242,115 +265,119 @@ export const WebView = ({
242
265
  true;
243
266
  `;
244
267
 
245
- const requestPermission = async (permission: Permission) => {
246
- try {
247
- const result = await check(permission);
248
-
249
- if (result === RESULTS.DENIED) {
250
- const requestResult = await request(permission);
251
- return requestResult === RESULTS.GRANTED;
252
- }
253
-
254
- return result === RESULTS.GRANTED;
255
- } catch (error) {
256
- console.error('Permission request failed:', error);
257
- return false;
258
- }
259
- };
260
-
261
- const handlePermissionRequest = async (event: any) => {
262
- const { resources } = event.nativeEvent;
263
- console.log('Permission requested:', resources);
264
-
265
- const permissionsToRequest: Permission[] = [];
268
+ const requestPermission = async (permission: Permission) => {
269
+ try {
270
+ const result = await check(permission);
266
271
 
267
- if (resources.includes('video')) {
268
- permissionsToRequest.push(
269
- Platform.OS === 'ios'
270
- ? PERMISSIONS.IOS.CAMERA
271
- : PERMISSIONS.ANDROID.CAMERA
272
- );
273
- }
274
- if (resources.includes('microphone')) {
275
- permissionsToRequest.push(
276
- Platform.OS === 'ios'
277
- ? PERMISSIONS.IOS.MICROPHONE
278
- : PERMISSIONS.ANDROID.RECORD_AUDIO
279
- );
280
- }
281
- if (resources.includes('geolocation')) {
282
- permissionsToRequest.push(
283
- Platform.OS === 'ios'
284
- ? PERMISSIONS.IOS.LOCATION_WHEN_IN_USE
285
- : PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION
286
- );
287
- }
272
+ if (result === RESULTS.DENIED) {
273
+ const requestResult = await request(permission);
274
+ return requestResult === RESULTS.GRANTED;
275
+ }
288
276
 
289
- try {
290
- const results = await Promise.all(
291
- permissionsToRequest.map(permission => requestPermission(permission))
292
- );
293
-
294
- const granted = results.every(result => result === true);
295
- if (granted) {
296
- // @ts-ignore - grant exists on the event
297
- event.nativeEvent.grant();
298
- } else {
299
- // @ts-ignore - deny exists on the event
300
- event.nativeEvent.deny();
301
- }
302
- } catch (error) {
303
- console.error('Permission handling failed:', error);
304
- // @ts-ignore - deny exists on the event
305
- event.nativeEvent.deny();
277
+ return result === RESULTS.GRANTED;
278
+ } catch (error) {
279
+ console.error('Permission request failed:', error);
280
+ return false;
281
+ }
282
+ };
283
+
284
+ const handlePermissionRequest = async (event: any) => {
285
+ const { resources } = event.nativeEvent;
286
+ console.log('Permission requested:', resources);
287
+
288
+ const permissionsToRequest: Permission[] = [];
289
+
290
+ if (resources.includes('video')) {
291
+ permissionsToRequest.push(
292
+ Platform.OS === 'ios'
293
+ ? PERMISSIONS.IOS.CAMERA
294
+ : PERMISSIONS.ANDROID.CAMERA
295
+ );
296
+ }
297
+ if (resources.includes('microphone')) {
298
+ permissionsToRequest.push(
299
+ Platform.OS === 'ios'
300
+ ? PERMISSIONS.IOS.MICROPHONE
301
+ : PERMISSIONS.ANDROID.RECORD_AUDIO
302
+ );
303
+ }
304
+ if (resources.includes('geolocation')) {
305
+ permissionsToRequest.push(
306
+ Platform.OS === 'ios'
307
+ ? PERMISSIONS.IOS.LOCATION_WHEN_IN_USE
308
+ : PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION
309
+ );
310
+ }
311
+
312
+ try {
313
+ const results = await Promise.all(
314
+ permissionsToRequest.map((permission) => requestPermission(permission))
315
+ );
316
+
317
+ const granted = results.every((result) => result === true);
318
+ if (granted) {
319
+ // @ts-ignore - grant exists on the event
320
+ event.nativeEvent.grant();
321
+ } else {
322
+ // @ts-ignore - deny exists on the event
323
+ event.nativeEvent.deny();
324
+ }
325
+ } catch (error) {
326
+ console.error('Permission handling failed:', error);
327
+ // @ts-ignore - deny exists on the event
328
+ event.nativeEvent.deny();
329
+ }
330
+ };
331
+
332
+ const handleWebViewLoadEnd = (syntheticEvent: any) => {
333
+ const loadedUrl = syntheticEvent?.nativeEvent?.url || url;
334
+ // _analyticsLogger.logEvent({
335
+ // event: 'REACT_NATIVE_WEBVIEW_LOADED',
336
+ // url: loadedUrl,
337
+ // });
338
+
339
+ onPageFinished?.();
340
+ };
341
+
342
+ return (
343
+ <SafeAreaView style={{ flex: 1, backgroundColor: 'white' }}>
344
+ <RNWebView
345
+ ref={webviewRef}
346
+ source={{ uri: url }}
347
+ onPermissionRequest={
348
+ handlePermissionRequest as ExtendedWebViewProps['onPermissionRequest']
306
349
  }
307
- };
308
-
309
- const handleWebViewLoadEnd = (syntheticEvent: any) => {
310
- const loadedUrl = syntheticEvent?.nativeEvent?.url || url;
311
- _analyticsLogger.logEvent({ event: "REACT_NATIVE_WEBVIEW_LOADED", url: loadedUrl });
312
-
313
- onPageFinished?.();
314
- };
315
-
316
-
317
- return (
318
- <SafeAreaView style={{ flex: 1, backgroundColor: 'white' }}>
319
- <RNWebView
320
- ref={webviewRef}
321
- source={{
322
- uri: url,
323
-
324
- }}
325
- onPermissionRequest={handlePermissionRequest as ExtendedWebViewProps['onPermissionRequest']}
326
- geolocationEnabled={true}
327
- androidPermissions={{
328
- camera: true,
329
- microphone: true,
330
- geolocation: true
331
- }}
332
- onError={showToast_with_code_message}
333
- startInLoadingState={true}
334
- renderLoading={() => <Loading />}
335
- onLoadEnd={handleWebViewLoadEnd}
336
- originWhitelist={['*']}
337
- javaScriptEnabled={true}
338
- domStorageEnabled={true}
339
- mediaPlaybackRequiresUserAction={false}
340
- allowsInlineMediaPlayback={true}
341
- onShouldStartLoadWithRequest={handleOnShouldStartLoadWithRequest}
342
- onNavigationStateChange={(navState) => {
343
- setCanGoBack(navState.canGoBack);
344
- }}
345
- injectedJavaScript={injectedJavaScript}
346
- decelerationRate={Platform.OS === 'ios' ? 'normal' : 0.9}
347
- allowsBackForwardNavigationGestures={Platform.OS === 'ios'}
348
- sharedCookiesEnabled={true}
349
- setSupportMultipleWindows={false}
350
- mixedContentMode="always"
351
- allowsLinkPreview={true}
352
- {...options}
353
- />
354
- </SafeAreaView>
355
- );
356
- };
350
+ geolocationEnabled={true}
351
+ androidPermissions={{
352
+ camera: true,
353
+ microphone: true,
354
+ geolocation: true,
355
+ }}
356
+ onError={(e) => {
357
+ showToast_with_code_message(e);
358
+ options?.onError?.(e as any);
359
+ }}
360
+ {...options}
361
+ startInLoadingState={true}
362
+ renderLoading={() => <Loading />}
363
+ onLoadEnd={handleWebViewLoadEnd}
364
+ originWhitelist={['*']}
365
+ javaScriptEnabled={true}
366
+ domStorageEnabled={true}
367
+ mediaPlaybackRequiresUserAction={false}
368
+ allowsInlineMediaPlayback={true}
369
+ onShouldStartLoadWithRequest={handleOnShouldStartLoadWithRequest}
370
+ onNavigationStateChange={(navState) => {
371
+ setCanGoBack(navState.canGoBack);
372
+ }}
373
+ injectedJavaScript={injectedJavaScript}
374
+ decelerationRate={Platform.OS === 'ios' ? 'normal' : 0.9}
375
+ allowsBackForwardNavigationGestures={Platform.OS === 'ios'}
376
+ sharedCookiesEnabled={true}
377
+ setSupportMultipleWindows={false}
378
+ mixedContentMode="always"
379
+ allowsLinkPreview={true}
380
+ />
381
+ </SafeAreaView>
382
+ );
383
+ };
@@ -1 +0,0 @@
1
- {"type":"module"}