react-native-unit-components 0.1.0 → 1.0.1

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 (406) hide show
  1. package/README.md +157 -2
  2. package/android/src/main/java/com/unitreactnativecomponents/UnitAddToWalletButtonViewManager.kt +27 -0
  3. package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsEvent.kt +21 -0
  4. package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsPackage.kt +2 -1
  5. package/android/src/main/java/com/unitreactnativecomponents/visapresentation/UNGooglePayView.kt +197 -0
  6. package/android/src/main/res/drawable/ic_launcher_background.xml +170 -0
  7. package/android/src/main/res/drawable/un_add_to_googlepay_button_content.xml +54 -0
  8. package/android/src/main/res/drawable/un_black_add_to_googlepay_button_content.xml +54 -0
  9. package/android/src/main/res/drawable/un_black_googlepay_button_background.xml +6 -0
  10. package/android/src/main/res/drawable/un_black_googlepay_button_background_image.9.png +0 -0
  11. package/android/src/main/res/drawable/un_black_googlepay_button_content.xml +48 -0
  12. package/android/src/main/res/drawable/un_black_googlepay_button_no_shadow_background.xml +6 -0
  13. package/android/src/main/res/drawable/un_black_googlepay_button_no_shadow_background_image.9.png +0 -0
  14. package/android/src/main/res/drawable/un_black_googlepay_button_overlay.xml +12 -0
  15. package/android/src/main/res/drawable/un_border.xml +6 -0
  16. package/android/src/main/res/drawable/un_condensed_googlepay.xml +27 -0
  17. package/android/src/main/res/drawable/un_googlepay_button_background.xml +18 -0
  18. package/android/src/main/res/drawable/un_googlepay_button_background_image.9.png +0 -0
  19. package/android/src/main/res/drawable/un_googlepay_button_background_image_focused.9.png +0 -0
  20. package/android/src/main/res/drawable/un_googlepay_button_background_image_pressed.9.png +0 -0
  21. package/android/src/main/res/drawable/un_googlepay_button_content.xml +48 -0
  22. package/android/src/main/res/drawable/un_googlepay_button_no_shadow_background.xml +18 -0
  23. package/android/src/main/res/drawable/un_googlepay_button_no_shadow_background_image.9.png +0 -0
  24. package/android/src/main/res/drawable/un_googlepay_button_no_shadow_background_image_focused.9.png +0 -0
  25. package/android/src/main/res/drawable/un_googlepay_button_no_shadow_background_image_pressed.9.png +0 -0
  26. package/android/src/main/res/drawable/un_googlepay_button_overlay.xml +11 -0
  27. package/android/src/main/res/drawable/un_ic_launcher_foreground.xml +30 -0
  28. package/android/src/main/res/drawable/un_ic_unit_logo.xml +25 -0
  29. package/android/src/main/res/drawable/un_ic_visa.xml +13 -0
  30. package/android/src/main/res/drawable-bg/un_add_to_googlepay_button_content.xml +54 -0
  31. package/android/src/main/res/drawable-bg/un_black_add_to_googlepay_button_content.xml +54 -0
  32. package/android/src/main/res/drawable-ca/un_add_to_googlepay_button_content.xml +30 -0
  33. package/android/src/main/res/drawable-ca/un_black_add_to_googlepay_button_content.xml +30 -0
  34. package/android/src/main/res/drawable-cs/un_add_to_googlepay_button_content.xml +54 -0
  35. package/android/src/main/res/drawable-cs/un_black_add_to_googlepay_button_content.xml +54 -0
  36. package/android/src/main/res/drawable-da/un_add_to_googlepay_button_content.xml +30 -0
  37. package/android/src/main/res/drawable-da/un_black_add_to_googlepay_button_content.xml +30 -0
  38. package/android/src/main/res/drawable-de/un_add_to_googlepay_button_content.xml +60 -0
  39. package/android/src/main/res/drawable-de/un_black_add_to_googlepay_button_content.xml +60 -0
  40. package/android/src/main/res/drawable-el/un_add_to_googlepay_button_content.xml +67 -0
  41. package/android/src/main/res/drawable-el/un_black_add_to_googlepay_button_content.xml +67 -0
  42. package/android/src/main/res/drawable-es/un_add_to_googlepay_button_content.xml +54 -0
  43. package/android/src/main/res/drawable-es/un_black_add_to_googlepay_button_content.xml +54 -0
  44. package/android/src/main/res/drawable-et/un_add_to_googlepay_button_content.xml +64 -0
  45. package/android/src/main/res/drawable-et/un_black_add_to_googlepay_button_content.xml +64 -0
  46. package/android/src/main/res/drawable-fi/un_add_to_googlepay_button_content.xml +39 -0
  47. package/android/src/main/res/drawable-fi/un_black_add_to_googlepay_button_content.xml +39 -0
  48. package/android/src/main/res/drawable-fr/un_add_to_googlepay_button_content.xml +54 -0
  49. package/android/src/main/res/drawable-fr/un_black_add_to_googlepay_button_content.xml +54 -0
  50. package/android/src/main/res/drawable-hr/un_add_to_googlepay_button_content.xml +54 -0
  51. package/android/src/main/res/drawable-hr/un_black_add_to_googlepay_button_content.xml +54 -0
  52. package/android/src/main/res/drawable-hu/un_add_to_googlepay_button_content.xml +64 -0
  53. package/android/src/main/res/drawable-hu/un_black_add_to_googlepay_button_content.xml +64 -0
  54. package/android/src/main/res/drawable-in/un_add_to_googlepay_button_content.xml +54 -0
  55. package/android/src/main/res/drawable-in/un_black_add_to_googlepay_button_content.xml +54 -0
  56. package/android/src/main/res/drawable-it/un_add_to_googlepay_button_content.xml +54 -0
  57. package/android/src/main/res/drawable-it/un_black_add_to_googlepay_button_content.xml +54 -0
  58. package/android/src/main/res/drawable-iw/un_add_to_googlepay_button_content.xml +41 -0
  59. package/android/src/main/res/drawable-iw/un_black_add_to_googlepay_button_content.xml +41 -0
  60. package/android/src/main/res/drawable-ja/un_add_to_googlepay_button_content.xml +54 -0
  61. package/android/src/main/res/drawable-ja/un_black_add_to_googlepay_button_content.xml +54 -0
  62. package/android/src/main/res/drawable-ko/un_add_to_googlepay_button_content.xml +54 -0
  63. package/android/src/main/res/drawable-ko/un_black_add_to_googlepay_button_content.xml +54 -0
  64. package/android/src/main/res/drawable-lt/un_add_to_googlepay_button_content.xml +70 -0
  65. package/android/src/main/res/drawable-lt/un_black_add_to_googlepay_button_content.xml +70 -0
  66. package/android/src/main/res/drawable-lv/un_add_to_googlepay_button_content.xml +61 -0
  67. package/android/src/main/res/drawable-lv/un_black_add_to_googlepay_button_content.xml +61 -0
  68. package/android/src/main/res/drawable-ms/un_add_to_googlepay_button_content.xml +54 -0
  69. package/android/src/main/res/drawable-ms/un_black_add_to_googlepay_button_content.xml +54 -0
  70. package/android/src/main/res/drawable-nb/un_add_to_googlepay_button_content.xml +30 -0
  71. package/android/src/main/res/drawable-nb/un_black_add_to_googlepay_button_content.xml +30 -0
  72. package/android/src/main/res/drawable-nl/un_add_to_googlepay_button_content.xml +58 -0
  73. package/android/src/main/res/drawable-nl/un_black_add_to_googlepay_button_content.xml +54 -0
  74. package/android/src/main/res/drawable-pl/un_add_to_googlepay_button_content.xml +30 -0
  75. package/android/src/main/res/drawable-pl/un_black_add_to_googlepay_button_content.xml +30 -0
  76. package/android/src/main/res/drawable-pt/un_add_to_googlepay_button_content.xml +54 -0
  77. package/android/src/main/res/drawable-pt/un_black_add_to_googlepay_button_content.xml +54 -0
  78. package/android/src/main/res/drawable-ro/un_add_to_googlepay_button_content.xml +58 -0
  79. package/android/src/main/res/drawable-ro/un_black_add_to_googlepay_button_content.xml +58 -0
  80. package/android/src/main/res/drawable-ru/un_add_to_googlepay_button_content.xml +54 -0
  81. package/android/src/main/res/drawable-ru/un_black_add_to_googlepay_button_content.xml +54 -0
  82. package/android/src/main/res/drawable-sk/un_add_to_googlepay_button_content.xml +54 -0
  83. package/android/src/main/res/drawable-sk/un_black_add_to_googlepay_button_content.xml +54 -0
  84. package/android/src/main/res/drawable-sl/un_add_to_googlepay_button_content.xml +54 -0
  85. package/android/src/main/res/drawable-sl/un_black_add_to_googlepay_button_content.xml +54 -0
  86. package/android/src/main/res/drawable-sr/un_add_to_googlepay_button_content.xml +54 -0
  87. package/android/src/main/res/drawable-sr/un_black_add_to_googlepay_button_content.xml +54 -0
  88. package/android/src/main/res/drawable-sv/un_add_to_googlepay_button_content.xml +30 -0
  89. package/android/src/main/res/drawable-sv/un_black_add_to_googlepay_button_content.xml +30 -0
  90. package/android/src/main/res/drawable-th/un_add_to_googlepay_button_content.xml +54 -0
  91. package/android/src/main/res/drawable-th/un_black_add_to_googlepay_button_content.xml +54 -0
  92. package/android/src/main/res/drawable-tr/un_add_to_googlepay_button_content.xml +54 -0
  93. package/android/src/main/res/drawable-tr/un_black_add_to_googlepay_button_content.xml +54 -0
  94. package/android/src/main/res/drawable-uk/un_add_to_googlepay_button_content.xml +54 -0
  95. package/android/src/main/res/drawable-uk/un_black_add_to_googlepay_button_content.xml +54 -0
  96. package/android/src/main/res/drawable-v21/un_black_googlepay_button_background.xml +7 -0
  97. package/android/src/main/res/drawable-v21/un_black_googlepay_button_background_image.9.png +0 -0
  98. package/android/src/main/res/drawable-v21/un_black_googlepay_button_no_shadow_background.xml +7 -0
  99. package/android/src/main/res/drawable-v21/un_black_googlepay_button_no_shadow_background_image.9.png +0 -0
  100. package/android/src/main/res/drawable-v24/ic_launcher_background.xml +170 -0
  101. package/android/src/main/res/drawable-v24/un_border.xml +6 -0
  102. package/android/src/main/res/drawable-v24/un_ic_launcher_foreground.xml +30 -0
  103. package/android/src/main/res/drawable-v24/un_ic_unit_logo.xml +25 -0
  104. package/android/src/main/res/drawable-v24/un_ic_visa.xml +13 -0
  105. package/android/src/main/res/drawable-zh/un_add_to_googlepay_button_content.xml +54 -0
  106. package/android/src/main/res/drawable-zh/un_black_add_to_googlepay_button_content.xml +54 -0
  107. package/android/src/main/res/layout/un_black_add_to_googlepay_button.xml +32 -0
  108. package/android/src/main/res/layout/un_view_google_push_provisioning.xml +45 -0
  109. package/android/src/main/res/layout/un_white_add_to_googlepay_button.xml +31 -0
  110. package/android/src/main/res/layout/un_white_add_to_googlepay_button_no_shadow.xml +31 -0
  111. package/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +5 -0
  112. package/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +5 -0
  113. package/android/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
  114. package/android/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
  115. package/android/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
  116. package/android/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
  117. package/android/src/main/res/mipmap-xhdpi/black_googlepay_button_background_image.9.png +0 -0
  118. package/android/src/main/res/mipmap-xhdpi/black_googlepay_button_no_shadow_background_image.9.png +0 -0
  119. package/android/src/main/res/mipmap-xhdpi/googlepay_button_background_image.9.png +0 -0
  120. package/android/src/main/res/mipmap-xhdpi/googlepay_button_background_image_focused.9.png +0 -0
  121. package/android/src/main/res/mipmap-xhdpi/googlepay_button_background_image_pressed.9.png +0 -0
  122. package/android/src/main/res/mipmap-xhdpi/googlepay_button_no_shadow_background_image_focused.9.png +0 -0
  123. package/android/src/main/res/mipmap-xhdpi/googlepay_button_no_shadow_background_image_pressed.9.png +0 -0
  124. package/android/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
  125. package/android/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
  126. package/android/src/main/res/mipmap-xhdpi/white_googlepay_button_no_shadow_background_image.9.png +0 -0
  127. package/android/src/main/res/mipmap-xxhdpi/black_googlepay_button_background_image.9.png +0 -0
  128. package/android/src/main/res/mipmap-xxhdpi/black_googlepay_button_no_shadow_background_image.9.png +0 -0
  129. package/android/src/main/res/mipmap-xxhdpi/googlepay_button_background_image.9.png +0 -0
  130. package/android/src/main/res/mipmap-xxhdpi/googlepay_button_background_image_focused.9.png +0 -0
  131. package/android/src/main/res/mipmap-xxhdpi/googlepay_button_background_image_pressed.9.png +0 -0
  132. package/android/src/main/res/mipmap-xxhdpi/googlepay_button_no_shadow_background_image.9.png +0 -0
  133. package/android/src/main/res/mipmap-xxhdpi/googlepay_button_no_shadow_background_image_focused.9.png +0 -0
  134. package/android/src/main/res/mipmap-xxhdpi/googlepay_button_no_shadow_background_image_pressed.9.png +0 -0
  135. package/android/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
  136. package/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
  137. package/android/src/main/res/mipmap-xxxhdpi/black_googlepay_button_background_image.9.png +0 -0
  138. package/android/src/main/res/mipmap-xxxhdpi/black_googlepay_button_no_shadow_background_image.9.png +0 -0
  139. package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_background_image.9.png +0 -0
  140. package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_background_image_focused.9.png +0 -0
  141. package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_background_image_pressed.9.png +0 -0
  142. package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_no_shadow_background_image.9.png +0 -0
  143. package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_no_shadow_background_image_focused.9.png +0 -0
  144. package/android/src/main/res/mipmap-xxxhdpi/googlepay_button_no_shadow_background_image_pressed.9.png +0 -0
  145. package/android/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
  146. package/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
  147. package/android/src/main/res/values/colors.xml +14 -0
  148. package/android/src/main/res/values/googlepay_strings.xml +7 -0
  149. package/android/src/main/res/values/strings.xml +4 -0
  150. package/android/src/main/res/values/themes.xml +16 -0
  151. package/android/src/main/res/values-night/themes.xml +16 -0
  152. package/ios/UnitReactNativeComponents.xcodeproj/project.pbxproj +8 -8
  153. package/ios/UnitReactNativeComponentsViewManager.m +3 -2
  154. package/ios/UnitReactNativeComponentsViewManager.swift +39 -25
  155. package/lib/commonjs/assets/images/close.png +0 -0
  156. package/lib/commonjs/assets/images/index.js +16 -0
  157. package/lib/commonjs/assets/images/index.js.map +1 -0
  158. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +28 -0
  159. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -0
  160. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +20 -0
  161. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -0
  162. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +39 -0
  163. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -0
  164. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +40 -0
  165. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -0
  166. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +9 -0
  167. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -0
  168. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +195 -0
  169. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -0
  170. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js +23 -0
  171. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js.map +1 -0
  172. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +49 -0
  173. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -0
  174. package/lib/commonjs/components/{Card/CardComponent.js → UNCardComponent/UNCardComponent.js} +42 -46
  175. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -0
  176. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +42 -0
  177. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -0
  178. package/lib/commonjs/components/index.js +34 -8
  179. package/lib/commonjs/components/index.js.map +1 -1
  180. package/lib/commonjs/custom.d.js +2 -0
  181. package/lib/commonjs/custom.d.js.map +1 -0
  182. package/lib/commonjs/helpers/{BottomSheet.js → BottomSheet/BottomSheet.js} +38 -83
  183. package/lib/commonjs/helpers/BottomSheet/BottomSheet.js.map +1 -0
  184. package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js +82 -0
  185. package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js.map +1 -0
  186. package/lib/commonjs/helpers/EventBus.js +5 -13
  187. package/lib/commonjs/helpers/EventBus.js.map +1 -1
  188. package/lib/commonjs/hooks/listenerToBus.js +31 -0
  189. package/lib/commonjs/hooks/listenerToBus.js.map +1 -0
  190. package/lib/commonjs/hooks/useAppStateListener.js +34 -0
  191. package/lib/commonjs/hooks/useAppStateListener.js.map +1 -0
  192. package/lib/commonjs/index.js +33 -0
  193. package/lib/commonjs/index.js.map +1 -1
  194. package/lib/commonjs/messages/nativeMessages/index.js +13 -0
  195. package/lib/commonjs/messages/nativeMessages/index.js.map +1 -0
  196. package/lib/commonjs/messages/webMessages/bookPaymentMessage.js +13 -0
  197. package/lib/commonjs/messages/webMessages/bookPaymentMessage.js.map +1 -0
  198. package/lib/commonjs/{webComponent → messages}/webMessages/cardMessage.js +1 -1
  199. package/lib/commonjs/messages/webMessages/cardMessage.js.map +1 -0
  200. package/lib/commonjs/messages/webMessages/index.js +6 -0
  201. package/lib/commonjs/messages/webMessages/index.js.map +1 -0
  202. package/lib/commonjs/{webComponent → messages}/webMessages/pageMessage.js +0 -0
  203. package/lib/commonjs/messages/webMessages/pageMessage.js.map +1 -0
  204. package/lib/commonjs/{webComponent → messages}/webMessages/unitMessages.js +0 -0
  205. package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -0
  206. package/lib/commonjs/nativeComponent/UNNativeAddToWalletButton.js +13 -0
  207. package/lib/commonjs/nativeComponent/UNNativeAddToWalletButton.js.map +1 -0
  208. package/lib/commonjs/scripts/html/bodyHtml.js +52 -0
  209. package/lib/commonjs/scripts/html/bodyHtml.js.map +1 -0
  210. package/lib/commonjs/scripts/html/bodyScript.js +78 -0
  211. package/lib/commonjs/scripts/html/bodyScript.js.map +1 -0
  212. package/lib/commonjs/sharedTypes/bookPayment.types.js +6 -0
  213. package/lib/commonjs/sharedTypes/bookPayment.types.js.map +1 -0
  214. package/lib/commonjs/sharedTypes/card.types.js +6 -0
  215. package/lib/commonjs/sharedTypes/card.types.js.map +1 -0
  216. package/lib/commonjs/sharedTypes/index.js +32 -0
  217. package/lib/commonjs/sharedTypes/index.js.map +1 -0
  218. package/lib/commonjs/sharedTypes/types.js +2 -0
  219. package/lib/commonjs/sharedTypes/types.js.map +1 -0
  220. package/lib/commonjs/styles/variables.js +17 -0
  221. package/lib/commonjs/styles/variables.js.map +1 -0
  222. package/lib/commonjs/unitSdkManager/UnitSdk.api.js +54 -0
  223. package/lib/commonjs/unitSdkManager/UnitSdk.api.js.map +1 -0
  224. package/lib/commonjs/unitSdkManager/UnitSdkManager.js +51 -0
  225. package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -0
  226. package/lib/commonjs/webComponent/WebComponent.js +47 -15
  227. package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
  228. package/lib/commonjs/webComponent/html.js +22 -45
  229. package/lib/commonjs/webComponent/html.js.map +1 -1
  230. package/lib/module/assets/images/close.png +0 -0
  231. package/lib/module/assets/images/index.js +2 -0
  232. package/lib/module/assets/images/index.js.map +1 -0
  233. package/lib/module/components/UNActivityComponent/UNActivityComponent.js +13 -0
  234. package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -0
  235. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +10 -0
  236. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -0
  237. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +23 -0
  238. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -0
  239. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +26 -0
  240. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -0
  241. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +2 -0
  242. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -0
  243. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +163 -0
  244. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -0
  245. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js +13 -0
  246. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js.map +1 -0
  247. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +29 -0
  248. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -0
  249. package/lib/module/components/UNCardComponent/UNCardComponent.js +65 -0
  250. package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -0
  251. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +24 -0
  252. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -0
  253. package/lib/module/components/index.js +4 -2
  254. package/lib/module/components/index.js.map +1 -1
  255. package/lib/module/custom.d.js +2 -0
  256. package/lib/module/custom.d.js.map +1 -0
  257. package/lib/module/helpers/{BottomSheet.js → BottomSheet/BottomSheet.js} +36 -82
  258. package/lib/module/helpers/BottomSheet/BottomSheet.js.map +1 -0
  259. package/lib/module/helpers/BottomSheet/BottomSheet.styles.js +70 -0
  260. package/lib/module/helpers/BottomSheet/BottomSheet.styles.js.map +1 -0
  261. package/lib/module/helpers/EventBus.js +4 -11
  262. package/lib/module/helpers/EventBus.js.map +1 -1
  263. package/lib/module/hooks/listenerToBus.js +18 -0
  264. package/lib/module/hooks/listenerToBus.js.map +1 -0
  265. package/lib/module/hooks/useAppStateListener.js +23 -0
  266. package/lib/module/hooks/useAppStateListener.js.map +1 -0
  267. package/lib/module/index.js +2 -0
  268. package/lib/module/index.js.map +1 -1
  269. package/lib/module/messages/nativeMessages/index.js +6 -0
  270. package/lib/module/messages/nativeMessages/index.js.map +1 -0
  271. package/lib/module/messages/webMessages/bookPaymentMessage.js +6 -0
  272. package/lib/module/messages/webMessages/bookPaymentMessage.js.map +1 -0
  273. package/lib/module/messages/webMessages/cardMessage.js +6 -0
  274. package/lib/module/messages/webMessages/cardMessage.js.map +1 -0
  275. package/lib/module/messages/webMessages/index.js +2 -0
  276. package/lib/module/messages/webMessages/index.js.map +1 -0
  277. package/lib/module/{webComponent → messages}/webMessages/pageMessage.js +0 -0
  278. package/lib/module/messages/webMessages/pageMessage.js.map +1 -0
  279. package/lib/module/{webComponent → messages}/webMessages/unitMessages.js +0 -0
  280. package/lib/module/messages/webMessages/unitMessages.js.map +1 -0
  281. package/lib/module/nativeComponent/UNNativeAddToWalletButton.js +4 -0
  282. package/lib/module/nativeComponent/UNNativeAddToWalletButton.js.map +1 -0
  283. package/lib/module/scripts/html/bodyHtml.js +42 -0
  284. package/lib/module/scripts/html/bodyHtml.js.map +1 -0
  285. package/lib/module/scripts/html/bodyScript.js +64 -0
  286. package/lib/module/scripts/html/bodyScript.js.map +1 -0
  287. package/lib/module/sharedTypes/bookPayment.types.js +2 -0
  288. package/lib/module/sharedTypes/bookPayment.types.js.map +1 -0
  289. package/lib/module/sharedTypes/card.types.js +2 -0
  290. package/lib/module/sharedTypes/card.types.js.map +1 -0
  291. package/lib/module/sharedTypes/index.js +3 -0
  292. package/lib/module/sharedTypes/index.js.map +1 -0
  293. package/lib/module/sharedTypes/types.js +2 -0
  294. package/lib/module/sharedTypes/types.js.map +1 -0
  295. package/lib/module/styles/variables.js +10 -0
  296. package/lib/module/styles/variables.js.map +1 -0
  297. package/lib/module/unitSdkManager/UnitSdk.api.js +37 -0
  298. package/lib/module/unitSdkManager/UnitSdk.api.js.map +1 -0
  299. package/lib/module/unitSdkManager/UnitSdkManager.js +38 -0
  300. package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -0
  301. package/lib/module/webComponent/WebComponent.js +46 -14
  302. package/lib/module/webComponent/WebComponent.js.map +1 -1
  303. package/lib/module/webComponent/html.js +18 -44
  304. package/lib/module/webComponent/html.js.map +1 -1
  305. package/lib/typescript/assets/images/index.d.ts +1 -0
  306. package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +6 -0
  307. package/lib/typescript/components/UNActivityComponent/UNActivityComponent.utils.d.ts +2 -0
  308. package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +11 -0
  309. package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.d.ts +3 -0
  310. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.d.ts +1 -0
  311. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts +7 -0
  312. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.d.ts +9 -0
  313. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.d.ts +5 -0
  314. package/lib/typescript/components/{Card/CardComponent.d.ts → UNCardComponent/UNCardComponent.d.ts} +3 -1
  315. package/lib/typescript/components/UNCardComponent/UNCardComponent.utils.d.ts +6 -0
  316. package/lib/typescript/components/index.d.ts +4 -2
  317. package/lib/typescript/helpers/{BottomSheet.d.ts → BottomSheet/BottomSheet.d.ts} +3 -0
  318. package/lib/typescript/helpers/BottomSheet/BottomSheet.styles.d.ts +63 -0
  319. package/lib/typescript/helpers/EventBus.d.ts +5 -7
  320. package/lib/typescript/hooks/listenerToBus.d.ts +7 -0
  321. package/lib/typescript/hooks/useAppStateListener.d.ts +1 -0
  322. package/lib/typescript/index.d.ts +2 -0
  323. package/lib/typescript/messages/nativeMessages/index.d.ts +3 -0
  324. package/lib/typescript/messages/webMessages/bookPaymentMessage.d.ts +8 -0
  325. package/lib/typescript/{webComponent → messages}/webMessages/cardMessage.d.ts +3 -2
  326. package/lib/typescript/messages/webMessages/index.d.ts +11 -0
  327. package/lib/typescript/{webComponent → messages}/webMessages/pageMessage.d.ts +0 -0
  328. package/lib/typescript/{webComponent → messages}/webMessages/unitMessages.d.ts +0 -0
  329. package/lib/typescript/nativeComponent/UNNativeAddToWalletButton.d.ts +6 -0
  330. package/lib/typescript/scripts/html/bodyHtml.d.ts +7 -0
  331. package/lib/typescript/scripts/html/bodyScript.d.ts +11 -0
  332. package/lib/typescript/sharedTypes/bookPayment.types.d.ts +26 -0
  333. package/lib/typescript/sharedTypes/card.types.d.ts +56 -0
  334. package/lib/typescript/sharedTypes/index.d.ts +2 -0
  335. package/lib/typescript/sharedTypes/types.d.ts +27 -0
  336. package/lib/typescript/styles/variables.d.ts +9 -0
  337. package/lib/typescript/unitSdkManager/UnitSdk.api.d.ts +3 -0
  338. package/lib/typescript/unitSdkManager/UnitSdkManager.d.ts +15 -0
  339. package/lib/typescript/webComponent/WebComponent.d.ts +9 -11
  340. package/lib/typescript/webComponent/html.d.ts +6 -1
  341. package/package.json +9 -5
  342. package/{unit-react-native-components.podspec → react-native-unit-components.podspec} +1 -1
  343. package/src/assets/images/close.png +0 -0
  344. package/src/assets/images/index.ts +1 -0
  345. package/src/components/UNActivityComponent/UNActivityComponent.tsx +21 -0
  346. package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +11 -0
  347. package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +37 -0
  348. package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.ts +29 -0
  349. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.ts +1 -0
  350. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.ts +13 -0
  351. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +167 -0
  352. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.ts +34 -0
  353. package/src/components/UNCardComponent/UNCardComponent.tsx +73 -0
  354. package/src/components/UNCardComponent/UNCardComponent.utils.ts +28 -0
  355. package/src/components/index.ts +4 -2
  356. package/src/custom.d.ts +5 -0
  357. package/src/helpers/BottomSheet/BottomSheet.styles.ts +70 -0
  358. package/src/helpers/{BottomSheet.tsx → BottomSheet/BottomSheet.tsx} +74 -110
  359. package/src/helpers/EventBus.ts +13 -13
  360. package/src/hooks/listenerToBus.ts +23 -0
  361. package/src/hooks/useAppStateListener.ts +25 -0
  362. package/src/index.tsx +5 -1
  363. package/src/messages/nativeMessages/index.ts +3 -0
  364. package/src/messages/webMessages/bookPaymentMessage.ts +12 -0
  365. package/src/{webComponent → messages}/webMessages/cardMessage.ts +4 -2
  366. package/src/messages/webMessages/index.ts +21 -0
  367. package/src/{webComponent → messages}/webMessages/pageMessage.ts +1 -1
  368. package/src/{webComponent → messages}/webMessages/unitMessages.ts +1 -0
  369. package/src/nativeComponent/UNNativeAddToWalletButton.tsx +12 -0
  370. package/src/scripts/html/bodyHtml.ts +46 -0
  371. package/src/scripts/html/bodyScript.ts +67 -0
  372. package/src/sharedTypes/bookPayment.types.ts +27 -0
  373. package/src/sharedTypes/card.types.ts +59 -0
  374. package/src/sharedTypes/index.ts +2 -0
  375. package/src/sharedTypes/types.ts +35 -0
  376. package/src/styles/variables.ts +9 -0
  377. package/src/unitSdkManager/UnitSdk.api.ts +31 -0
  378. package/src/unitSdkManager/UnitSdkManager.ts +33 -0
  379. package/src/webComponent/WebComponent.tsx +55 -45
  380. package/src/webComponent/html.ts +22 -46
  381. package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsViewManager.kt +0 -19
  382. package/lib/commonjs/components/BottomSheet/BottomSheetComponent.js +0 -143
  383. package/lib/commonjs/components/BottomSheet/BottomSheetComponent.js.map +0 -1
  384. package/lib/commonjs/components/Card/CardComponent.js.map +0 -1
  385. package/lib/commonjs/helpers/BottomSheet.js.map +0 -1
  386. package/lib/commonjs/nativeComponenet/NativeComponentExample.js +0 -19
  387. package/lib/commonjs/nativeComponenet/NativeComponentExample.js.map +0 -1
  388. package/lib/commonjs/webComponent/webMessages/cardMessage.js.map +0 -1
  389. package/lib/commonjs/webComponent/webMessages/pageMessage.js.map +0 -1
  390. package/lib/commonjs/webComponent/webMessages/unitMessages.js.map +0 -1
  391. package/lib/module/components/BottomSheet/BottomSheetComponent.js +0 -118
  392. package/lib/module/components/BottomSheet/BottomSheetComponent.js.map +0 -1
  393. package/lib/module/components/Card/CardComponent.js +0 -75
  394. package/lib/module/components/Card/CardComponent.js.map +0 -1
  395. package/lib/module/helpers/BottomSheet.js.map +0 -1
  396. package/lib/module/nativeComponenet/NativeComponentExample.js +0 -10
  397. package/lib/module/nativeComponenet/NativeComponentExample.js.map +0 -1
  398. package/lib/module/webComponent/webMessages/cardMessage.js +0 -6
  399. package/lib/module/webComponent/webMessages/cardMessage.js.map +0 -1
  400. package/lib/module/webComponent/webMessages/pageMessage.js.map +0 -1
  401. package/lib/module/webComponent/webMessages/unitMessages.js.map +0 -1
  402. package/lib/typescript/components/BottomSheet/BottomSheetComponent.d.ts +0 -1
  403. package/lib/typescript/nativeComponenet/NativeComponentExample.d.ts +0 -7
  404. package/src/components/BottomSheet/BottomSheetComponent.tsx +0 -113
  405. package/src/components/Card/CardComponent.tsx +0 -75
  406. package/src/nativeComponenet/NativeComponentExample.tsx +0 -26
