react-native-unit-components 1.6.1 → 1.7.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 (294) hide show
  1. package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js +6 -6
  2. package/lib/commonjs/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -1
  3. package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js +6 -6
  4. package/lib/commonjs/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -1
  5. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +14 -9
  6. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
  7. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js +3 -3
  8. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
  9. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +12 -6
  10. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  11. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +2 -2
  12. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
  13. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +6 -6
  14. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
  15. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +159 -74
  16. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  17. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +28 -8
  18. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
  19. package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +49 -37
  20. package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -1
  21. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js +22 -53
  22. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
  23. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +4 -53
  24. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
  25. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js +6 -6
  26. package/lib/commonjs/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -1
  27. package/lib/commonjs/flows/UNFlows.js +19 -0
  28. package/lib/commonjs/flows/UNFlows.js.map +1 -0
  29. package/lib/commonjs/flows/card/UNCardFlows.js +33 -0
  30. package/lib/commonjs/flows/card/UNCardFlows.js.map +1 -0
  31. package/lib/commonjs/helpers/pushProvisioningService/hooks/useCardWallet.js +70 -0
  32. package/lib/commonjs/helpers/pushProvisioningService/hooks/useCardWallet.js.map +1 -0
  33. package/lib/commonjs/helpers/pushProvisioningService/startProvisioning.js +22 -0
  34. package/lib/commonjs/helpers/pushProvisioningService/startProvisioning.js.map +1 -0
  35. package/lib/commonjs/index.js +4 -4
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/messages/nativeMessages/bottomSheetMessage.js +17 -0
  38. package/lib/commonjs/messages/nativeMessages/bottomSheetMessage.js.map +1 -0
  39. package/lib/commonjs/messages/nativeMessages/cardMessage.js +2 -8
  40. package/lib/commonjs/messages/nativeMessages/cardMessage.js.map +1 -1
  41. package/lib/commonjs/messages/nativeMessages/index.js.map +1 -1
  42. package/lib/commonjs/messages/webMessages/accountMessage.js.map +1 -1
  43. package/lib/commonjs/messages/webMessages/achCreditMessage.js.map +1 -1
  44. package/lib/commonjs/messages/webMessages/bookPaymentMessage.js.map +1 -1
  45. package/lib/commonjs/messages/webMessages/cardMessage.js.map +1 -1
  46. package/lib/commonjs/messages/webMessages/checkMessage.js.map +1 -1
  47. package/lib/commonjs/messages/webMessages/onLoadMessage.js.map +1 -1
  48. package/lib/commonjs/messages/webMessages/unitMessages.js +1 -0
  49. package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -1
  50. package/lib/commonjs/{components/UNCardComponent/networking → networking}/common/UNNetworkConstants.js +1 -1
  51. package/lib/commonjs/networking/common/UNNetworkConstants.js.map +1 -0
  52. package/lib/commonjs/{components/UNCardComponent/networking → networking}/requests/UNWalletPayloadRequest.js +3 -1
  53. package/lib/commonjs/networking/requests/UNWalletPayloadRequest.js.map +1 -0
  54. package/lib/commonjs/scripts/html/bodyHtml.js +4 -10
  55. package/lib/commonjs/scripts/html/bodyHtml.js.map +1 -1
  56. package/lib/commonjs/types/internal/bottomSheet.types.js +14 -0
  57. package/lib/commonjs/types/internal/bottomSheet.types.js.map +1 -0
  58. package/lib/commonjs/types/internal/webComponent.types.js +27 -0
  59. package/lib/commonjs/types/internal/webComponent.types.js.map +1 -0
  60. package/lib/commonjs/types/shared/achCredit.types.js.map +1 -0
  61. package/lib/commonjs/types/shared/activity.types.js.map +1 -0
  62. package/lib/commonjs/unitSdkManager/UnitSdkManager.js +20 -2
  63. package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -1
  64. package/lib/commonjs/unitSdkManager/unitUiManager/unitUiManager.js +21 -0
  65. package/lib/commonjs/unitSdkManager/unitUiManager/unitUiManager.js.map +1 -0
  66. package/lib/commonjs/webComponent/WebComponent.js +6 -18
  67. package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
  68. package/lib/commonjs/webComponent/html.js +3 -1
  69. package/lib/commonjs/webComponent/html.js.map +1 -1
  70. package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js +2 -2
  71. package/lib/module/components/UNACHCreditComponent/UNACHCreditComponent.js.map +1 -1
  72. package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js +2 -2
  73. package/lib/module/components/UNACHDebitComponent/UNACHDebitComponent.js.map +1 -1
  74. package/lib/module/components/UNAccountComponent/UNAccountComponent.js +13 -8
  75. package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -1
  76. package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js +1 -1
  77. package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -1
  78. package/lib/module/components/UNActivityComponent/UNActivityComponent.js +10 -4
  79. package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  80. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +1 -1
  81. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
  82. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +2 -2
  83. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
  84. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +159 -74
  85. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  86. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +23 -6
  87. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
  88. package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +51 -39
  89. package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -1
  90. package/lib/module/components/UNCardComponent/UNCardComponent.js +23 -55
  91. package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
  92. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +1 -48
  93. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
  94. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js +2 -2
  95. package/lib/module/components/UNCheckDepositComponent/UNCheckDepositComponent.js.map +1 -1
  96. package/lib/module/flows/UNFlows.js +12 -0
  97. package/lib/module/flows/UNFlows.js.map +1 -0
  98. package/lib/module/flows/card/UNCardFlows.js +25 -0
  99. package/lib/module/flows/card/UNCardFlows.js.map +1 -0
  100. package/lib/module/helpers/pushProvisioningService/hooks/useCardWallet.js +63 -0
  101. package/lib/module/helpers/pushProvisioningService/hooks/useCardWallet.js.map +1 -0
  102. package/lib/module/helpers/pushProvisioningService/startProvisioning.js +15 -0
  103. package/lib/module/helpers/pushProvisioningService/startProvisioning.js.map +1 -0
  104. package/lib/module/index.js +1 -1
  105. package/lib/module/index.js.map +1 -1
  106. package/lib/module/messages/nativeMessages/bottomSheetMessage.js +9 -0
  107. package/lib/module/messages/nativeMessages/bottomSheetMessage.js.map +1 -0
  108. package/lib/module/messages/nativeMessages/cardMessage.js +1 -6
  109. package/lib/module/messages/nativeMessages/cardMessage.js.map +1 -1
  110. package/lib/module/messages/nativeMessages/index.js.map +1 -1
  111. package/lib/module/messages/webMessages/accountMessage.js.map +1 -1
  112. package/lib/module/messages/webMessages/achCreditMessage.js.map +1 -1
  113. package/lib/module/messages/webMessages/bookPaymentMessage.js.map +1 -1
  114. package/lib/module/messages/webMessages/cardMessage.js.map +1 -1
  115. package/lib/module/messages/webMessages/checkMessage.js.map +1 -1
  116. package/lib/module/messages/webMessages/onLoadMessage.js.map +1 -1
  117. package/lib/module/messages/webMessages/unitMessages.js +1 -0
  118. package/lib/module/messages/webMessages/unitMessages.js.map +1 -1
  119. package/lib/module/{components/UNCardComponent/networking → networking}/common/UNNetworkConstants.js +1 -1
  120. package/lib/module/networking/common/UNNetworkConstants.js.map +1 -0
  121. package/lib/module/{components/UNCardComponent/networking → networking}/requests/UNWalletPayloadRequest.js +4 -1
  122. package/lib/module/networking/requests/UNWalletPayloadRequest.js.map +1 -0
  123. package/lib/module/scripts/html/bodyHtml.js +1 -6
  124. package/lib/module/scripts/html/bodyHtml.js.map +1 -1
  125. package/lib/module/types/internal/bottomSheet.types.js +7 -0
  126. package/lib/module/types/internal/bottomSheet.types.js.map +1 -0
  127. package/lib/module/types/internal/webComponent.types.js +19 -0
  128. package/lib/module/types/internal/webComponent.types.js.map +1 -0
  129. package/lib/module/types/shared/achCredit.types.js.map +1 -0
  130. package/lib/module/types/shared/activity.types.js.map +1 -0
  131. package/lib/module/unitSdkManager/UnitSdkManager.js +20 -2
  132. package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -1
  133. package/lib/module/unitSdkManager/unitUiManager/unitUiManager.js +14 -0
  134. package/lib/module/unitSdkManager/unitUiManager/unitUiManager.js.map +1 -0
  135. package/lib/module/webComponent/WebComponent.js +5 -16
  136. package/lib/module/webComponent/WebComponent.js.map +1 -1
  137. package/lib/module/webComponent/html.js +3 -1
  138. package/lib/module/webComponent/html.js.map +1 -1
  139. package/lib/typescript/components/UNACHCreditComponent/UNACHCreditComponent.d.ts +1 -1
  140. package/lib/typescript/components/UNACHDebitComponent/UNACHDebitComponent.d.ts +1 -1
  141. package/lib/typescript/components/UNAccountComponent/UNAccountComponent.d.ts +3 -3
  142. package/lib/typescript/components/UNAccountComponent/UNAccountComponent.utils.d.ts +1 -1
  143. package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +2 -2
  144. package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +1 -1
  145. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts +0 -7
  146. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.d.ts +5 -1
  147. package/lib/typescript/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.d.ts +6 -2
  148. package/lib/typescript/components/UNCardComponent/UNCardComponent.d.ts +1 -1
  149. package/lib/typescript/components/UNCardComponent/UNCardComponent.utils.d.ts +1 -9
  150. package/lib/typescript/components/UNCheckDepositComponent/UNCheckDepositComponent.d.ts +2 -2
  151. package/lib/typescript/flows/UNFlows.d.ts +4 -0
  152. package/lib/typescript/flows/card/UNCardFlows.d.ts +3 -0
  153. package/lib/typescript/helpers/pushProvisioningService/hooks/useCardWallet.d.ts +7 -0
  154. package/lib/typescript/helpers/pushProvisioningService/startProvisioning.d.ts +2 -0
  155. package/lib/typescript/index.d.ts +1 -1
  156. package/lib/typescript/messages/nativeMessages/bottomSheetMessage.d.ts +9 -0
  157. package/lib/typescript/messages/nativeMessages/cardMessage.d.ts +0 -16
  158. package/lib/typescript/messages/nativeMessages/index.d.ts +3 -3
  159. package/lib/typescript/messages/webMessages/accountMessage.d.ts +1 -1
  160. package/lib/typescript/messages/webMessages/achCreditMessage.d.ts +1 -1
  161. package/lib/typescript/messages/webMessages/bookPaymentMessage.d.ts +1 -1
  162. package/lib/typescript/messages/webMessages/cardMessage.d.ts +1 -1
  163. package/lib/typescript/messages/webMessages/checkMessage.d.ts +1 -1
  164. package/lib/typescript/messages/webMessages/onLoadMessage.d.ts +3 -3
  165. package/lib/typescript/messages/webMessages/unitMessages.d.ts +2 -1
  166. package/lib/typescript/{components/UNCardComponent/networking → networking}/requests/UNWalletPayloadRequest.d.ts +1 -1
  167. package/lib/typescript/scripts/html/bodyHtml.d.ts +1 -5
  168. package/lib/typescript/types/internal/bottomSheet.types.d.ts +35 -0
  169. package/lib/typescript/types/internal/webComponent.types.d.ts +16 -0
  170. package/lib/typescript/{sharedTypes → types/shared}/achCredit.types.d.ts +1 -1
  171. package/lib/typescript/{sharedTypes → types/shared}/activity.types.d.ts +1 -1
  172. package/lib/typescript/unitSdkManager/UnitSdkManager.d.ts +9 -0
  173. package/lib/typescript/unitSdkManager/unitUiManager/unitUiManager.d.ts +6 -0
  174. package/lib/typescript/webComponent/WebComponent.d.ts +2 -12
  175. package/lib/typescript/webComponent/html.d.ts +1 -0
  176. package/package.json +1 -1
  177. package/src/components/UNACHCreditComponent/UNACHCreditComponent.tsx +3 -3
  178. package/src/components/UNACHDebitComponent/UNACHDebitComponent.tsx +3 -3
  179. package/src/components/UNAccountComponent/UNAccountComponent.tsx +17 -12
  180. package/src/components/UNAccountComponent/UNAccountComponent.utils.ts +2 -2
  181. package/src/components/UNActivityComponent/UNActivityComponent.tsx +14 -7
  182. package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +1 -1
  183. package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +3 -3
  184. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +151 -76
  185. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.ts +24 -6
  186. package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.tsx +72 -41
  187. package/src/components/UNCardComponent/UNCardComponent.tsx +25 -57
  188. package/src/components/UNCardComponent/UNCardComponent.utils.ts +2 -49
  189. package/src/components/UNCheckDepositComponent/UNCheckDepositComponent.tsx +4 -4
  190. package/src/flows/UNFlows.ts +13 -0
  191. package/src/flows/card/UNCardFlows.ts +25 -0
  192. package/src/helpers/pushProvisioningService/hooks/useCardWallet.ts +67 -0
  193. package/src/helpers/pushProvisioningService/startProvisioning.ts +20 -0
  194. package/src/index.tsx +1 -1
  195. package/src/messages/nativeMessages/bottomSheetMessage.ts +15 -0
  196. package/src/messages/nativeMessages/cardMessage.ts +1 -24
  197. package/src/messages/nativeMessages/index.ts +3 -3
  198. package/src/messages/webMessages/accountMessage.ts +1 -1
  199. package/src/messages/webMessages/achCreditMessage.ts +1 -1
  200. package/src/messages/webMessages/bookPaymentMessage.ts +1 -1
  201. package/src/messages/webMessages/cardMessage.ts +1 -1
  202. package/src/messages/webMessages/checkMessage.ts +1 -1
  203. package/src/messages/webMessages/onLoadMessage.ts +3 -3
  204. package/src/messages/webMessages/unitMessages.ts +3 -2
  205. package/src/{components/UNCardComponent/networking → networking}/common/UNNetworkConstants.ts +1 -1
  206. package/src/{components/UNCardComponent/networking → networking}/requests/UNWalletPayloadRequest.ts +3 -1
  207. package/src/scripts/html/bodyHtml.ts +2 -14
  208. package/src/types/internal/bottomSheet.types.ts +43 -0
  209. package/src/types/internal/webComponent.types.ts +26 -0
  210. package/src/{sharedTypes → types/shared}/achCredit.types.ts +1 -1
  211. package/src/{sharedTypes → types/shared}/activity.types.ts +1 -1
  212. package/src/unitSdkManager/UnitSdkManager.ts +28 -2
  213. package/src/unitSdkManager/unitUiManager/unitUiManager.ts +13 -0
  214. package/src/webComponent/WebComponent.tsx +7 -17
  215. package/src/webComponent/html.ts +3 -1
  216. package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +0 -1
  217. package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +0 -1
  218. package/lib/commonjs/sharedTypes/achCredit.types.js.map +0 -1
  219. package/lib/commonjs/sharedTypes/activity.types.js.map +0 -1
  220. package/lib/module/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +0 -1
  221. package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +0 -1
  222. package/lib/module/sharedTypes/achCredit.types.js.map +0 -1
  223. package/lib/module/sharedTypes/activity.types.js.map +0 -1
  224. /package/lib/commonjs/{sharedTypes → types/shared}/account.types.js +0 -0
  225. /package/lib/commonjs/{sharedTypes → types/shared}/account.types.js.map +0 -0
  226. /package/lib/commonjs/{sharedTypes → types/shared}/achCredit.types.js +0 -0
  227. /package/lib/commonjs/{sharedTypes → types/shared}/activity.types.js +0 -0
  228. /package/lib/commonjs/{sharedTypes → types/shared}/authorization.types.js +0 -0
  229. /package/lib/commonjs/{sharedTypes → types/shared}/authorization.types.js.map +0 -0
  230. /package/lib/commonjs/{sharedTypes → types/shared}/bookPayment.types.js +0 -0
  231. /package/lib/commonjs/{sharedTypes → types/shared}/bookPayment.types.js.map +0 -0
  232. /package/lib/commonjs/{sharedTypes → types/shared}/card.types.js +0 -0
  233. /package/lib/commonjs/{sharedTypes → types/shared}/card.types.js.map +0 -0
  234. /package/lib/commonjs/{sharedTypes → types/shared}/checkDeposit.types.js +0 -0
  235. /package/lib/commonjs/{sharedTypes → types/shared}/checkDeposit.types.js.map +0 -0
  236. /package/lib/commonjs/{sharedTypes → types/shared}/index.js +0 -0
  237. /package/lib/commonjs/{sharedTypes → types/shared}/index.js.map +0 -0
  238. /package/lib/commonjs/{sharedTypes → types/shared}/onLoadResponse.types.js +0 -0
  239. /package/lib/commonjs/{sharedTypes → types/shared}/onLoadResponse.types.js.map +0 -0
  240. /package/lib/commonjs/{sharedTypes → types/shared}/payments.types.js +0 -0
  241. /package/lib/commonjs/{sharedTypes → types/shared}/payments.types.js.map +0 -0
  242. /package/lib/commonjs/{sharedTypes → types/shared}/transactions.types.js +0 -0
  243. /package/lib/commonjs/{sharedTypes → types/shared}/transactions.types.js.map +0 -0
  244. /package/lib/commonjs/{sharedTypes → types/shared}/types.js +0 -0
  245. /package/lib/commonjs/{sharedTypes → types/shared}/types.js.map +0 -0
  246. /package/lib/commonjs/{sharedTypes → types/shared}/wallet.types.js +0 -0
  247. /package/lib/commonjs/{sharedTypes → types/shared}/wallet.types.js.map +0 -0
  248. /package/lib/module/{sharedTypes → types/shared}/account.types.js +0 -0
  249. /package/lib/module/{sharedTypes → types/shared}/account.types.js.map +0 -0
  250. /package/lib/module/{sharedTypes → types/shared}/achCredit.types.js +0 -0
  251. /package/lib/module/{sharedTypes → types/shared}/activity.types.js +0 -0
  252. /package/lib/module/{sharedTypes → types/shared}/authorization.types.js +0 -0
  253. /package/lib/module/{sharedTypes → types/shared}/authorization.types.js.map +0 -0
  254. /package/lib/module/{sharedTypes → types/shared}/bookPayment.types.js +0 -0
  255. /package/lib/module/{sharedTypes → types/shared}/bookPayment.types.js.map +0 -0
  256. /package/lib/module/{sharedTypes → types/shared}/card.types.js +0 -0
  257. /package/lib/module/{sharedTypes → types/shared}/card.types.js.map +0 -0
  258. /package/lib/module/{sharedTypes → types/shared}/checkDeposit.types.js +0 -0
  259. /package/lib/module/{sharedTypes → types/shared}/checkDeposit.types.js.map +0 -0
  260. /package/lib/module/{sharedTypes → types/shared}/index.js +0 -0
  261. /package/lib/module/{sharedTypes → types/shared}/index.js.map +0 -0
  262. /package/lib/module/{sharedTypes → types/shared}/onLoadResponse.types.js +0 -0
  263. /package/lib/module/{sharedTypes → types/shared}/onLoadResponse.types.js.map +0 -0
  264. /package/lib/module/{sharedTypes → types/shared}/payments.types.js +0 -0
  265. /package/lib/module/{sharedTypes → types/shared}/payments.types.js.map +0 -0
  266. /package/lib/module/{sharedTypes → types/shared}/transactions.types.js +0 -0
  267. /package/lib/module/{sharedTypes → types/shared}/transactions.types.js.map +0 -0
  268. /package/lib/module/{sharedTypes → types/shared}/types.js +0 -0
  269. /package/lib/module/{sharedTypes → types/shared}/types.js.map +0 -0
  270. /package/lib/module/{sharedTypes → types/shared}/wallet.types.js +0 -0
  271. /package/lib/module/{sharedTypes → types/shared}/wallet.types.js.map +0 -0
  272. /package/lib/typescript/{components/UNCardComponent/networking → networking}/common/UNNetworkConstants.d.ts +0 -0
  273. /package/lib/typescript/{sharedTypes → types/shared}/account.types.d.ts +0 -0
  274. /package/lib/typescript/{sharedTypes → types/shared}/authorization.types.d.ts +0 -0
  275. /package/lib/typescript/{sharedTypes → types/shared}/bookPayment.types.d.ts +0 -0
  276. /package/lib/typescript/{sharedTypes → types/shared}/card.types.d.ts +0 -0
  277. /package/lib/typescript/{sharedTypes → types/shared}/checkDeposit.types.d.ts +0 -0
  278. /package/lib/typescript/{sharedTypes → types/shared}/index.d.ts +0 -0
  279. /package/lib/typescript/{sharedTypes → types/shared}/onLoadResponse.types.d.ts +0 -0
  280. /package/lib/typescript/{sharedTypes → types/shared}/payments.types.d.ts +0 -0
  281. /package/lib/typescript/{sharedTypes → types/shared}/transactions.types.d.ts +0 -0
  282. /package/lib/typescript/{sharedTypes → types/shared}/types.d.ts +0 -0
  283. /package/lib/typescript/{sharedTypes → types/shared}/wallet.types.d.ts +0 -0
  284. /package/src/{sharedTypes → types/shared}/account.types.ts +0 -0
  285. /package/src/{sharedTypes → types/shared}/authorization.types.ts +0 -0
  286. /package/src/{sharedTypes → types/shared}/bookPayment.types.ts +0 -0
  287. /package/src/{sharedTypes → types/shared}/card.types.ts +0 -0
  288. /package/src/{sharedTypes → types/shared}/checkDeposit.types.ts +0 -0
  289. /package/src/{sharedTypes → types/shared}/index.ts +0 -0
  290. /package/src/{sharedTypes → types/shared}/onLoadResponse.types.ts +0 -0
  291. /package/src/{sharedTypes → types/shared}/payments.types.ts +0 -0
  292. /package/src/{sharedTypes → types/shared}/transactions.types.ts +0 -0
  293. /package/src/{sharedTypes → types/shared}/types.ts +0 -0
  294. /package/src/{sharedTypes → types/shared}/wallet.types.ts +0 -0
