banking_dcb_sdk_react_native 1.0.774-w → 2.0.0

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.
Files changed (153) hide show
  1. package/README.md +1 -1
  2. package/android/app/build/generated/source/codegen/RCTAppDependencyProvider.h +25 -0
  3. package/android/app/build/generated/source/codegen/RCTAppDependencyProvider.mm +55 -0
  4. package/android/app/build/generated/source/codegen/RCTModulesConformingToProtocolsProvider.h +18 -0
  5. package/android/app/build/generated/source/codegen/RCTModulesConformingToProtocolsProvider.mm +33 -0
  6. package/android/app/build/generated/source/codegen/RCTThirdPartyComponentsProvider.h +16 -0
  7. package/android/app/build/generated/source/codegen/RCTThirdPartyComponentsProvider.mm +62 -0
  8. package/android/app/build/generated/source/codegen/ReactAppDependencyProvider.podspec +34 -0
  9. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeAsyncStorageModuleSpec.java +59 -0
  10. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeBlobUtilsSpec.java +280 -0
  11. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeRNCWebViewModuleSpec.java +42 -0
  12. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeRNPermissionsSpec.java +87 -0
  13. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeSafeAreaContextSpec.java +65 -0
  14. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeScreensModuleSpec.java +35 -0
  15. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCSafeAreaProviderManagerDelegate.java +26 -0
  16. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCSafeAreaProviderManagerInterface.java +17 -0
  17. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCSafeAreaViewManagerDelegate.java +36 -0
  18. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCSafeAreaViewManagerInterface.java +20 -0
  19. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCWebViewManagerDelegate.java +301 -0
  20. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNCWebViewManagerInterface.java +107 -0
  21. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSBottomTabsManagerDelegate.java +84 -0
  22. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSBottomTabsManagerInterface.java +35 -0
  23. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSBottomTabsScreenManagerDelegate.java +101 -0
  24. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSBottomTabsScreenManagerInterface.java +42 -0
  25. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSFullWindowOverlayManagerDelegate.java +32 -0
  26. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSFullWindowOverlayManagerInterface.java +17 -0
  27. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSModalScreenManagerDelegate.java +128 -0
  28. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSModalScreenManagerInterface.java +51 -0
  29. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSafeAreaViewManagerDelegate.java +36 -0
  30. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSafeAreaViewManagerInterface.java +20 -0
  31. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerDelegate.java +26 -0
  32. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenContainerManagerInterface.java +17 -0
  33. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerDelegate.java +26 -0
  34. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenContentWrapperManagerInterface.java +17 -0
  35. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerDelegate.java +26 -0
  36. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenFooterManagerInterface.java +17 -0
  37. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +140 -0
  38. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +55 -0
  39. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenNavigationContainerManagerDelegate.java +26 -0
  40. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenNavigationContainerManagerInterface.java +17 -0
  41. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +121 -0
  42. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +48 -0
  43. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +35 -0
  44. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +19 -0
  45. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHostManagerDelegate.java +26 -0
  46. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackHostManagerInterface.java +17 -0
  47. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java +26 -0
  48. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java +17 -0
  49. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSearchBarManagerDelegate.java +106 -0
  50. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSearchBarManagerInterface.java +40 -0
  51. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSplitViewHostManagerDelegate.java +57 -0
  52. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSplitViewHostManagerInterface.java +27 -0
  53. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSplitViewScreenManagerDelegate.java +32 -0
  54. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSSplitViewScreenManagerInterface.java +18 -0
  55. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSStackScreenManagerDelegate.java +35 -0
  56. package/android/app/build/generated/source/codegen/java/com/facebook/react/viewmanagers/RNSStackScreenManagerInterface.java +19 -0
  57. package/android/app/build/generated/source/codegen/jni/BankingDcbSdkReactNative-generated.cpp +22 -0
  58. package/android/app/build/generated/source/codegen/jni/BankingDcbSdkReactNative.h +24 -0
  59. package/android/app/build/generated/source/codegen/jni/CMakeLists.txt +36 -0
  60. package/android/app/build/generated/source/codegen/jni/RNCWebViewSpec-generated.cpp +38 -0
  61. package/android/app/build/generated/source/codegen/jni/RNCWebViewSpec.h +31 -0
  62. package/android/app/build/generated/source/codegen/jni/RNPermissionsSpec-generated.cpp +104 -0
  63. package/android/app/build/generated/source/codegen/jni/RNPermissionsSpec.h +31 -0
  64. package/android/app/build/generated/source/codegen/jni/ReactNativeBlobUtilSpec-generated.cpp +320 -0
  65. package/android/app/build/generated/source/codegen/jni/ReactNativeBlobUtilSpec.h +31 -0
  66. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/BankingDcbSdkReactNativeJSI-generated.cpp +17 -0
  67. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/BankingDcbSdkReactNativeJSI.h +19 -0
  68. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/ComponentDescriptors.cpp +22 -0
  69. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/ComponentDescriptors.h +24 -0
  70. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/EventEmitters.cpp +16 -0
  71. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/EventEmitters.h +17 -0
  72. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/Props.cpp +19 -0
  73. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/Props.h +18 -0
  74. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/ShadowNodes.cpp +17 -0
  75. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/ShadowNodes.h +23 -0
  76. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/States.cpp +16 -0
  77. package/android/app/build/generated/source/codegen/jni/react/renderer/components/BankingDcbSdkReactNative/States.h +19 -0
  78. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/ComponentDescriptors.cpp +22 -0
  79. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/ComponentDescriptors.h +24 -0
  80. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/EventEmitters.cpp +258 -0
  81. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/EventEmitters.h +277 -0
  82. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/Props.cpp +101 -0
  83. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/Props.h +507 -0
  84. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/RNCWebViewSpecJSI-generated.cpp +35 -0
  85. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/RNCWebViewSpecJSI.h +80 -0
  86. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/ShadowNodes.cpp +17 -0
  87. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/ShadowNodes.h +32 -0
  88. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/States.cpp +16 -0
  89. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNCWebViewSpec/States.h +29 -0
  90. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNPermissionsSpec/RNPermissionsSpecJSI-generated.cpp +106 -0
  91. package/android/app/build/generated/source/codegen/jni/react/renderer/components/RNPermissionsSpec/RNPermissionsSpecJSI.h +226 -0
  92. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlobUtilSpec/ReactNativeBlobUtilSpecJSI-generated.cpp +449 -0
  93. package/android/app/build/generated/source/codegen/jni/react/renderer/components/ReactNativeBlobUtilSpec/ReactNativeBlobUtilSpecJSI.h +503 -0
  94. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnasyncstorage/rnasyncstorageJSI-generated.cpp +72 -0
  95. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnasyncstorage/rnasyncstorageJSI.h +116 -0
  96. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/ComponentDescriptors.cpp +31 -0
  97. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/ComponentDescriptors.h +33 -0
  98. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/EventEmitters.cpp +499 -0
  99. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/EventEmitters.h +422 -0
  100. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/Props.cpp +307 -0
  101. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/Props.h +1391 -0
  102. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/ShadowNodes.cpp +26 -0
  103. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/ShadowNodes.h +131 -0
  104. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/States.cpp +16 -0
  105. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/States.h +137 -0
  106. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/rnscreensJSI-generated.cpp +22 -0
  107. package/android/app/build/generated/source/codegen/jni/react/renderer/components/rnscreens/rnscreensJSI.h +64 -0
  108. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/ComponentDescriptors.cpp +22 -0
  109. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/ComponentDescriptors.h +24 -0
  110. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/EventEmitters.cpp +40 -0
  111. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/EventEmitters.h +47 -0
  112. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.cpp +33 -0
  113. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/Props.h +85 -0
  114. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/ShadowNodes.cpp +17 -0
  115. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/ShadowNodes.h +32 -0
  116. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/States.cpp +16 -0
  117. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/States.h +29 -0
  118. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/safeareacontextJSI-generated.cpp +26 -0
  119. package/android/app/build/generated/source/codegen/jni/react/renderer/components/safeareacontext/safeareacontextJSI.h +71 -0
  120. package/android/app/build/generated/source/codegen/jni/rnasyncstorage-generated.cpp +62 -0
  121. package/android/app/build/generated/source/codegen/jni/rnasyncstorage.h +31 -0
  122. package/android/app/build/generated/source/codegen/jni/rnscreens-generated.cpp +29 -0
  123. package/android/app/build/generated/source/codegen/jni/rnscreens.h +31 -0
  124. package/android/app/build/generated/source/codegen/jni/safeareacontext-generated.cpp +32 -0
  125. package/android/app/build/generated/source/codegen/jni/safeareacontext.h +31 -0
  126. package/android/build.gradle +5 -5
  127. package/android/gradle.properties +5 -5
  128. package/android/src/main/AndroidManifest.xml +2 -2
  129. package/android/src/main/java/com/{partnerreactnativesdk/PartnerReactNativeSdkModule.kt → bankingdcbsdkreactnative/BankingDcbSdkReactNativeModule.kt} +3 -3
  130. package/android/src/main/java/com/{partnerreactnativesdk/PartnerReactNativeSdkPackage.kt → bankingdcbsdkreactnative/BankingDcbSdkReactNativePackage.kt} +3 -3
  131. package/ios/BankingDcbSdkReactNative.h +6 -0
  132. package/ios/PartnerReactNativeSdk.mm +3 -3
  133. package/lib/module/helpers/banking_dcb_react_native.js +121 -13
  134. package/lib/module/helpers/banking_dcb_react_native.js.map +1 -1
  135. package/lib/module/helpers/utils/Constants.js +10 -7
  136. package/lib/module/helpers/utils/Constants.js.map +1 -1
  137. package/lib/module/helpers/utils/webviewCallback.js +11 -0
  138. package/lib/module/helpers/utils/webviewCallback.js.map +1 -1
  139. package/lib/module/helpers/webview.js +38 -119
  140. package/lib/module/helpers/webview.js.map +1 -1
  141. package/lib/typescript/src/helpers/banking_dcb_react_native.d.ts +1 -2
  142. package/lib/typescript/src/helpers/banking_dcb_react_native.d.ts.map +1 -1
  143. package/lib/typescript/src/helpers/utils/Constants.d.ts +3 -0
  144. package/lib/typescript/src/helpers/utils/Constants.d.ts.map +1 -1
  145. package/lib/typescript/src/helpers/utils/webviewCallback.d.ts +10 -1
  146. package/lib/typescript/src/helpers/utils/webviewCallback.d.ts.map +1 -1
  147. package/lib/typescript/src/helpers/webview.d.ts.map +1 -1
  148. package/package.json +1 -1
  149. package/src/helpers/banking_dcb_react_native.tsx +138 -20
  150. package/src/helpers/utils/Constants.tsx +11 -9
  151. package/src/helpers/utils/webviewCallback.tsx +32 -16
  152. package/src/helpers/webview.tsx +41 -130
  153. package/ios/PartnerReactNativeSdk.h +0 -6