@@ -0,0 +1,3 @@
1
+ /** globalUnitScript is exported ONLY to our project components **/
2
+ export declare let globalUnitScript: string;
3
+ export declare const fetchUnitScript: () => Promise<null>;
@@ -0,0 +1,15 @@
1
+ export declare enum UNEnvironment {
2
+ sandbox = "sandbox",
3
+ production = "production"
4
+ }
5
+ export declare const UNIT_SCRIPT_URL: {
6
+ sandbox: string;
7
+ production: string;
8
+ };
9
+ export declare class UnitSDK {
10
+ protected static env?: UNEnvironment;
11
+ protected static theme?: string;
12
+ static init: (env: UNEnvironment, theme?: string) => Promise<void>;
13
+ static getEnv: () => UNEnvironment | undefined;
14
+ static getTheme: () => string | undefined;
15
+ }
@@ -1,23 +1,21 @@
1
1
  import React from 'react';
2
2
  import { WebView } from 'react-native-webview';
3
- import type { CardEvent, CardMessage } from './webMessages/cardMessage';
4
- import type { PageEvent, PageMessage } from './webMessages/pageMessage';
5
- import { UnitEvent, UnitMessage } from './webMessages/unitMessages';
6
- export declare type WebViewMessageType = PageMessage | CardMessage | UnitMessage;
7
- declare type WebViewEvent = PageEvent | UnitEvent | CardEvent;
8
- export interface WebViewMessage {
9
- type: WebViewMessageType;
10
- details?: WebViewEvent;
11
- }
3
+ import { PresentationMode } from '../scripts/html/bodyHtml';
4
+ import type { WebViewMessage } from '../messages/webMessages';
12
5
  export interface WebComponentProps {
13
6
  type: WebComponentType;
7
+ presentationMode?: PresentationMode;
14
8
  params?: string;
15
- onMessage: (message: WebViewMessage) => void;
9
+ onMessage?: (message: WebViewMessage) => void;
16
10
  script?: string;
11
+ isScrollable?: boolean;
12
+ handleScroll?: (event: any) => void;
13
+ width?: number;
17
14
  }