@@ -1,15 +1,15 @@
1
1
  import React, { useState } from 'react';
2
- import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
3
- import { PresentationMode } from '../../scripts/html/bodyHtml';
2
+ import { WebComponent } from '../../webComponent/WebComponent';
4
3
  import { getBookPaymentParams, getBookPaymentScript } from './UNBookPaymentComponent.utils';
5
4
  import type { WebViewMessage } from '../../messages/webMessages';
6
- import type { UNOnLoadResponse, UNBookPaymentData, UNError, UNAccountData, UNOnLoadResponseData } from '../../sharedTypes';
5
+ import type { UNOnLoadResponse, UNBookPaymentData, UNError, UNAccountData, UNOnLoadResponseData } from '../../types/shared';
7
6
  import { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';
8
7
  import { View } from 'react-native';
9
8
  import { UnitMessage } from '../../messages/webMessages/unitMessages';
10
9
  import { PaymentMessage } from '../../messages/webMessages/paymentsMessage';
11
10
  import type { BookPaymentEvent } from '../../messages/webMessages/bookPaymentMessage';
12
11
  import { RESPONSE_KEYS, UnitOnLoadResponseEvent } from '../../messages/webMessages/onLoadMessage';
12
+ import { PresentationMode, WebComponentType } from '../../types/internal/webComponent.types';
13
13
 
14
14
  export interface UNBookPaymentComponentProps {
15
15
  //inputs
@@ -1,7 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import React, { useEffect, useRef, useState } from 'react';
3
3
  import type WebView from 'react-native-webview';
4
- import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
4
+ import { WebComponent } from '../../webComponent/WebComponent';
5
5
  import { Dimensions, Linking, View } from 'react-native';
6
6
  import BottomSheet from '../../helpers/BottomSheet/BottomSheet';
7
7
  import EventBus from '../../helpers/EventBus';
@@ -11,13 +11,15 @@ import { CardMessage, CardActivatedEvent, CardStatusChangedEvent } from '../../m
11
11
  import { useListenerToBus } from '../../hooks/listenerToBus';
12
12
  import type { WebViewMessage } from '../../messages/webMessages';
13
13
  import {
14
+ extractCardIdFromComponentParams,
14
15
  getBottomSheetScript,
15
- handleHtmlFullHeight,
16
+ injectHtmlFullScreenHeight,
17
+ isAddToWalletByComponentParams,
18
+ isAddToWalletFromRequestRendering,
16
19
  renderingBottomSheetRequest,
17
20
  resetHtml,
18
21
  } from './UNBottomSheetComponent.utils';
19
22
  import { getStylesObject } from './UNBottomSheetComponent.styles';
20
- import { PresentationMode } from '../../scripts/html/bodyHtml';
21
23
  import { useAppStateListener } from '../../hooks/useAppStateListener';
22
24
  import { UNAddToWalletBottomSheetItem } from './components/UNAddToWalletBottomSheetItem';
23
25
  import { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.utils';
@@ -25,6 +27,10 @@ import { AccountAction } from '../UNAccountComponent/UNAccountComponent';
25
27
  import type { AccountChangedEvent } from '../../messages/webMessages/accountMessage';
26
28
  import { AccountMessage } from '../../messages/webMessages/accountMessage';
27
29
  import { ActivityFiltersChangedEvent, ActivityMessage } from '../../messages/webMessages/activityMessage';
30
+ import { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from './UNBottomSheetComponent.constants';
31
+ import { BottomSheetRenderingType, BottomSheetSlotData, NativeComponentData, WebComponentData } from '../../types/internal/bottomSheet.types';
32
+ import { PresentationMode, WebComponentType } from '../../types/internal/webComponent.types';
33
+ import { BottomSheetNativeMessage, type StartBottomSheetFlowMessage } from '../../messages/nativeMessages/bottomSheetMessage';
28
34
 
29
35
  export enum ScrollState {
30
36
  /*
@@ -49,40 +55,49 @@ export enum ScrollState {
49
55
  onlyBottomSheet = 'onlyBottomSheet',
50
56
  }
51
57
 
52
- export type BottomSheetSlotData = {
53
- // The data that rendered by the web view
54
- componentName?: WebComponentType,
55
- componentResourceId?: string,
56
- requestRenderingEvent: RequestRenderingEvent
57
- }
58
-
59
- enum CustomDialog {
60
- addToWallet
61
- }
62
-
63
58
  export const UNBottomSheetComponent = () => {
64
59
  const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);
65
60
  const [height, setHeight] = useState(0);
66
61
 
62
+ const fullScreenHeight = Dimensions.get('window').height * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE;
63
+
64
+ const [renderingType, setRenderingType] = useState<BottomSheetRenderingType>(BottomSheetRenderingType.Slot);
67
65
  const [bottomSheetSlotData, setBottomSheetSlotData] = useState<BottomSheetSlotData>();
68
- const [requestRenderingEvent, setRequestRenderingEvent] = useState<RequestRenderingEvent>();
66
+ const [webComponentData, setWebComponentData] = useState<WebComponentData>();
67
+ const [nativeComponentData, setNativeComponentData] = useState<NativeComponentData>();
68
+
69
+ const [isAddToWallet, setIsAddToWallet] = useState(false);
69
70
  const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.onTop);
70
71
 
71
- const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false);
72
+ const [shouldShowComponent, setShouldShowComponent] = useState(false);
72
73
  const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null);
73
74
 
74
- const [customDialog, setCustomDialog] = useState<CustomDialog | null>(null);
75
-
76
75
  const isAppActive = useAppStateListener();
77
76
 
78
77
  const styles = getStylesObject();
79
78
 
80
79
  const webRef = useRef<WebView>(null);
81
80
 
82
- const handleRequestRendering = (data: BottomSheetSlotData) => {
83
- setBottomSheetSlotData(data);
81
+ const startFlow = (rendering: StartBottomSheetFlowMessage) => {
82
+ setRenderingType(rendering.type);
84
83
  setIsBottomSheetActive(true);
85
- setRequestRenderingEvent(data.requestRenderingEvent);
84
+ setShouldShowComponent(true);
85
+ switch (rendering.type) {
86
+ case BottomSheetRenderingType.Slot:
87
+ setBottomSheetSlotData(rendering.data);
88
+ setIsAddToWallet(isAddToWalletFromRequestRendering(rendering.data));
89
+ setWebComponentData(undefined);
90
+ break;
91
+ case BottomSheetRenderingType.WebComponent:
92
+ setIsAddToWallet(isAddToWalletByComponentParams(rendering.data));
93
+ isAddToWallet && setHeight(fullScreenHeight);
94
+ setBottomSheetSlotData(undefined);
95
+ setWebComponentData(rendering.data);
96
+ break;
97
+ case BottomSheetRenderingType.NativeComponent:
98
+ setNativeComponentData(rendering.data);
99
+ break;
100
+ }
86
101
  };
87
102
 
88
103
  const handleCloseFlow = () => {
@@ -90,88 +105,137 @@ export const UNBottomSheetComponent = () => {
90
105
  };
91
106
 
92
107
  useEffect(() => {
93
- setRequestRenderingEvent(bottomSheetSlotData?.requestRenderingEvent);
94
- }, [bottomSheetSlotData]);
95
-
96
- useEffect(() => {
97
- if (!webRef.current) return;
98
- if (requestRenderingEvent) {
99
- renderingBottomSheetRequest(webRef.current, requestRenderingEvent);
108
+ switch (renderingType) {
109
+ case BottomSheetRenderingType.Slot:
110
+ if (webRef.current && bottomSheetSlotData?.requestRenderingEvent) {
111
+ renderingBottomSheetRequest(webRef.current, bottomSheetSlotData.requestRenderingEvent);
112
+ }
113
+ break;
114
+ case BottomSheetRenderingType.WebComponent:
115
+ if (isAddToWallet) {
116
+ webRef.current?.injectJavaScript('document.activeElement && document.activeElement.blur();');
117
+ setHeight(fullScreenHeight);
118
+ }
119
+ break;
120
+ case BottomSheetRenderingType.NativeComponent:
121
+ break;
100
122
  }
101
- }, [webRef.current, requestRenderingEvent]);
123
+ }, [webRef, webComponentData, bottomSheetSlotData, nativeComponentData]);
102
124
 
103
125
  useEffect(() => {
104
126
  if (!isBottomSheetActive) {
105
127
  webRef.current && resetHtml(webRef.current);
106
128
  setHeight(0);
107
- setRequestRenderingEvent(undefined);
129
+ setShouldShowComponent(false);
130
+ setWebComponentData(undefined);
131
+ setBottomSheetSlotData(undefined);
132
+ setRenderingType(BottomSheetRenderingType.Slot);
108
133
  setScrollState(ScrollState.onTop);
109
- setCustomDialog(null);
134
+ setIsAddToWallet(false);
110
135
  }
111
136
  }, [isBottomSheetActive]);
112
137
 
113
138
  useEffect(() => {
114
- if (!waitForLoadingNewComponent && newHeightMessage) {
115
- setWaitForLoadingNewComponent(false);
139
+ if (shouldShowComponent) {
140
+ defineScrollState();
116
141
  setNewHeight(newHeightMessage);
117
142
  }
118
- }, [waitForLoadingNewComponent, newHeightMessage]);
143
+ }, [shouldShowComponent, newHeightMessage, isAddToWallet]);
119
144
 
120
- useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_RENDERING, action: handleRequestRendering });
145
+ useListenerToBus({ busEventKey: BottomSheetNativeMessage.START_FLOW, action: startFlow });
121
146
  useListenerToBus({ busEventKey: UnitMessage.UNIT_REQUEST_CLOSE_FLOW, action: handleCloseFlow });
122
147
 
123
- const setNewHeight = (message: WebViewMessage) => {
124
- if (!requestRenderingEvent) return;
125
- switch (bottomSheetSlotData?.componentName) {
126
- case WebComponentType.account: {
127
- const accountActionType = getAccountActionType(requestRenderingEvent);
128
- setScrollState(
129
- accountActionType === AccountAction.List ? ScrollState.onTop : ScrollState.unScrollable
130
- );
131
- break;
132
- }
133
- case WebComponentType.card: {
134
- if (customDialog === CustomDialog.addToWallet) {
135
- setScrollState(ScrollState.unScrollable);
136
- } else {
137
- setScrollState(ScrollState.onTop);
148
+ const defineScrollState = () => {
149
+ const scrollStateForSlot = () => {
150
+ if (!bottomSheetSlotData?.requestRenderingEvent) return;
151
+ switch (bottomSheetSlotData?.componentName) {
152
+ case WebComponentType.account: {
153
+ const accountActionType = getAccountActionType(bottomSheetSlotData.requestRenderingEvent);
154
+ setScrollState(
155
+ accountActionType === AccountAction.List ? ScrollState.onTop : ScrollState.unScrollable
156
+ );
157
+ break;
138
158
  }
139
- break;
140
- }
141
- default: {
142
- const nativePlace = requestRenderingEvent?.data.nativePlace;
143
- if (nativePlace == 'overFullScreen') {
144
- setScrollState(ScrollState.onTop);
145
- } else {
146
- setScrollState(ScrollState.unScrollable);
159
+ case WebComponentType.card: {
160
+ if (isAddToWallet) {
161
+ setScrollState(ScrollState.unScrollable);
162
+ } else {
163
+ setScrollState(ScrollState.onTop);
164
+ }
165
+ break;
166
+ }
167
+ default: {
168
+ // default web component case
169
+ const nativePlace = bottomSheetSlotData.requestRenderingEvent.data.nativePlace;
170
+ if (nativePlace == 'overFullScreen') {
171
+ setScrollState(ScrollState.onTop);
172
+ } else {
173
+ setScrollState(ScrollState.unScrollable);
174
+ }
147
175
  }
148
176
  }
177
+ };
178
+
179
+ const scrollStateForWebComponent = () => {
180
+ if (isAddToWallet) {
181
+ setScrollState(ScrollState.unScrollable);
182
+ } else {
183
+ setScrollState(ScrollState.onTop);
184
+ }
185
+ };
186
+
187
+ switch (renderingType) {
188
+ case BottomSheetRenderingType.Slot:
189
+ scrollStateForSlot();
190
+ break;
191
+ case BottomSheetRenderingType.WebComponent:
192
+ scrollStateForWebComponent();
193
+ break;
194
+ default:
195
+ setScrollState(ScrollState.onTop);
149
196
  }
150
- const nativePlace = requestRenderingEvent?.data.nativePlace;
151
- if (nativePlace == 'overFullScreen') {
152
- const bottomSheetNewHeight = handleHtmlFullHeight(webRef.current, Dimensions.get('window').height);
153
- setHeight(bottomSheetNewHeight);
154
- } else {
155
- setHeight((message.details as HeightEvent).height);
197
+ };
198
+
199
+ const setNewHeight = (message: WebViewMessage | null) => {
200
+ if (isAddToWallet) {
201
+ setHeight(fullScreenHeight);
202
+ } else if (message) {
203
+ const nativePlace = bottomSheetSlotData?.requestRenderingEvent.data.nativePlace;
204
+ if (nativePlace == 'overFullScreen') {
205
+ injectHtmlFullScreenHeight(webRef.current, fullScreenHeight);
206
+ setHeight(fullScreenHeight);
207
+ } else {
208
+ setHeight((message.details as HeightEvent).height);
209
+ }
156
210
  }
157
211
  };
158
212
 
159
213
  const onWebMessage = (message: WebViewMessage) => {
160
214
  switch (message.type) {
161
215
  case PageMessage.PAGE_HEIGHT:
162
- requestRenderingEvent && setNewHeightMessage(message);
216
+ bottomSheetSlotData?.requestRenderingEvent && setNewHeightMessage(message);
163
217
  break;
164
218
  case UnitMessage.UNIT_REQUEST_RENDERING: {
219
+ setRenderingType(BottomSheetRenderingType.Slot);
165
220
  const requestRendering = (message.details as RequestRenderingEvent);
166
- if (requestRendering.data.nativeComponent != requestRenderingEvent?.data?.nativeComponent) {
167
- if (requestRendering.data.nativeComponent.includes('action=AddToWallet')) {
168
- setCustomDialog(CustomDialog.addToWallet);
169
- }
221
+ setWebComponentData(undefined);
222
+ if (requestRendering.data.nativeComponent != bottomSheetSlotData?.requestRenderingEvent?.data?.nativeComponent) {
223
+ setIsAddToWallet(requestRendering.data.nativeComponent.includes('action=AddToWallet'));
170
224
 
225
+ // Animation between bottom sheet screens
226
+ // Close the bottom sheet
171
227
  setHeight(0);
172
- setRequestRenderingEvent(requestRendering);
173
- setWaitForLoadingNewComponent(true);
174
- setTimeout(() => setWaitForLoadingNewComponent(false), 400);
228
+ setShouldShowComponent(false);
229
+
230
+ // Update the bottom sheet data
231
+ setBottomSheetSlotData({
232
+ componentResourceId: bottomSheetSlotData?.componentResourceId,
233
+ componentName: bottomSheetSlotData?.componentName,
234
+ requestRenderingEvent: requestRendering
235
+ });
236
+
237
+ // Open the bottom sheet
238
+ setTimeout(() => setShouldShowComponent(true), 400);
175
239
  }
176
240
  break;
177
241
  }
@@ -218,10 +282,12 @@ export const UNBottomSheetComponent = () => {
218
282
  };
219
283
 
220
284
  const renderBottomSheetItem = () => {
221
- switch (customDialog) {
222
- case CustomDialog.addToWallet:
223
- return <UNAddToWalletBottomSheetItem renderingRequest={requestRenderingEvent} cardId={bottomSheetSlotData?.componentResourceId} />;
224
- default:
285
+ switch (renderingType) {
286
+ case BottomSheetRenderingType.Slot:
287
+ if (bottomSheetSlotData?.requestRenderingEvent.data.nativeComponent?.includes('action=AddToWallet') && bottomSheetSlotData?.componentResourceId) {
288
+ return <UNAddToWalletBottomSheetItem renderingType={renderingType} renderingRequest={bottomSheetSlotData.requestRenderingEvent} cardId={bottomSheetSlotData?.componentResourceId} fullScreenHeight={fullScreenHeight}/>;
289
+ }
290
+
225
291
  return (
226
292
  <WebComponent
227
293
  ref={webRef}
@@ -233,6 +299,15 @@ export const UNBottomSheetComponent = () => {
233
299
  handleScroll={onScrollWebView}
234
300
  />
235
301
  );
302
+ case BottomSheetRenderingType.WebComponent:
303
+ if (webComponentData?.params?.includes('action=AddToWallet')) {
304
+ const cardId = extractCardIdFromComponentParams(webComponentData);
305
+ if (!cardId) return null;
306
+ return <UNAddToWalletBottomSheetItem renderingType={renderingType} webComponentData={webComponentData} cardId={cardId} fullScreenHeight={fullScreenHeight}/>;
307
+ }
308
+ return null;
309
+ case BottomSheetRenderingType.NativeComponent:
310
+ return null;
236
311
  }
237
312
  };
238
313
 
@@ -1,7 +1,8 @@
1
1
  import { LISTENERS } from './../../scripts/html/bodyScript';
2
2
  import type WebView from 'react-native-webview';
3
- import { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from './UNBottomSheetComponent.constants';
4
3
  import type { RequestRenderingEvent } from '../../messages/webMessages/unitMessages';
4
+ import type { BottomSheetSlotData, WebComponentData } from '../../types/internal/bottomSheet.types';
5
+ import { webViewId } from '../../scripts/html/bodyHtml';
5
6
 
6
7
  export const getBottomSheetScript = () => {
7
8
  return LISTENERS.requestRefresh;
@@ -17,15 +18,32 @@ export const renderingBottomSheetRequest = (currentWebView: WebView, renderingRe
17
18
  export const resetHtml = (currentWebView: WebView) => {
18
19
  currentWebView?.injectJavaScript(`
19
20
  document.activeElement && document.activeElement.blur();
20
- document.getElementById('webViewContainer').style.height = null;
21
+ document.getElementById('${webViewId}').style.height = null;
21
22
  `);
22
23
  };
23
24
 
24
- export const handleHtmlFullHeight = (currentWebView: WebView | null, windowHeight: number) => {
25
- const bottomSheetHeight = windowHeight * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE;
25
+ export const injectHtmlFullScreenHeight = (currentWebView: WebView | null, bottomSheetHeight: number) => {
26
26
  currentWebView && currentWebView?.injectJavaScript(`
27
- document.getElementById('webViewContainer').style.height = '${bottomSheetHeight}px';
27
+ document.getElementById('${webViewId}').style.height = '${bottomSheetHeight}px';
28
28
  `);
29
+ };
30
+
31
+ export const isAddToWalletFromRequestRendering = (data: BottomSheetSlotData): boolean => {
32
+ return data.requestRenderingEvent?.data?.nativeComponent.includes('AddToWallet') ?? false;
33
+ };
34
+
35
+ export const isAddToWalletByComponentParams = (data: WebComponentData): boolean => {
36
+ return data.params?.includes('AddToWallet') ?? false;
37
+ };
38
+
39
+ export const extractCardIdFromComponentParams = (data: WebComponentData): string | null => {
40
+ const regex = /card-id=(\d+)/;
41
+ const match = data.params?.match(regex);
29
42
 
30
- return bottomSheetHeight;
43
+ if (match && match[1]) {
44
+ const cardId = match[1];
45
+ return cardId;
46
+ } else {
47
+ return null;
48
+ }
31
49
  };
@@ -1,20 +1,25 @@
1
- import React, { useEffect, useRef, useState } from 'react';
1
+ import React, { useEffect, useRef } from 'react';
2
2
  import type WebView from 'react-native-webview';
3
- import { UNCardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../../messages/nativeMessages/cardMessage';
4
- import EventBus from '../../../helpers/EventBus';
5
- import { PresentationMode } from '../../../scripts/html/bodyHtml';
6
- import { WebComponent, WebComponentType } from '../../../webComponent/WebComponent';
7
- import { renderingBottomSheetRequest } from '../UNBottomSheetComponent.utils';
3
+ import { WebComponent } from '../../../webComponent/WebComponent';
4
+ import { injectHtmlFullScreenHeight, renderingBottomSheetRequest } from '../UNBottomSheetComponent.utils';
8
5
  import { getStylesObject } from './UNAddToWalletBottomSheetItem.styles';
9
6
  import { ActivityIndicator } from 'react-native';
10
- import { useListenerToBus } from '../../../hooks/listenerToBus';
11
- import type { RequestRenderingEvent } from '../../../messages/webMessages/unitMessages';
7
+ import { UnitMessage, type RequestRenderingEvent } from '../../../messages/webMessages/unitMessages';
12
8
  import UnitAddToWalletButtonView from '../../../nativeComponent/UnitAddToWalletButton';
13
- import { UNCardAddToWalletStatus } from '../../../sharedTypes/wallet.types';
9
+ import { UNCardAddToWalletStatus } from '../../../types/shared/wallet.types';
10
+ import { BottomSheetRenderingType, WebComponentData } from '../../../types/internal/bottomSheet.types';
11
+ import { PresentationMode, WebComponentType } from '../../../types/internal/webComponent.types';
12
+ import { useCardWallet } from '../../../helpers/pushProvisioningService/hooks/useCardWallet';
13
+ import { launchStartCardProvisioning } from '../../../helpers/pushProvisioningService/startProvisioning';
14
+ import type { WebViewMessage } from '../../../messages/webMessages';
15
+ import EventBus from '../../../helpers/EventBus';
14
16
 
15
17
  export interface UNAddToWalletBottomSheetItemProps {
18
+ renderingType: BottomSheetRenderingType
16
19
  renderingRequest?: RequestRenderingEvent
17
- cardId?: string
20
+ webComponentData?: WebComponentData
21
+ cardId: string,
22
+ fullScreenHeight: number
18
23
  }
19
24
 
20
25
  export const UNAddToWalletBottomSheetItem = (props: UNAddToWalletBottomSheetItemProps) => {
@@ -22,52 +27,78 @@ export const UNAddToWalletBottomSheetItem = (props: UNAddToWalletBottomSheetItem
22
27
 
23
28
  const webRef = useRef<WebView>(null);
24
29
 
25
- const { renderingRequest, cardId } = props;
26
-
27
- const [addToWalletStatus, setAddToWalletStatus] = useState<UNCardAddToWalletStatus>(UNCardAddToWalletStatus.pending);
28
-
29
- useEffect(() => {
30
- if (!cardId) return;
31
- const event: CardGetAddToWalletStatusEvent = { cardId };
32
- EventBus.Instance.event(CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, event);
33
- }, [cardId]);
30
+ const { renderingType, renderingRequest, webComponentData, cardId } = props;
31
+ const { currentUNWallet } = useCardWallet(cardId);
34
32
 
35
33
  useEffect(() => {
36
34
  if (!webRef.current) return;
37
- if (addToWalletStatus === UNCardAddToWalletStatus.pending) return;
38
-
39
- const isCardInWallet = addToWalletStatus === UNCardAddToWalletStatus.addedToWallet;
40
- webRef.current.injectJavaScript(`window.UnitMobileSDKConfig["isCardInWallet"] = ${isCardInWallet}`);
35
+ const currentWalletStatus = currentUNWallet?.status ?? UNCardAddToWalletStatus.pending;
36
+ if (currentWalletStatus === UNCardAddToWalletStatus.pending) return;
41
37
 
42
- if (renderingRequest) {
38
+ if (renderingType === BottomSheetRenderingType.Slot && renderingRequest) {
39
+ const isCardInWallet = currentWalletStatus === UNCardAddToWalletStatus.addedToWallet;
40
+ webRef.current.injectJavaScript(`window.UnitMobileSDKConfig["isCardInWallet"] = ${isCardInWallet}`);
43
41
  renderingBottomSheetRequest(webRef.current, renderingRequest);
44
42
  }
45
- }, [webRef.current, renderingRequest, addToWalletStatus]);
46
43
 
47
- const gotCardWalletStatus = (data?: UNCardAddToWalletStatusEvent) => {
48
- if (data != null) {
49
- setAddToWalletStatus(data.status);
44
+ }, [webRef.current, renderingRequest, currentUNWallet]);
45
+
46
+ const handleAddToWalletClicked = () => {
47
+ if (!currentUNWallet) return;
48
+ launchStartCardProvisioning(currentUNWallet);
49
+ };
50
+
51
+ const handleWebComponentMessage = (message: WebViewMessage) => {
52
+ if (!message || !message.type) return;
53
+ switch (message.type) {
54
+ case UnitMessage.UNIT_ON_LOAD:
55
+ injectHtmlFullScreenHeight(webRef.current, props.fullScreenHeight);
56
+ break;
57
+ case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:
58
+ EventBus.Instance.event(UnitMessage.UNIT_REQUEST_CLOSE_FLOW, {});
59
+ break;
60
+ default:
61
+ break;
50
62
  }
51
63
  };
52
64
 
53
- useListenerToBus({ busEventKey: CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, action: gotCardWalletStatus });
65
+ const shouldShowWebComponent = () => {
66
+ // Show .Slot, since it need to be loaded when we inject the requestRendering
67
+ // Otherwise show web component only if the card is in wallet or ready to be provisioned.
54
68
 
55
- const handleAddToWalletClicked = () => {
56
- if (!cardId) return;
57
- const startPushProvisioningEvent: CardStartPushProvisioningEvent = { cardId };
58
- EventBus.Instance.event(CardNativeMessage.CARD_START_PUSH_PROVISIONING, startPushProvisioningEvent);
69
+ const isSlot = renderingType === BottomSheetRenderingType.Slot;
70
+
71
+ const gotWalletStatus = currentUNWallet &&
72
+ (currentUNWallet.status === UNCardAddToWalletStatus.readyToProvisioning ||
73
+ currentUNWallet.status === UNCardAddToWalletStatus.addedToWallet);
74
+
75
+ return isSlot || gotWalletStatus;
59
76
  };
60
77
 
61
78
  return (
62
79
  <>
63
- <WebComponent
64
- ref={webRef}
65
- type={WebComponentType.slot}
66
- presentationMode={PresentationMode.CoverInjectedHeight}
67
- isScrollable={false}
68
- />
69
- {addToWalletStatus === UNCardAddToWalletStatus.pending && <ActivityIndicator style={styles.loader} />}
70
- {addToWalletStatus === UNCardAddToWalletStatus.readyToProvisioning && <UnitAddToWalletButtonView style={styles.addToWalletButton} onAddToWalletClicked={handleAddToWalletClicked} />}
80
+ {
81
+ shouldShowWebComponent() &&
82
+ <WebComponent
83
+ ref={webRef}
84
+ type={renderingType === BottomSheetRenderingType.WebComponent ? WebComponentType.cardAction : WebComponentType.slot}
85
+ presentationMode={PresentationMode.CoverInjectedHeight}
86
+ params={webComponentData?.params}
87
+ isScrollable={false}
88
+ onMessage={handleWebComponentMessage}
89
+ windowParams={renderingType === BottomSheetRenderingType.WebComponent ? `window.UnitMobileSDKConfig["isCardInWallet"] = ${currentUNWallet?.status === UNCardAddToWalletStatus.addedToWallet}` : ''}
90
+ />
91
+ }
92
+
93
+ {
94
+ (currentUNWallet == undefined || currentUNWallet?.status === UNCardAddToWalletStatus.pending) &&
95
+ <ActivityIndicator style={styles.loader} />
96
+ }
97
+
98
+ {
99
+ currentUNWallet?.status === UNCardAddToWalletStatus.readyToProvisioning &&
100
+ <UnitAddToWalletButtonView style={styles.addToWalletButton} onAddToWalletClicked={handleAddToWalletClicked} />
101
+ }
71
102
  </>
72
103
  );
73
104
  };