@@ -1,6 +1,7 @@
1
1
  export declare enum WebViewCallbackType {
2
2
  Logout = "logout",
3
- Redirect = "redirect"
3
+ Redirect = "redirect",
4
+ SdkEvent = "sdkEvent"
4
5
  }
5
6
  export declare class WebViewCallback {
6
7
  type: WebViewCallbackType;
@@ -8,6 +9,14 @@ export declare class WebViewCallback {
8
9
  private constructor();
9
10
  static logout(): WebViewCallback;
10
11
  static redirect(status?: string | null): WebViewCallback;
12
+ static sdkEvent(status: string): WebViewCallback;
11
13
  }
12
14
  export type WebViewCallbackFunction = (callback: WebViewCallback) => void;
15
+ export declare class SdkCallbackStatus {
16
+ static readonly userLocationPermissionGranted = "USER_LOCATION_PERMISSION_GRANTED";
17
+ static readonly userLocationPermissionDenied = "USER_LOCATION_PERMISSION_DENIED";
18
+ static readonly userLocationPermissionPermanentlyDenied = "USER_LOCATION_PERMISSION_PERMANENTLY_DENIED";
19
+ static readonly userLocationServiceDisabled = "USER_LOCATION_SERVICE_DISABLED";
20
+ static readonly userLocationFetchError = "USER_LOCATION_FETCH_ERROR";
21
+ }
13
22
  //# sourceMappingURL=webviewCallback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webviewCallback.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/utils/webviewCallback.tsx"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAE3B,MAAM,WAAW;IACjB,QAAQ,aAAa;CACxB;AAED,qBAAa,eAAe;IACxB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,OAAO;IAKP,MAAM,CAAC,MAAM,IAAI,eAAe;IAIhC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,eAAe;CAG3D;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"webviewCallback.d.ts","sourceRoot":"","sources":["../../../../../src/helpers/utils/webviewCallback.tsx"],"names":[],"mappings":"AAAA,oBAAY,mBAAmB;IAC7B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,qBAAa,eAAe;IAC1B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB,OAAO;IAKP,MAAM,CAAC,MAAM,IAAI,eAAe;IAIhC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,eAAe;IAIxD,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;CAGjD;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,CAAC;AAE1E,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,QAAQ,CAAC,6BAA6B,sCACR;IACrC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,qCACR;IACpC,MAAM,CAAC,QAAQ,CAAC,uCAAuC,iDACP;IAChD,MAAM,CAAC,QAAQ,CAAC,2BAA2B,oCACR;IACnC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,+BAA+B;CACtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"webview.d.ts","sourceRoot":"","sources":["../../../../src/helpers/webview.tsx"],"names":[],"mappings":"AAgBA,OAAO,EACL,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAcjC,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,KAAK,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAc7C;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAoCtE;AAuBD,eAAO,MAAM,OAAO,GAAI,0EAOrB,kBAAkB,4CAsgBpB,CAAC"}
1
+ {"version":3,"file":"webview.d.ts","sourceRoot":"","sources":["../../../../src/helpers/webview.tsx"],"names":[],"mappings":"AAgBA,OAAO,EACL,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AAcjC,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,KAAK,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAc7C;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAoCtE;AAWD,eAAO,MAAM,OAAO,GAAI,0EAOrB,kBAAkB,4CAybpB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "banking_dcb_sdk_react_native",
3
- "version": "1.0.774w",
3
+ "version": "2.0.0",
4
4
  "description": "React Native package for partner integrating with DCB",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/module/index.js",
@@ -1,15 +1,26 @@
1
1
  import { APICall } from './network/APICall';
2
2
  import { DeviceInfoManager } from './utils/deviceInfoManager';
3
3
  import { LibraryConstants } from './utils/LibraryConstants';
4
- import { type WebViewCallbackFunction } from './utils/webviewCallback';
4
+ import {
5
+ SdkCallbackStatus,
6
+ WebViewCallback,
7
+ type WebViewCallbackFunction,
8
+ } from './utils/webviewCallback';
5
9
  import { ServiceNames } from './ServiceNames';
6
10
  import { Constants } from './utils/Constants';
7
11
  import { WebView } from './webview';
8
12
  import { SafeAreaView } from 'react-native-safe-area-context';
9
- import { StatusBar } from 'react-native';
13
+ import {
14
+ Alert,
15
+ PermissionsAndroid,
16
+ Platform,
17
+ StatusBar,
18
+ ToastAndroid,
19
+ } from 'react-native';
10
20
  export type { WebViewCallbackFunction } from './utils/webviewCallback';
11
21
  import { AnalyticsLogger } from './analytics/analytics_logger';
12
22
  import * as base64js from 'base64-js';
23
+ // import GetLocation, { type Location } from 'react-native-get-location';
13
24
 
14
25
  type InitOptions = {
15
26
  whitelistedDomains: string[];
@@ -28,7 +39,6 @@ export class BankingDcbReactNative {
28
39
 
29
40
  private _apiCall = new APICall();
30
41
  static webViewCallback: WebViewCallbackFunction;
31
- private _analyticsLogger!: AnalyticsLogger;
32
42
  private constructor() {}
33
43
 
34
44
  static getInstance(): BankingDcbReactNative {
@@ -45,7 +55,7 @@ export class BankingDcbReactNative {
45
55
  deviceBindingEnabled: false,
46
56
  }
47
57
  ): Promise<void> {
48
- // console.log("PartnerLibrary.init - initialized:", PartnerLibrary.intialized);
58
+ console.log('SDK LOG: SDK INITIALIZED');
49
59
  if (BankingDcbReactNative.intialized) return;
50
60
 
51
61
  try {
@@ -82,7 +92,6 @@ export class BankingDcbReactNative {
82
92
  whitelistedDomains: whitelistedDomains,
83
93
  deviceBinding: deviceBindingEnabled,
84
94
  });
85
- this._analyticsLogger = new AnalyticsLogger();
86
95
  // this._analyticsLogger.logEvent({ event: 'REACT_NATIVE_INTIALIZED' });
87
96
  }
88
97
 
@@ -90,7 +99,7 @@ export class BankingDcbReactNative {
90
99
  module: string,
91
100
  token: string,
92
101
  WebViewCallbackFunction: WebViewCallbackFunction
93
- ): Promise<React.ReactElement> {
102
+ ): Promise<React.ReactElement | null> {
94
103
  // this._analyticsLogger.logEvent({ event: 'REACT_NATIVE_OPEN_FN_CALLED' });
95
104
 
96
105
  if (!BankingDcbReactNative.intialized) {
@@ -122,7 +131,7 @@ export class BankingDcbReactNative {
122
131
  bank: string,
123
132
  url: string,
124
133
  WebViewCallbackFunction: WebViewCallbackFunction
125
- ): Promise<React.ReactElement> {
134
+ ): Promise<React.ReactElement | null> {
126
135
  // this._analyticsLogger.logEvent({
127
136
  // event: 'REACT_NATIVE_DEVICE_BINDING_CALLED',
128
137
  // });
@@ -143,7 +152,7 @@ export class BankingDcbReactNative {
143
152
  bank: string,
144
153
  token: string,
145
154
  WebViewCallbackFunction: WebViewCallbackFunction
146
- ): Promise<React.ReactElement> {
155
+ ): Promise<React.ReactElement | null> {
147
156
  // console.log("PartnerLibrary._loginAndNavigateToWebView - LibraryConstants.hostName:", LibraryConstants.hostName);
148
157
  try {
149
158
  // this._analyticsLogger.logEvent({ event: 'REACT_NATIVE_LOGIN_FN_CALLED' });
@@ -207,7 +216,7 @@ export class BankingDcbReactNative {
207
216
  bank: string,
208
217
  url: string,
209
218
  WebViewCallbackFunction: WebViewCallbackFunction
210
- ): Promise<React.ReactElement> {
219
+ ): Promise<React.ReactElement | null> {
211
220
  try {
212
221
  console.log('SDK:LOG: in setup device session');
213
222
 
@@ -219,22 +228,38 @@ export class BankingDcbReactNative {
219
228
  console.log('App Version:', appVersion);
220
229
  }
221
230
  console.log('SDK:LOG device uuid is ');
222
-
231
+ // const position = await this._getCurrentLocationIfPossible(
232
+ // BankingDcbReactNative.webViewCallback
233
+ // );
234
+
235
+ // if (!position) {
236
+ // console.log('SDK:LOG: location fetched is : ', position);
237
+ // return null;
238
+ // }
239
+
240
+ // const latitude = String(position.latitude);
241
+ // const longitude = String(position.longitude);
242
+
243
+ const body: JSONMap = {
244
+ [Constants.MANUFACTURER]: deviceInfo[Constants.MANUFACTURER],
245
+ [Constants.MODEL]: deviceInfo[Constants.MODEL],
246
+ [Constants.DEVICE_UUID]: deviceInfo[Constants.DEVICE_UUID],
247
+ [Constants.OS]: deviceInfo[Constants.OS],
248
+ [Constants.OS_VERSION]: deviceInfo[Constants.OS_VERSION],
249
+ [Constants.APP_VERSION]: appVersion,
250
+ // [Constants.LATITUDE]: latitude,
251
+ // [Constants.LONGITUDE]: longitude,
252
+ // [Constants.ACCURACY]: String(position.accuracy),
253
+ };
254
+ console.log('SDK:LOG: body for device session is : ', body);
223
255
  const response = await this._apiCall.callAPI(
224
256
  'POST',
225
257
  ServiceNames.DEVICE_SESSION.params({ partner: bank }),
226
258
  {
227
- body: {
228
- [Constants.MANUFACTURER]: deviceInfo[Constants.MANUFACTURER],
229
- [Constants.MODEL]: deviceInfo[Constants.MODEL],
230
- [Constants.DEVICE_UUID]: deviceInfo[Constants.DEVICE_UUID],
231
- [Constants.OS]: deviceInfo[Constants.OS],
232
- [Constants.OS_VERSION]: deviceInfo[Constants.OS_VERSION],
233
- [Constants.APP_VERSION]: appVersion,
234
- },
259
+ body,
235
260
  }
236
261
  );
237
- //console.log("response from setup device session is : ", response)
262
+ console.log('response from setup device session is : ', response);
238
263
  if (
239
264
  response &&
240
265
  response.data &&
@@ -380,7 +405,7 @@ export class BankingDcbReactNative {
380
405
  [Constants.MANUFACTURER]: deviceInfo[Constants.MANUFACTURER],
381
406
  [Constants.MODEL]: deviceInfo[Constants.MODEL],
382
407
  [Constants.DEVICE_UUID]: deviceInfo[Constants.DEVICE_UUID],
383
- [Constants.OS]: deviceInfo[Constants.OS], // "Android"/"iOS" from your manager
408
+ [Constants.OS]: deviceInfo[Constants.OS],
384
409
  [Constants.OS_VERSION]: deviceInfo[Constants.OS_VERSION],
385
410
  [Constants.APP_VERSION]: appVersion,
386
411
  },
@@ -410,4 +435,97 @@ export class BankingDcbReactNative {
410
435
  };
411
436
  }
412
437
  }
438
+
439
+ // private async _getCurrentLocationIfPossible(
440
+ // webViewCallback: WebViewCallbackFunction
441
+ // ): Promise<Location | null> {
442
+ // try {
443
+ // console.log('SDK:LOG: in get current location');
444
+
445
+ // if (Platform.OS === 'android') {
446
+ // const hasFineLocation = await PermissionsAndroid.check(
447
+ // PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION
448
+ // );
449
+
450
+ // let result: string;
451
+
452
+ // if (!hasFineLocation) {
453
+ // result = await PermissionsAndroid.request(
454
+ // PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION
455
+ // );
456
+ // } else {
457
+ // result = PermissionsAndroid.RESULTS.GRANTED;
458
+ // }
459
+
460
+ // console.log('SDK:LOG: ANDROID LOCATION PERMISSION RESULT =>', result);
461
+
462
+ // if (result === PermissionsAndroid.RESULTS.DENIED) {
463
+ // webViewCallback(
464
+ // WebViewCallback.sdkEvent(
465
+ // SdkCallbackStatus.userLocationPermissionDenied
466
+ // )
467
+ // );
468
+ // return null;
469
+ // }
470
+
471
+ // if (result === PermissionsAndroid.RESULTS.NEVER_ASK_AGAIN) {
472
+ // ToastAndroid.show(
473
+ // 'Location permission denied. Please enable it from Settings.',
474
+ // ToastAndroid.LONG
475
+ // );
476
+ // webViewCallback(
477
+ // WebViewCallback.sdkEvent(
478
+ // SdkCallbackStatus.userLocationPermissionPermanentlyDenied
479
+ // )
480
+ // );
481
+ // return null;
482
+ // }
483
+ // }
484
+
485
+ // const location = await GetLocation.getCurrentPosition({
486
+ // enableHighAccuracy: true,
487
+ // timeout: 15000,
488
+ // });
489
+
490
+ // console.log('SDK:LOG: 📍 Got position via GetLocation:', {
491
+ // latitude: location.latitude,
492
+ // longitude: location.longitude,
493
+ // accuracy: location.accuracy,
494
+ // time: location.time,
495
+ // });
496
+
497
+ // return location;
498
+ // } catch (error: any) {
499
+ // console.log(
500
+ // 'SDK:LOG: Error while fetching location (GetLocation):',
501
+ // error
502
+ // );
503
+
504
+ // const code = error?.code as string | undefined;
505
+
506
+ // if (code === 'UNAUTHORIZED') {
507
+ // webViewCallback(
508
+ // WebViewCallback.sdkEvent(
509
+ // SdkCallbackStatus.userLocationPermissionDenied
510
+ // )
511
+ // );
512
+ // } else if (code === 'UNAVAILABLE') {
513
+ // webViewCallback(
514
+ // WebViewCallback.sdkEvent(
515
+ // SdkCallbackStatus.userLocationServiceDisabled
516
+ // )
517
+ // );
518
+ // } else if (code === 'TIMEOUT') {
519
+ // webViewCallback(
520
+ // WebViewCallback.sdkEvent(SdkCallbackStatus.userLocationFetchError)
521
+ // );
522
+ // } else {
523
+ // webViewCallback(
524
+ // WebViewCallback.sdkEvent(SdkCallbackStatus.userLocationFetchError)
525
+ // );
526
+ // }
527
+
528
+ // return null;
529
+ // }
530
+ // }
413
531
  }
@@ -1,10 +1,12 @@
1
1
  export const Constants = {
2
-
3
- MANUFACTURER: "manufacturer",
4
- MODEL: "model",
5
- OS: "os",
6
- OS_VERSION: "os_version",
7
- APP_VERSION: "app_version",
8
- DEVICE_UUID: "device_uuid",
9
- PRIMARY_COLOR: "#3F51B5"
10
- } as const;
2
+ MANUFACTURER: 'manufacturer',
3
+ MODEL: 'model',
4
+ OS: 'os',
5
+ OS_VERSION: 'os_version',
6
+ APP_VERSION: 'app_version',
7
+ DEVICE_UUID: 'device_uuid',
8
+ PRIMARY_COLOR: '#3F51B5',
9
+ LATITUDE: 'latitude',
10
+ LONGITUDE: 'longitude',
11
+ ACCURACY: 'accuracy',
12
+ } as const;
@@ -1,25 +1,41 @@
1
1
  export enum WebViewCallbackType {
2
-
3
- Logout = "logout",
4
- Redirect = "redirect"
2
+ Logout = 'logout',
3
+ Redirect = 'redirect',
4
+ SdkEvent = 'sdkEvent',
5
5
  }
6
6
 
7
7
  export class WebViewCallback {
8
- type: WebViewCallbackType;
9
- status?: string | null;
8
+ type: WebViewCallbackType;
9
+ status?: string | null;
10
+
11
+ private constructor(type: WebViewCallbackType, status?: string | null) {
12
+ this.type = type;
13
+ this.status = status;
14
+ }
10
15
 
11
- private constructor(type: WebViewCallbackType, status?: string | null) {
12
- this.type = type;
13
- this.status = status;
14
- }
16
+ static logout(): WebViewCallback {
17
+ return new WebViewCallback(WebViewCallbackType.Logout);
18
+ }
15
19
 
16
- static logout(): WebViewCallback {
17
- return new WebViewCallback(WebViewCallbackType.Logout);
18
- }
20
+ static redirect(status?: string | null): WebViewCallback {
21
+ return new WebViewCallback(WebViewCallbackType.Redirect, status);
22
+ }
19
23
 
20
- static redirect(status?: string | null): WebViewCallback {
21
- return new WebViewCallback(WebViewCallbackType.Redirect, status);
22
- }
24
+ static sdkEvent(status: string): WebViewCallback {
25
+ return new WebViewCallback(WebViewCallbackType.SdkEvent, status);
26
+ }
23
27
  }
24
28
 
25
- export type WebViewCallbackFunction = (callback: WebViewCallback) => void;
29
+ export type WebViewCallbackFunction = (callback: WebViewCallback) => void;
30
+
31
+ export class SdkCallbackStatus {
32
+ static readonly userLocationPermissionGranted =
33
+ 'USER_LOCATION_PERMISSION_GRANTED';
34
+ static readonly userLocationPermissionDenied =
35
+ 'USER_LOCATION_PERMISSION_DENIED';
36
+ static readonly userLocationPermissionPermanentlyDenied =
37
+ 'USER_LOCATION_PERMISSION_PERMANENTLY_DENIED';
38
+ static readonly userLocationServiceDisabled =
39
+ 'USER_LOCATION_SERVICE_DISABLED';
40
+ static readonly userLocationFetchError = 'USER_LOCATION_FETCH_ERROR';
41
+ }
@@ -111,18 +111,6 @@ export async function openMailAppIntent(app: MailApp): Promise<boolean> {
111
111
 
112
112
  return false;
113
113
  }
114
- const isUserClosedRedirect = (url?: string | null): boolean => {
115
- if (!url) return false;
116
- try {
117
- // Try to parse URL properly
118
- const u = new URL(url);
119
- if (!u.pathname.includes('/api/user/redirect')) return false;
120
- return u.searchParams.get('status') === 'USER_CLOSED';
121
- } catch {
122
- // Fallback for relative / malformed URLs
123
- return url.includes('/api/user/redirect?status=USER_CLOSED');
124
- }
125
- };
126
114
 
127
115
  const clearAllCookies = async () => {
128
116
  try {
@@ -143,8 +131,8 @@ export const WebView = ({
143
131
  }: WebViewCustomProps) => {
144
132
  const webviewRef = useRef<RNWebView | null>(null);
145
133
  const [canGoBack, setCanGoBack] = useState(false);
146
- const waitingForUserClosedRedirectRef = useRef(false);
147
- const [, setWaitingForUserClosedRedirect] = useState(false); // just if you want UI, otherwise skip
134
+ const canGoBackRef = useRef(false);
135
+ const hasUserClosedRef = useRef(false);
148
136
 
149
137
  // const [hasRedirected, setHasRedirected] = useState(false);
150
138
  const [, setToast] = useState<{ visible: boolean; message: string } | null>(
@@ -283,20 +271,6 @@ export const WebView = ({
283
271
  return true;
284
272
  }
285
273
 
286
- // 1. SPECIAL CASE: only USER_CLOSED navigation
287
- if (isUserClosedRedirect(url)) {
288
- console.log(
289
- 'SDK:LOG: USER_CLOSED redirect detected via navigation:',
290
- url
291
- );
292
-
293
- StatusBar.setBackgroundColor('#7E7E7EFF');
294
- clearAllCookies();
295
- onCallback?.(WebViewCallback.redirect('USER_CLOSED'));
296
-
297
- return false; // don't actually load that URL in WebView
298
- }
299
-
300
274
  if (Platform.OS === 'android' && url) {
301
275
  if (url.includes('ms-outlook://')) {
302
276
  console.log('SDK:LOG: Intent to open Outlook detected');
@@ -402,7 +376,6 @@ export const WebView = ({
402
376
  );
403
377
 
404
378
  // Cookie injection script
405
-
406
379
  const injectedJavaScript = `
407
380
  (function() {
408
381
  function safePost(msg) {
@@ -413,13 +386,21 @@ export const WebView = ({
413
386
  } catch (e) {}
414
387
  }
415
388
 
416
- // Let RN know injection actually ran
417
- safePost({
418
- type: 'INJECT_READY',
419
- href: window.location.href
420
- });
389
+ // Preserve any existing window.onerror
390
+ var previousOnError = window.onerror || null;
391
+ window.onerror = function(message, source, lineno, colno, error) {
392
+ try {
393
+ if (String(message || '').indexOf('RATE_LIMIT_USER') !== -1 &&
394
+ window.ReactNativeWebView) {
395
+ safePost({ type: 'RATE_LIMIT_ERROR' });
396
+ }
397
+ } catch (e) {}
398
+ if (typeof previousOnError === 'function') {
399
+ try { return previousOnError.apply(this, arguments); } catch (e) {}
400
+ }
401
+ };
421
402
 
422
- // Spy on history.back()
403
+ // Patch history.back() to notify the app
423
404
  if (window.history && typeof window.history.back === 'function') {
424
405
  var originalBack = window.history.back;
425
406
  window.history.back = function() {
@@ -430,70 +411,6 @@ export const WebView = ({
430
411
  return originalBack.apply(this, arguments);
431
412
  };
432
413
  }
433
-
434
- // Spy on location.assign / replace
435
- try {
436
- var originalAssign = window.location.assign
437
- ? window.location.assign.bind(window.location)
438
- : null;
439
- var originalReplace = window.location.replace
440
- ? window.location.replace.bind(window.location)
441
- : null;
442
-
443
- if (originalAssign) {
444
- window.location.assign = function(url) {
445
- safePost({
446
- type: 'LOCATION_ASSIGN',
447
- url: url,
448
- from: window.location.href
449
- });
450
- return originalAssign(url);
451
- };
452
- }
453
-
454
- if (originalReplace) {
455
- window.location.replace = function(url) {
456
- safePost({
457
- type: 'LOCATION_REPLACE',
458
- url: url,
459
- from: window.location.href
460
- });
461
- return originalReplace(url);
462
- };
463
- }
464
-
465
- // Spy on direct href writes (best-effort)
466
- try {
467
- var currentHref = window.location.href;
468
- Object.defineProperty(window.location, 'href', {
469
- get: function() {
470
- return currentHref;
471
- },
472
- set: function(val) {
473
- safePost({
474
- type: 'LOCATION_HREF_SET',
475
- url: val,
476
- from: currentHref
477
- });
478
- currentHref = val;
479
- if (originalAssign) {
480
- return originalAssign(val);
481
- }
482
- }
483
- });
484
- } catch (e) {
485
- // Some browsers/WebViews don't allow redefining href; ignore
486
- safePost({
487
- type: 'LOCATION_HREF_PATCH_FAILED',
488
- error: String(e)
489
- });
490
- }
491
- } catch (e) {
492
- safePost({
493
- type: 'LOCATION_SPY_ERROR',
494
- error: String(e)
495
- });
496
- }
497
414
  })();
498
415
  true;
499
416
  `;
@@ -562,47 +479,40 @@ export const WebView = ({
562
479
  }
563
480
  };
564
481
 
565
- const setWaitingFlag = (value: boolean) => {
566
- waitingForUserClosedRedirectRef.current = value;
567
- setWaitingForUserClosedRedirect(value);
568
- };
569
-
570
482
  const handleMessage = (event: WebViewMessageEvent) => {
571
483
  try {
572
484
  const data = JSON.parse(event.nativeEvent.data);
573
- console.log('SDK:LOG: onMessage data =', data);
485
+ console.log('SDK:LOG: onMessage data =');
574
486
 
575
- switch (data?.type) {
576
- case 'INJECT_READY':
577
- console.log('SDK:LOG: INJECT_READY, href =', data.href);
578
- break;
487
+ // 1) history.back() from a "root" page → treat as USER_CLOSED
488
+ if (data?.type === 'HISTORY_BACK_CALLED') {
489
+ console.log('SDK:LOG: HISTORY_BACK_CALLED at', data.href);
579
490
 
580
- case 'HISTORY_BACK_CALLED':
581
- console.log('SDK:LOG: HISTORY_BACK_CALLED at', data.href);
582
- break;
491
+ if (!canGoBackRef.current && !hasUserClosedRef.current) {
492
+ hasUserClosedRef.current = true;
583
493
 
584
- case 'LOCATION_ASSIGN':
585
- case 'LOCATION_REPLACE':
586
- case 'LOCATION_HREF_SET':
587
494
  console.log(
588
- 'SDK:LOG:',
589
- data.type,
590
- 'from =',
591
- data.from,
592
- 'to =',
593
- data.url
495
+ 'SDK:LOG: No WebView history. Treating HISTORY_BACK as USER_CLOSED'
594
496
  );
595
- break;
596
497
 
597
- case 'LOCATION_HREF_PATCH_FAILED':
598
- case 'LOCATION_SPY_ERROR':
599
- console.log('SDK:LOG:', data.type, data.error);
600
- break;
498
+ StatusBar.setBackgroundColor('#7E7E7EFF');
499
+ clearAllCookies();
500
+ onCallback?.(WebViewCallback.redirect('USER_CLOSED'));
501
+ }
502
+
503
+ return;
504
+ }
601
505
 
602
- default:
603
- // keep your existing CLOSE_CLICKED / RATE_LIMIT logic here if you want,
604
- // but for now pure logging is enough
605
- break;
506
+ if (data?.type === 'RATE_LIMIT_ERROR') {
507
+ console.log('SDK:LOG: RATE_LIMIT_ERROR received from web');
508
+ ToastAndroid.show(
509
+ 'Too many requests. Please try after 1 minute',
510
+ ToastAndroid.LONG
511
+ );
512
+ // StatusBar.setBackgroundColor('#7E7E7EFF');
513
+ // clearAllCookies();
514
+ // onCallback?.(WebViewCallback.redirect('RATE_LIMIT_ERROR'));
515
+ // return;
606
516
  }
607
517
  } catch (e) {
608
518
  console.warn('SDK:LOG: Error parsing WebView message', e);
@@ -646,6 +556,7 @@ export const WebView = ({
646
556
  onNavigationStateChange={(navState) => {
647
557
  console.log('SDK:LOG: NAV STATE URL:', navState.url);
648
558
  setCanGoBack(navState.canGoBack);
559
+ canGoBackRef.current = navState.canGoBack;
649
560
  }}
650
561
  injectedJavaScript={injectedJavaScript}
651
562
  decelerationRate={Platform.OS === 'ios' ? 'normal' : 0.9}
@@ -1,6 +0,0 @@
1
-
2
- #import <PartnerReactNativeSdk/RNPartnerReactNativeSdkSpec.h>
3
-
4
- @interface PartnerReactNativeSdk : NSObject <NativePartnerReactNativeSdkSpec>
5
-
6
- @end