18
15
  export declare enum WebComponentType {
19
16
  card = "unit-elements-card",
17
+ bookPayment = "unit-elements-book-payment",
18
+ activity = "unit-elements-activity",
20
19
  slot = "unit-elements-sdk-slot"
21
20
  }
22
21
  export declare const WebComponent: React.ForwardRefExoticComponent<WebComponentProps & React.RefAttributes<WebView<{}>>>;
23
- export {};
@@ -1,2 +1,7 @@
1
- declare const htmlText = "\n <!DOCTYPE html>\n <html lang=\"en\">\n\n <head lang=\"en\">\n <title>Unit Web SDK Demo</title>\n <script>\n window.UnitMobileSDK = true\n </script>\n <script src=\"https://unit-white-labeled-banking.netlify.app/client-events.js\"></script>\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=0\">\n </html>\n\n <body style=\"margin: 0\">\n <COMPONENT>\n\n <script>\n const postMessageToSDK = (message) => {\n if ('ReactNativeWebView' in window) {\n const messageString = JSON.stringify(message)\n window['ReactNativeWebView'].postMessage(messageString)\n }\n }\n\n const postHeight = () => {\n setTimeout(() => {\n const height = window.document.documentElement.getBoundingClientRect().height + 36\n postMessageToSDK({ type: \"pageHeight\", details: { height } })\n })\n }\n\n window.addEventListener('DOMContentLoaded', e => {\n postMessageToSDK({ type: \"pageLoaded\" })\n });\n\n window.addEventListener(\"unitRequestRendering\", (e) => {\n postMessageToSDK({ type: \"unitRequestRendering\", details: { data: JSON.stringify(e.detail) }})\n });\n\n window.addEventListener(\"unitOnLoad\", (e) => {\n postHeight()\n postMessageToSDK({ type: \"unitOnLoad\" })\n });\n\n window.addEventListener(\"unitRequestCloseFlow\", (e) => {\n postMessageToSDK({ type: \"unitRequestCloseFlow\" })\n });\n\n window.addEventListener(\"unitRequestOpenLink\", (e) => {\n postMessageToSDK({ type: \"unitRequestOpenLink\", details: e.detail })\n });\n\n window.addEventListener(\"unitCardStatusChanged\", (e) => {\n const response = e.detail\n response.then((data) => {\n postMessageToSDK({ type: \"cardStatusChanged\", details: { card: JSON.stringify(data.data) }})\n }).catch((e) => {\n console.log(e)\n })\n });\n\n const dispatchRenderingEvent = (details) => {\n const event = new CustomEvent(\"unitRequestRendering\",{ detail: JSON.parse(details) })\n window.dispatchEvent(event)\n }\n\n <SCRIPT_FROM_NATIVE>\n </script>\n </body>\n";
1
+ export declare const HTML_PLACEHOLDER: {
2
+ SCRIPT_UNIT: string;
3
+ BODY: string;
4
+ SCRIPT_FROM_NATIVE: string;
5
+ };
6
+ declare const htmlText: string;
2
7
  export default htmlText;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-unit-components",
3
- "version": "0.1.0",
3
+ "version": "1.0.1",
4
4
  "description": "Unit React Native components",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -13,7 +13,7 @@
13
13
  "android",
14
14
  "ios",
15
15
  "cpp",
16
- "unit-react-native-components.podspec",
16
+ "react-native-unit-components.podspec",
17
17
  "!lib/typescript/example",
18
18
  "!android/build",
19
19
  "!ios/build",
@@ -50,19 +50,23 @@
50
50
  "@types/jest": "^28.1.2",
51
51
  "@types/react": "~17.0.21",
52
52
  "@types/react-native": "0.68.0",
53
+ "@typescript-eslint/eslint-plugin": "^5.45.0",
54
+ "@typescript-eslint/parser": "^5.45.0",
53
55
  "commitlint": "^17.0.2",
54
- "eslint": "^8.4.1",
56
+ "eslint": "^8.29.0",
57
+ "eslint-config-airbnb": "^18.0.1",
55
58
  "eslint-config-prettier": "^8.5.0",
56
59
  "eslint-plugin-prettier": "^4.0.0",
60
+ "eslint-plugin-react": "^7.31.11",
57
61
  "jest": "^28.1.1",
58
62
  "pod-install": "^0.1.0",
59
63
  "prettier": "^2.0.5",
60
64
  "react": "17.0.2",
61
65
  "react-native": "0.68.2",
62
66
  "react-native-builder-bob": "^0.18.3",
67
+ "react-native-webview": "11.23.1",
63
68
  "release-it": "^15.0.0",
64
- "typescript": "^4.5.2",
65
- "react-native-webview": "11.23.1"
69
+ "typescript": "^4.5.2"
66
70
  },
67
71
  "resolutions": {
68
72
  "@types/react": "17.0.21"
@@ -4,7 +4,7 @@ package = JSON.parse(File.read(File.join(__dir__, "package.json")))
4
4
  folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
5
5
 
6
6
  Pod::Spec.new do |s|
7
- s.name = "unit-react-native-components"
7
+ s.name = "react-native-unit-components"
8
8
  s.version = package["version"]
9
9
  s.summary = package["description"]
10
10
  s.homepage = package["homepage"]
Binary file
@@ -0,0 +1 @@
1
+ export { default as CloseIcon } from './close.png';
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { PresentationMode } from '../../scripts/html/bodyHtml';
3
+ import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
4
+ import { getActivityParams } from './UNActivityComponent.utils';
5
+
6
+ export interface UNActivityComponentProps {
7
+ accountId: string;
8
+ customerToken: string;
9
+ theme?: string;
10
+ }
11
+
12
+ export const UNActivityComponent = (props: UNActivityComponentProps) => {
13
+ return (
14
+ <WebComponent
15
+ type={WebComponentType.activity}
16
+ presentationMode={PresentationMode.Inherit}
17
+ params={getActivityParams(props)}
18
+ isScrollable={false}
19
+ />
20
+ );
21
+ };
@@ -0,0 +1,11 @@
1
+ import { UnitSDK } from '../../unitSdkManager/UnitSdkManager';
2
+ import type { UNActivityComponentProps } from './UNActivityComponent';
3
+
4
+ export const getActivityParams = (props: UNActivityComponentProps) => {
5
+ return `
6
+ account-id="${props.accountId}"
7
+ customer-token="${props.customerToken}"
8
+ theme="${props.theme ?? UnitSDK.getTheme()}"
9
+ style="height: 100%"
10
+ `;
11
+ };
@@ -0,0 +1,37 @@
1
+ import React from 'react';
2
+ import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
3
+ import { PresentationMode } from '../../scripts/html/bodyHtml';
4
+ import { getBookPaymentParams, getBookPaymentScript } from './UNBookPaymentComponent.utils';
5
+ import type { WebViewMessage } from '../../messages/webMessages';
6
+ import { BookPaymentEvent, BookPaymentMessage } from '../../messages/webMessages/bookPaymentMessage';
7
+ import type { UNBookPaymentData } from '../../sharedTypes';
8
+
9
+ export interface UNBookPaymentComponentProps {
10
+ accountId: string;
11
+ customerToken: string;
12
+ isSameCustomer: boolean;
13
+ counterPartyAccountId: string;
14
+ counterPartyName: string;
15
+ theme?: string;
16
+ onPaymentCreated?: (data: UNBookPaymentData) => void;
17
+ }
18
+
19
+ export const UNBookPaymentComponent = (props: UNBookPaymentComponentProps) => {
20
+ const handleWebViewMessage = (message: WebViewMessage) => {
21
+ if (message.type === BookPaymentMessage.PAYMENT_CREATED && props.onPaymentCreated) {
22
+ const response = message.details as BookPaymentEvent;
23
+ props.onPaymentCreated(response.data);
24
+ }
25
+ };
26
+
27
+ return (
28
+ <WebComponent
29
+ type={WebComponentType.bookPayment}
30
+ presentationMode={PresentationMode.Inherit}
31
+ params={getBookPaymentParams(props)}
32
+ script={getBookPaymentScript()}
33
+ onMessage={(message: WebViewMessage) => handleWebViewMessage(message)}
34
+ isScrollable={false}
35
+ />
36
+ );
37
+ };
@@ -0,0 +1,29 @@
1
+ import type { UNBookPaymentComponentProps } from './UNBookPaymentComponent';
2
+
3
+ import { BookPaymentMessage } from '../../messages/webMessages/bookPaymentMessage';
4
+ import { UnitSDK } from '../../unitSdkManager/UnitSdkManager';
5
+
6
+ export const getBookPaymentParams = (props: UNBookPaymentComponentProps) => {
7
+ return `
8
+ account-id="${props.accountId}"
9
+ customer-token="${props.customerToken}"
10
+ is-same-customer="${props.isSameCustomer}"
11
+ counterparty-account-id="${props.counterPartyAccountId}"
12
+ counterparty-name="${props.counterPartyName}"
13
+ theme="${props.theme ?? UnitSDK.getTheme()}"
14
+ style="height: 100%"
15
+ `;
16
+ };
17
+
18
+ export const getBookPaymentScript = () => {
19
+ return `
20
+ window.addEventListener("${BookPaymentMessage.PAYMENT_CREATED}", (e) => {
21
+ const response = e.detail
22
+ response.then((data) => {
23
+ postMessageToSDK({ type: "${BookPaymentMessage.PAYMENT_CREATED}", details: { data: JSON.stringify(data.data) }})
24
+ }).catch((e) => {
25
+ console.log(e)
26
+ })
27
+ });
28
+ `;
29
+ };
@@ -0,0 +1 @@
1
+ export const BOTTOM_SHEET_MAX_PRECANTAGE_SIZE = 0.9;
@@ -0,0 +1,13 @@
1
+ import { StyleSheet } from 'react-native';
2
+
3
+ export const getStylesObject = () => {
4
+ return StyleSheet.create({
5
+ container: {
6
+ position: 'absolute',
7
+ top: 0,
8
+ bottom: 0,
9
+ left: 0,
10
+ right: 0
11
+ }
12
+ });
13
+ };
@@ -0,0 +1,167 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import React, { useEffect, useRef, useState } from 'react';
3
+ import type WebView from 'react-native-webview';
4
+ import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
5
+ import { Dimensions, Linking, View } from 'react-native';
6
+ import BottomSheet from '../../helpers/BottomSheet/BottomSheet';
7
+ import EventBus from '../../helpers/EventBus';
8
+ import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
9
+ import { RequestOpenLinkEvent, RequestRenderingData, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';
10
+ import { CardMessage, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';
11
+ import { useListenerToBus } from '../../hooks/listenerToBus';
12
+ import type { WebViewMessage } from '../../messages/webMessages';
13
+ import { getBottomSheetScript, handleHtmlFullHeight, renderingBottomSheetRequest, resetHtml } from './UNBottomSheetComponent.utils';
14
+ import { getStylesObject } from './UNBottomSheetComponent.styles';
15
+ import { PresentationMode } from '../../scripts/html/bodyHtml';
16
+ import { useAppStateListener } from '../../hooks/useAppStateListener';
17
+
18
+ export enum ScrollState {
19
+ onTop = 'onTop',
20
+ onlyWebView = 'webViewScroll',
21
+ onlyBottomSheet = 'onlyBottomSheet',
22
+ unScrollable = 'unScrollable'
23
+ }
24
+
25
+ export const UNBottomSheetComponent = () => {
26
+ const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);
27
+ const [height, setHeight] = useState(0);
28
+
29
+ const [renderingRequest, setRenderingRequest] = useState<string | null>(null);
30
+ const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.onTop);
31
+
32
+ const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false);
33
+ const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null);
34
+
35
+ const isAppActive = useAppStateListener();
36
+
37
+ const styles = getStylesObject();
38
+
39
+ const webRef = useRef<WebView>(null);
40
+
41
+ const listenerAction = (data: string) => {
42
+ setRenderingRequest(data);
43
+ setIsBottomSheetActive(true);
44
+ };
45
+
46
+ useEffect(() => {
47
+ if (!isAppActive) {
48
+ setIsBottomSheetActive(false);
49
+ }
50
+ }, [isAppActive]);
51
+
52
+ useEffect(() => {
53
+ if (!webRef.current) return;
54
+ if (renderingRequest) {
55
+ renderingBottomSheetRequest(webRef.current, renderingRequest);
56
+ }
57
+ }, [webRef.current, renderingRequest]);
58
+
59
+ useEffect(() => {
60
+ if (!isBottomSheetActive) {
61
+ webRef.current && resetHtml(webRef.current);
62
+ setHeight(0);
63
+ setRenderingRequest(null);
64
+ setScrollState(ScrollState.onTop);
65
+ }
66
+ }, [isBottomSheetActive]);
67
+
68
+ useEffect(() => {
69
+ if (!waitForLoadingNewComponent && newHeightMessage) {
70
+ setWaitForLoadingNewComponent(false);
71
+ setNewHeight(newHeightMessage);
72
+ }
73
+ }, [waitForLoadingNewComponent, newHeightMessage]);
74
+
75
+ useListenerToBus([{ busEventKey: UnitMessage.UNIT_REQUEST_RENDERING, action: listenerAction }]);
76
+
77
+ const setNewHeight = (message: WebViewMessage) => {
78
+ if (renderingRequest) {
79
+ const nativePlace = (JSON.parse(renderingRequest) as RequestRenderingData).nativePlace;
80
+ if (nativePlace == 'overFullScreen') {
81
+ const bottomSheetNewHeight = handleHtmlFullHeight(webRef.current, Dimensions.get('window').height);
82
+ setHeight(bottomSheetNewHeight);
83
+ setScrollState(ScrollState.onTop);
84
+ } else {
85
+ setHeight((message.details as HeightEvent).height);
86
+ setScrollState(ScrollState.unScrollable);
87
+ }
88
+ }
89
+ };
90
+
91
+ const onWebMessage = (message: WebViewMessage) => {
92
+ switch (message.type) {
93
+ case PageMessage.PAGE_HEIGHT:
94
+ renderingRequest && setNewHeightMessage(message);
95
+ break;
96
+ case UnitMessage.UNIT_REQUEST_RENDERING:
97
+ // eslint-disable-next-line no-case-declarations
98
+ const { data } = (message.details as RequestRenderingEvent);
99
+ if (data != renderingRequest) {
100
+ setHeight(0);
101
+ setRenderingRequest(data);
102
+ setWaitForLoadingNewComponent(true);
103
+ setTimeout(() => setWaitForLoadingNewComponent(false), 400);
104
+ }
105
+ break;
106
+ case CardMessage.CARD_STATUS_CHANGED:
107
+ EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card);
108
+ break;
109
+ case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:
110
+ setIsBottomSheetActive(false);
111
+ break;
112
+ case UnitMessage.UNIT_REQUEST_OPEN_LINK:
113
+ // eslint-disable-next-line no-case-declarations
114
+ const { href } = (message.details as RequestOpenLinkEvent);
115
+ Linking.openURL(href);
116
+ break;
117
+ }
118
+ };
119
+
120
+ const onScrollWebView = (event: any) => {
121
+ if (scrollState === ScrollState.unScrollable) return;
122
+
123
+ const currY = event.nativeEvent.contentOffset.y;
124
+
125
+ if (ScrollState.onTop && currY < 5) {
126
+ setScrollState(ScrollState.onlyBottomSheet);
127
+ }
128
+
129
+ if ( scrollState !== ScrollState.onlyWebView && scrollState === ScrollState.onTop && currY > 5) {
130
+ setScrollState(ScrollState.onlyWebView);
131
+ }
132
+ };
133
+
134
+ const handleWebViewScroll = () => {
135
+ if (scrollState === ScrollState.unScrollable) return;
136
+ setScrollState(ScrollState.onlyWebView);
137
+ };
138
+
139
+ return (
140
+ <>
141
+ <View
142
+ pointerEvents={isBottomSheetActive ? undefined : 'none'}
143
+ style={styles.container}
144
+ >
145
+ <BottomSheet
146
+ isOpen={isBottomSheetActive}
147
+ height={height}
148
+ onClose={() => setIsBottomSheetActive(false)}
149
+ onOpen={() => setIsBottomSheetActive(true)}
150
+ handleWebViewScroll={() => handleWebViewScroll()}
151
+ shouldEnableBottomSheetScroll={scrollState !== ScrollState.onlyWebView}
152
+ >
153
+ { isAppActive && (
154
+ <WebComponent
155
+ ref={webRef}
156
+ type={WebComponentType.slot}
157
+ presentationMode={PresentationMode.CoverInjectedHeight}
158
+ script={getBottomSheetScript()}
159
+ onMessage={onWebMessage}
160
+ isScrollable={scrollState === ScrollState.onlyWebView || scrollState === ScrollState.onTop}
161
+ handleScroll={onScrollWebView}
162
+ />)}
163
+ </BottomSheet>
164
+ </View>
165
+ </>
166
+ );
167
+ };
@@ -0,0 +1,34 @@
1
+ import type WebView from 'react-native-webview';
2
+ import { UnitMessage } from '../../messages/webMessages/unitMessages';
3
+ import { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from './UNBottomSheetComponent.constants';
4
+
5
+ export const getBottomSheetScript = () => {
6
+ return `
7
+ window.addEventListener("${UnitMessage.UNIT_REQUEST_REFRESH}", (e) => {
8
+ postMessageToSDK({ type: "${UnitMessage.UNIT_REQUEST_REFRESH}", details: e.detail })
9
+ });
10
+ `;
11
+ };
12
+
13
+ export const renderingBottomSheetRequest = (currentWebView: WebView, renderingRequest: string) => {
14
+ currentWebView?.injectJavaScript(`
15
+ document.activeElement && document.activeElement.blur();
16
+ dispatchRenderingEvent('${renderingRequest}');
17
+ `);
18
+ };
19
+
20
+ export const resetHtml = (currentWebView: WebView) => {
21
+ currentWebView?.injectJavaScript(`
22
+ document.activeElement && document.activeElement.blur();
23
+ document.getElementById('webViewContainer').style.height = null;
24
+ `);
25
+ };
26
+
27
+ export const handleHtmlFullHeight = (currentWebView: WebView | null, windowHeight: number) => {
28
+ const bottomSheetHeight = windowHeight * BOTTOM_SHEET_MAX_PRECANTAGE_SIZE;
29
+ currentWebView && currentWebView?.injectJavaScript(`
30
+ document.getElementById('webViewContainer').style.height = '${bottomSheetHeight}px';
31
+ `);
32
+
33
+ return bottomSheetHeight;
34
+ };
@@ -0,0 +1,73 @@
1
+ import React, { useEffect, useRef, useState } from 'react';
2
+ import { Dimensions, View } from 'react-native';
3
+ import type WebView from 'react-native-webview';
4
+ import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
5
+ import { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';
6
+ import EventBus from '../../helpers/EventBus';
7
+ import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
8
+ import { useListenerToBus } from '../../hooks/listenerToBus';
9
+ import type { WebViewMessage } from '../../messages/webMessages';
10
+ import { getCardParams, getCardScript, injectRefreshEventIfNeeded } from './UNCardComponent.utils';
11
+ import { PresentationMode } from '../../scripts/html/bodyHtml';
12
+ import type { UNCardData } from '../../sharedTypes';
13
+ import { CardMessage } from '../../messages/webMessages/cardMessage';
14
+
15
+ export interface UNCardComponentProps {
16
+ cardId: string;
17
+ customerToken: string;
18
+ theme?: string;
19
+ onStatusChanged?: (card: UNCardData) => void;
20
+ }
21
+
22
+ export const UNCardComponent = (props: UNCardComponentProps) => {
23
+ const [height, setHeight] = useState(0);
24
+ const [requestRefreshEvent, setRequestRefreshEvent] = useState<RequestRefreshEvent | null>(null);
25
+ const windowWidth = Dimensions.get('window').width;
26
+
27
+ const webRef = useRef<WebView>(null);
28
+
29
+ const cardStatusChanged = (card: UNCardData) => {
30
+ if (props.onStatusChanged) {
31
+ props.onStatusChanged(card);
32
+ }
33
+ };
34
+
35
+ const requestRefresh = (data: RequestRefreshEvent) => {
36
+ setRequestRefreshEvent(data);
37
+ };
38
+
39
+ useListenerToBus([
40
+ { busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged },
41
+ { busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh },
42
+ ]);
43
+
44
+ useEffect(() => {
45
+ injectRefreshEventIfNeeded(webRef.current, requestRefreshEvent, props.cardId);
46
+ }, [requestRefreshEvent]);
47
+
48
+ const handleMessage = (message: WebViewMessage) => {
49
+ switch (message.type) {
50
+ case UnitMessage.UNIT_REQUEST_RENDERING:
51
+ EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, (message.details as RequestRenderingEvent).data);
52
+ break;
53
+ case PageMessage.PAGE_HEIGHT:
54
+ setHeight((message.details as HeightEvent).height);
55
+ break;
56
+ }
57
+ };
58
+
59
+ return (
60
+ <View style={{ height }}>
61
+ <WebComponent
62
+ ref={webRef}
63
+ type={WebComponentType.card}
64
+ presentationMode={PresentationMode.Default}
65
+ params={getCardParams(props)}
66
+ script={getCardScript()}
67
+ onMessage={message => handleMessage(message)}
68
+ width={windowWidth}
69
+ isScrollable={false}
70
+ />
71
+ </View>
72
+ );
73
+ };
@@ -0,0 +1,28 @@
1
+ import type WebView from 'react-native-webview';
2
+ import type { UNCardComponentProps } from './UNCardComponent';
3
+ import { WebComponentType } from '../../webComponent/WebComponent';
4
+ import { RequestRefreshEvent, UnitMessage } from '../../messages/webMessages/unitMessages';
5
+ import { UnitSDK } from '../../unitSdkManager/UnitSdkManager';
6
+
7
+ export const getCardParams = (props: UNCardComponentProps) => {
8
+ return `
9
+ card-id="${props.cardId}"
10
+ customer-token="${props.customerToken}"
11
+ theme="${props.theme ?? UnitSDK.getTheme()}"
12
+ `;
13
+ };
14
+
15
+ export const getCardScript = () => {
16
+ return `
17
+ const dispatchRefreshEvent = (details) => {
18
+ const event = new CustomEvent("${UnitMessage.UNIT_REQUEST_REFRESH}",{ detail: JSON.parse(details) })
19
+ window.dispatchEvent(event)
20
+ }
21
+ `;
22
+ };
23
+
24
+ export const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null, cardId: string) => {
25
+ if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == cardId) {
26
+ currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);
27
+ }
28
+ };
@@ -1,2 +1,4 @@
1
- export * from './Card/CardComponent'
2
- export * from './BottomSheet/BottomSheetComponent'
1
+ export * from './UNCardComponent/UNCardComponent';
2
+ export * from './UNBottomSheetComponent/UNBottomSheetComponent';
3
+ export * from './UNBookPaymentComponent/UNBookPaymentComponent';
4
+ export * from './UNActivityComponent/UNActivityComponent';
@@ -0,0 +1,5 @@
1
+ declare module '*.png' {
2
+ import { ImageSourcePropType } from 'react-native';
3
+ const content: ImageSourcePropType;
4
+ export default content;
5
+ }
@@ -0,0 +1,70 @@
1
+ import { Dimensions, StyleSheet } from 'react-native';
2
+ import { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from '../../components/UNBottomSheetComponent/UNBottomSheetComponent.constants';
3
+ import { VARIABLES } from '../../styles/variables';
4
+
5
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ export const getStylesObject = (fadeAnim: any) => {
7
+ return StyleSheet.create({
8
+ outsideContainer: {
9
+ position: 'absolute',
10
+ top: 0,
11
+ bottom: 0,
12
+ right: 0,
13
+ left: 0
14
+ },
15
+ animation: {
16
+ backgroundColor: 'black',
17
+ flex: 1,
18
+ opacity: fadeAnim,
19
+ },
20
+ container: {
21
+ position: 'relative',
22
+ flex: 1,
23
+ marginTop: Dimensions.get('window').height * (1 - BOTTOM_SHEET_MAX_PRECANTAGE_SIZE),
24
+ shadowColor: VARIABLES.COLORS.BLACK,
25
+ shadowOffset: {
26
+ width: 0,
27
+ height: 6,
28
+ },
29
+ shadowOpacity: 0.37,
30
+ shadowRadius: 7.49,
31
+ elevation: 12,
32
+ borderTopLeftRadius: 15,
33
+ borderTopRightRadius: 15,
34
+ backgroundColor: VARIABLES.COLORS.WHITE,
35
+ overflow: 'hidden'
36
+ },
37
+ lineContainer: {
38
+ borderTopLeftRadius: 30,
39
+ borderTopRightRadius: 30,
40
+ alignItems: 'center'
41
+ },
42
+ line: {
43
+ width: 35,
44
+ height: 4,
45
+ borderRadius: 2,
46
+ marginTop: 18,
47
+ backgroundColor: VARIABLES.COLORS.SILVER_FLAKE,
48
+ },
49
+ outerContent: {
50
+ flex: -1,
51
+ },
52
+ innerContent: {
53
+ flex: -1,
54
+ },
55
+ closeButton: {
56
+ position: 'absolute',
57
+ display: 'flex',
58
+ alignItems: 'center',
59
+ justifyContent: 'center',
60
+ width: 36,
61
+ height: 36,
62
+ backgroundColor: VARIABLES.COLORS.WHITE,
63
+ borderRadius: 18,
64
+ padding: 7,
65
+ top: 12,
66
+ right: 12,
67
+ zIndex: 100
68
+ }
69
+ });
70
+ };