react-native-unit-components 1.0.2 → 1.0.3

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 (213) hide show
  1. package/README.md +75 -6
  2. package/android/src/main/AndroidManifest.xml +12 -1
  3. package/android/src/main/java/com/unitreactnativecomponents/UnitReactNativeComponentsPackage.kt +2 -1
  4. package/android/src/main/java/com/unitreactnativecomponents/sharepdf/UNSharePDF.kt +75 -0
  5. package/android/src/main/res/layout/un_black_add_to_googlepay_button.xml +2 -2
  6. package/android/src/main/res/layout/un_view_google_push_provisioning.xml +1 -13
  7. package/android/src/main/res/layout/un_white_add_to_googlepay_button.xml +1 -1
  8. package/android/src/main/res/layout/un_white_add_to_googlepay_button_no_shadow.xml +1 -1
  9. package/android/src/main/res/xml/file_paths.xml +4 -0
  10. package/ios/UnitReactNativeComponentsViewManager.m +0 -1
  11. package/ios/UnitReactNativeComponentsViewManager.swift +6 -2
  12. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js +103 -0
  13. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.js.map +1 -0
  14. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js +47 -0
  15. package/lib/commonjs/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -0
  16. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +28 -4
  17. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  18. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +19 -1
  19. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
  20. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +22 -10
  21. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
  22. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +4 -0
  23. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
  24. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +3 -3
  25. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
  26. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js +114 -46
  27. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  28. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +4 -8
  29. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
  30. package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +95 -0
  31. package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -0
  32. package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js +31 -0
  33. package/lib/commonjs/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -0
  34. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js +64 -7
  35. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -1
  36. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +57 -8
  37. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
  38. package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js +20 -0
  39. package/lib/commonjs/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -0
  40. package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +44 -0
  41. package/lib/commonjs/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -0
  42. package/lib/commonjs/components/index.js +13 -0
  43. package/lib/commonjs/components/index.js.map +1 -1
  44. package/lib/commonjs/helpers/BottomSheet/BottomSheet.js +32 -12
  45. package/lib/commonjs/helpers/BottomSheet/BottomSheet.js.map +1 -1
  46. package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js +1 -1
  47. package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
  48. package/lib/commonjs/helpers/EventBus.js.map +1 -1
  49. package/lib/commonjs/messages/nativeMessages/cardMessage.js +36 -0
  50. package/lib/commonjs/messages/nativeMessages/cardMessage.js.map +1 -0
  51. package/lib/commonjs/messages/nativeMessages/index.js +0 -8
  52. package/lib/commonjs/messages/nativeMessages/index.js.map +1 -1
  53. package/lib/commonjs/messages/nativeMessages/sdkMessage.js +14 -0
  54. package/lib/commonjs/messages/nativeMessages/sdkMessage.js.map +1 -0
  55. package/lib/commonjs/messages/webMessages/unitMessages.js +1 -0
  56. package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -1
  57. package/lib/commonjs/nativeComponent/{UNNativeAddToWalletButton.js → UnitAddToWalletButton.js} +1 -1
  58. package/lib/commonjs/nativeComponent/UnitAddToWalletButton.js.map +1 -0
  59. package/lib/commonjs/scripts/html/bodyScript.js +22 -5
  60. package/lib/commonjs/scripts/html/bodyScript.js.map +1 -1
  61. package/lib/commonjs/sharedTypes/bookPayment.types.js.map +1 -1
  62. package/lib/commonjs/sharedTypes/card.types.js.map +1 -1
  63. package/lib/commonjs/sharedTypes/index.js +13 -0
  64. package/lib/commonjs/sharedTypes/index.js.map +1 -1
  65. package/lib/commonjs/sharedTypes/onLoadResponse.types.js +6 -0
  66. package/lib/commonjs/sharedTypes/onLoadResponse.types.js.map +1 -0
  67. package/lib/commonjs/sharedTypes/wallet.types.js +22 -0
  68. package/lib/commonjs/sharedTypes/wallet.types.js.map +1 -0
  69. package/lib/commonjs/unitSdkManager/UnitSdk.api.js +5 -3
  70. package/lib/commonjs/unitSdkManager/UnitSdk.api.js.map +1 -1
  71. package/lib/commonjs/unitSdkManager/UnitSdkManager.js +12 -2
  72. package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -1
  73. package/lib/commonjs/webComponent/WebComponent.js +20 -8
  74. package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
  75. package/lib/commonjs/webComponent/WebComponent.utils.js +41 -0
  76. package/lib/commonjs/webComponent/WebComponent.utils.js.map +1 -0
  77. package/lib/commonjs/webComponent/html.js +9 -1
  78. package/lib/commonjs/webComponent/html.js.map +1 -1
  79. package/lib/module/components/UNAccountComponent/UNAccountComponent.js +74 -0
  80. package/lib/module/components/UNAccountComponent/UNAccountComponent.js.map +1 -0
  81. package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js +26 -0
  82. package/lib/module/components/UNAccountComponent/UNAccountComponent.utils.js.map +1 -0
  83. package/lib/module/components/UNActivityComponent/UNActivityComponent.js +28 -6
  84. package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -1
  85. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +10 -0
  86. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -1
  87. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +21 -10
  88. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -1
  89. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +3 -0
  90. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -1
  91. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +1 -1
  92. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -1
  93. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +111 -46
  94. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -1
  95. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +5 -9
  96. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -1
  97. package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js +68 -0
  98. package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.js.map +1 -0
  99. package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js +21 -0
  100. package/lib/module/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.js.map +1 -0
  101. package/lib/module/components/UNCardComponent/UNCardComponent.js +64 -9
  102. package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -1
  103. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +48 -7
  104. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -1
  105. package/lib/module/components/UNCardComponent/networking/common/UNNetworkConstants.js +10 -0
  106. package/lib/module/components/UNCardComponent/networking/common/UNNetworkConstants.js.map +1 -0
  107. package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js +29 -0
  108. package/lib/module/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.js.map +1 -0
  109. package/lib/module/components/index.js +1 -0
  110. package/lib/module/components/index.js.map +1 -1
  111. package/lib/module/helpers/BottomSheet/BottomSheet.js +30 -13
  112. package/lib/module/helpers/BottomSheet/BottomSheet.js.map +1 -1
  113. package/lib/module/helpers/BottomSheet/BottomSheet.styles.js +2 -2
  114. package/lib/module/helpers/BottomSheet/BottomSheet.styles.js.map +1 -1
  115. package/lib/module/helpers/EventBus.js.map +1 -1
  116. package/lib/module/messages/nativeMessages/cardMessage.js +27 -0
  117. package/lib/module/messages/nativeMessages/cardMessage.js.map +1 -0
  118. package/lib/module/messages/nativeMessages/index.js +1 -6
  119. package/lib/module/messages/nativeMessages/index.js.map +1 -1
  120. package/lib/module/messages/nativeMessages/sdkMessage.js +7 -0
  121. package/lib/module/messages/nativeMessages/sdkMessage.js.map +1 -0
  122. package/lib/module/messages/webMessages/unitMessages.js +1 -0
  123. package/lib/module/messages/webMessages/unitMessages.js.map +1 -1
  124. package/lib/module/nativeComponent/{UNNativeAddToWalletButton.js → UnitAddToWalletButton.js} +1 -1
  125. package/lib/module/nativeComponent/UnitAddToWalletButton.js.map +1 -0
  126. package/lib/module/scripts/html/bodyScript.js +19 -3
  127. package/lib/module/scripts/html/bodyScript.js.map +1 -1
  128. package/lib/module/sharedTypes/bookPayment.types.js.map +1 -1
  129. package/lib/module/sharedTypes/card.types.js.map +1 -1
  130. package/lib/module/sharedTypes/index.js +1 -0
  131. package/lib/module/sharedTypes/index.js.map +1 -1
  132. package/lib/module/sharedTypes/onLoadResponse.types.js +2 -0
  133. package/lib/module/sharedTypes/onLoadResponse.types.js.map +1 -0
  134. package/lib/module/sharedTypes/wallet.types.js +14 -0
  135. package/lib/module/sharedTypes/wallet.types.js.map +1 -0
  136. package/lib/module/unitSdkManager/UnitSdk.api.js +4 -3
  137. package/lib/module/unitSdkManager/UnitSdk.api.js.map +1 -1
  138. package/lib/module/unitSdkManager/UnitSdkManager.js +12 -2
  139. package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -1
  140. package/lib/module/webComponent/WebComponent.js +18 -7
  141. package/lib/module/webComponent/WebComponent.js.map +1 -1
  142. package/lib/module/webComponent/WebComponent.utils.js +27 -0
  143. package/lib/module/webComponent/WebComponent.utils.js.map +1 -0
  144. package/lib/module/webComponent/html.js +9 -2
  145. package/lib/module/webComponent/html.js.map +1 -1
  146. package/lib/typescript/components/UNAccountComponent/UNAccountComponent.d.ts +12 -0
  147. package/lib/typescript/components/UNAccountComponent/UNAccountComponent.utils.d.ts +7 -0
  148. package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +2 -0
  149. package/lib/typescript/components/UNActivityComponent/UNActivityComponent.utils.d.ts +4 -0
  150. package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +2 -1
  151. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.d.ts +1 -1
  152. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.d.ts +9 -2
  153. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.d.ts +2 -1
  154. package/lib/typescript/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.d.ts +6 -0
  155. package/lib/typescript/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.d.ts +17 -0
  156. package/lib/typescript/components/UNCardComponent/UNCardComponent.d.ts +4 -1
  157. package/lib/typescript/components/UNCardComponent/UNCardComponent.utils.d.ts +9 -1
  158. package/lib/typescript/components/UNCardComponent/networking/common/UNNetworkConstants.d.ts +8 -0
  159. package/lib/typescript/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.d.ts +1 -0
  160. package/lib/typescript/components/index.d.ts +1 -0
  161. package/lib/typescript/helpers/EventBus.d.ts +3 -3
  162. package/lib/typescript/messages/nativeMessages/cardMessage.d.ts +28 -0
  163. package/lib/typescript/messages/nativeMessages/index.d.ts +7 -3
  164. package/lib/typescript/messages/nativeMessages/sdkMessage.d.ts +8 -0
  165. package/lib/typescript/messages/webMessages/unitMessages.d.ts +16 -6
  166. package/lib/typescript/scripts/html/bodyScript.d.ts +4 -1
  167. package/lib/typescript/sharedTypes/bookPayment.types.d.ts +3 -3
  168. package/lib/typescript/sharedTypes/card.types.d.ts +6 -6
  169. package/lib/typescript/sharedTypes/index.d.ts +1 -0
  170. package/lib/typescript/sharedTypes/onLoadResponse.types.d.ts +18 -0
  171. package/lib/typescript/sharedTypes/wallet.types.d.ts +14 -0
  172. package/lib/typescript/unitSdkManager/UnitSdkManager.d.ts +3 -0
  173. package/lib/typescript/webComponent/WebComponent.d.ts +2 -1
  174. package/lib/typescript/webComponent/WebComponent.utils.d.ts +2 -0
  175. package/package.json +2 -1
  176. package/src/components/UNAccountComponent/UNAccountComponent.tsx +82 -0
  177. package/src/components/UNAccountComponent/UNAccountComponent.utils.ts +30 -0
  178. package/src/components/UNActivityComponent/UNActivityComponent.tsx +28 -5
  179. package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +14 -0
  180. package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +18 -10
  181. package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.ts +3 -0
  182. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.ts +1 -1
  183. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +120 -44
  184. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.ts +7 -10
  185. package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.styles.ts +21 -0
  186. package/src/components/UNBottomSheetComponent/components/UNAddToWalletBottomSheetItem.tsx +74 -0
  187. package/src/components/UNCardComponent/UNCardComponent.tsx +67 -13
  188. package/src/components/UNCardComponent/UNCardComponent.utils.ts +47 -7
  189. package/src/components/UNCardComponent/networking/common/UNNetworkConstants.ts +11 -0
  190. package/src/components/UNCardComponent/networking/requests/UNWalletPayloadRequest.ts +34 -0
  191. package/src/components/index.ts +1 -0
  192. package/src/helpers/BottomSheet/BottomSheet.styles.ts +2 -2
  193. package/src/helpers/BottomSheet/BottomSheet.tsx +28 -12
  194. package/src/helpers/EventBus.ts +3 -3
  195. package/src/messages/nativeMessages/cardMessage.ts +37 -0
  196. package/src/messages/nativeMessages/index.ts +14 -3
  197. package/src/messages/nativeMessages/sdkMessage.ts +11 -0
  198. package/src/messages/webMessages/unitMessages.ts +20 -7
  199. package/src/scripts/html/bodyScript.ts +21 -4
  200. package/src/sharedTypes/bookPayment.types.ts +3 -3
  201. package/src/sharedTypes/card.types.ts +6 -6
  202. package/src/sharedTypes/index.ts +1 -0
  203. package/src/sharedTypes/onLoadResponse.types.ts +27 -0
  204. package/src/sharedTypes/wallet.types.ts +17 -0
  205. package/src/unitSdkManager/UnitSdk.api.ts +3 -2
  206. package/src/unitSdkManager/UnitSdkManager.ts +11 -2
  207. package/src/webComponent/WebComponent.tsx +21 -10
  208. package/src/webComponent/WebComponent.utils.ts +26 -0
  209. package/src/webComponent/html.ts +9 -2
  210. package/lib/commonjs/nativeComponent/UNNativeAddToWalletButton.js.map +0 -1
  211. package/lib/module/nativeComponent/UNNativeAddToWalletButton.js.map +0 -1
  212. /package/lib/typescript/nativeComponent/{UNNativeAddToWalletButton.d.ts → UnitAddToWalletButton.d.ts} +0 -0
  213. /package/src/nativeComponent/{UNNativeAddToWalletButton.tsx → UnitAddToWalletButton.tsx} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","WebComponent","WebComponentType","Dimensions","Linking","View","BottomSheet","EventBus","PageMessage","UnitMessage","CardMessage","useListenerToBus","getBottomSheetScript","handleHtmlFullHeight","renderingBottomSheetRequest","resetHtml","getStylesObject","PresentationMode","useAppStateListener","ScrollState","UNBottomSheetComponent","isBottomSheetActive","setIsBottomSheetActive","height","setHeight","renderingRequest","setRenderingRequest","scrollState","setScrollState","onTop","waitForLoadingNewComponent","setWaitForLoadingNewComponent","newHeightMessage","setNewHeightMessage","isAppActive","styles","webRef","listenerAction","data","current","setNewHeight","busEventKey","UNIT_REQUEST_RENDERING","action","message","nativePlace","JSON","parse","bottomSheetNewHeight","get","details","unScrollable","onWebMessage","type","PAGE_HEIGHT","setTimeout","CARD_STATUS_CHANGED","Instance","event","card","UNIT_REQUEST_CLOSE_FLOW","UNIT_REQUEST_OPEN_LINK","href","openURL","onScrollWebView","currY","nativeEvent","contentOffset","y","onlyBottomSheet","onlyWebView","handleWebViewScroll","undefined","container","slot","CoverInjectedHeight"],"sources":["UNBottomSheetComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { Dimensions, Linking, View } from 'react-native';\nimport BottomSheet from '../../helpers/BottomSheet/BottomSheet';\nimport EventBus from '../../helpers/EventBus';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestOpenLinkEvent, RequestRenderingData, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { CardMessage, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getBottomSheetScript, handleHtmlFullHeight, renderingBottomSheetRequest, resetHtml } from './UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNBottomSheetComponent.styles';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\n\nexport enum ScrollState {\n onTop = 'onTop',\n onlyWebView = 'webViewScroll',\n onlyBottomSheet = 'onlyBottomSheet',\n unScrollable = 'unScrollable'\n}\n\nexport const UNBottomSheetComponent = () => {\n const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);\n const [height, setHeight] = useState(0);\n\n const [renderingRequest, setRenderingRequest] = useState<string | null>(null);\n const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.onTop);\n\n const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false);\n const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null);\n\n const isAppActive = useAppStateListener();\n\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const listenerAction = (data: string) => {\n setRenderingRequest(data);\n setIsBottomSheetActive(true);\n };\n\n useEffect(() => {\n if (!isAppActive) {\n setIsBottomSheetActive(false);\n }\n }, [isAppActive]);\n\n useEffect(() => {\n if (!webRef.current) return;\n if (renderingRequest) {\n renderingBottomSheetRequest(webRef.current, renderingRequest);\n }\n }, [webRef.current, renderingRequest]);\n\n useEffect(() => {\n if (!isBottomSheetActive) {\n webRef.current && resetHtml(webRef.current);\n setHeight(0);\n setRenderingRequest(null);\n setScrollState(ScrollState.onTop);\n }\n }, [isBottomSheetActive]);\n\n useEffect(() => {\n if (!waitForLoadingNewComponent && newHeightMessage) {\n setWaitForLoadingNewComponent(false);\n setNewHeight(newHeightMessage);\n }\n }, [waitForLoadingNewComponent, newHeightMessage]);\n\n useListenerToBus([{ busEventKey: UnitMessage.UNIT_REQUEST_RENDERING, action: listenerAction }]);\n\n const setNewHeight = (message: WebViewMessage) => {\n if (renderingRequest) {\n const nativePlace = (JSON.parse(renderingRequest) as RequestRenderingData).nativePlace;\n if (nativePlace == 'overFullScreen') {\n const bottomSheetNewHeight = handleHtmlFullHeight(webRef.current, Dimensions.get('window').height);\n setHeight(bottomSheetNewHeight);\n setScrollState(ScrollState.onTop);\n } else {\n setHeight((message.details as HeightEvent).height);\n setScrollState(ScrollState.unScrollable);\n }\n }\n };\n\n const onWebMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case PageMessage.PAGE_HEIGHT:\n renderingRequest && setNewHeightMessage(message);\n break;\n case UnitMessage.UNIT_REQUEST_RENDERING:\n // eslint-disable-next-line no-case-declarations\n const { data } = (message.details as RequestRenderingEvent);\n if (data != renderingRequest) {\n setHeight(0);\n setRenderingRequest(data);\n setWaitForLoadingNewComponent(true);\n setTimeout(() => setWaitForLoadingNewComponent(false), 400);\n }\n break;\n case CardMessage.CARD_STATUS_CHANGED:\n EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card);\n break;\n case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:\n setIsBottomSheetActive(false);\n break;\n case UnitMessage.UNIT_REQUEST_OPEN_LINK:\n // eslint-disable-next-line no-case-declarations\n const { href } = (message.details as RequestOpenLinkEvent);\n Linking.openURL(href);\n break;\n }\n };\n\n const onScrollWebView = (event: any) => {\n if (scrollState === ScrollState.unScrollable) return;\n\n const currY = event.nativeEvent.contentOffset.y;\n\n if (ScrollState.onTop && currY < 5) {\n setScrollState(ScrollState.onlyBottomSheet);\n }\n\n if ( scrollState !== ScrollState.onlyWebView && scrollState === ScrollState.onTop && currY > 5) {\n setScrollState(ScrollState.onlyWebView);\n }\n };\n\n const handleWebViewScroll = () => {\n if (scrollState === ScrollState.unScrollable) return;\n setScrollState(ScrollState.onlyWebView);\n };\n\n return (\n <>\n <View\n pointerEvents={isBottomSheetActive ? undefined : 'none'}\n style={styles.container}\n >\n <BottomSheet\n isOpen={isBottomSheetActive}\n height={height}\n onClose={() => setIsBottomSheetActive(false)}\n onOpen={() => setIsBottomSheetActive(true)}\n handleWebViewScroll={() => handleWebViewScroll()}\n shouldEnableBottomSheetScroll={scrollState !== ScrollState.onlyWebView}\n >\n { isAppActive && (\n <WebComponent\n ref={webRef}\n type={WebComponentType.slot}\n presentationMode={PresentationMode.CoverInjectedHeight}\n script={getBottomSheetScript()}\n onMessage={onWebMessage}\n isScrollable={scrollState === ScrollState.onlyWebView || scrollState === ScrollState.onTop}\n handleScroll={onScrollWebView}\n />)}\n </BottomSheet>\n </View>\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useRef","useState","WebComponent","WebComponentType","Dimensions","Linking","View","BottomSheet","EventBus","PageMessage","UnitMessage","CardMessage","useListenerToBus","getBottomSheetScript","handleHtmlFullHeight","renderingBottomSheetRequest","resetHtml","getStylesObject","PresentationMode","useAppStateListener","UNAddToWalletBottomSheetItem","getAccountActionType","AccountAction","ScrollState","CustomDialog","UNBottomSheetComponent","isBottomSheetActive","setIsBottomSheetActive","height","setHeight","bottomSheetSlotData","setBottomSheetSlotData","requestRenderingEvent","setRequestRenderingEvent","scrollState","setScrollState","onTop","waitForLoadingNewComponent","setWaitForLoadingNewComponent","newHeightMessage","setNewHeightMessage","customDialog","setCustomDialog","isAppActive","styles","webRef","handleRequestRendering","data","handleCloseFlow","current","undefined","setNewHeight","busEventKey","UNIT_REQUEST_RENDERING","action","UNIT_REQUEST_CLOSE_FLOW","message","componentName","account","accountActionType","List","unScrollable","card","addToWallet","nativePlace","bottomSheetNewHeight","get","details","onWebMessage","type","PAGE_HEIGHT","requestRendering","nativeComponent","includes","setTimeout","CARD_STATUS_CHANGED","Instance","event","UNIT_REQUEST_OPEN_LINK","href","openURL","onScrollWebView","currY","nativeEvent","contentOffset","y","onlyBottomSheet","onlyWebView","handleWebViewScroll","renderBottomSheetItem","componentResourceId","slot","CoverInjectedHeight","container"],"sources":["UNBottomSheetComponent.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { Dimensions, Linking, View } from 'react-native';\nimport BottomSheet from '../../helpers/BottomSheet/BottomSheet';\nimport EventBus from '../../helpers/EventBus';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestOpenLinkEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { CardMessage, CardStatusChangedEvent } from '../../messages/webMessages/cardMessage';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getBottomSheetScript, handleHtmlFullHeight, renderingBottomSheetRequest, resetHtml } from './UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNBottomSheetComponent.styles';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport { useAppStateListener } from '../../hooks/useAppStateListener';\nimport { UNAddToWalletBottomSheetItem } from './components/UNAddToWalletBottomSheetItem';\nimport { getAccountActionType } from '../UNAccountComponent/UNAccountComponent.utils';\nimport { AccountAction } from '../UNAccountComponent/UNAccountComponent';\n\nexport enum ScrollState {\n /*\n Web View ScrollState -\n - Initialization:\n 'onTop': for a scrollable webView.\n (onTop means that the webview is onTop of the BottomSheet and we need to recognize the scroll direction).\n Then, it recognize the scroll direction and update the scroll state as needed.\n\n -'unScrollable': for an unscrollable webView\n */\n onTop = 'onTop',\n unScrollable = 'unScrollable',\n\n /*\n These are only for maintain the bottom sheet scrollState (not an initialize scroll state).\n It relates to the current scroll state.\n onlyWebView means that now the scroll is on webview (only).\n onlyBottomSheet means that now the scroll is on bottomSheet (only).\n */\n onlyWebView = 'webViewScroll',\n onlyBottomSheet = 'onlyBottomSheet',\n}\n\nexport type BottomSheetSlotData = {\n // The data that rendered by the web view\n componentName?: WebComponentType,\n componentResourceId?: string,\n requestRenderingEvent: RequestRenderingEvent\n}\n\nenum CustomDialog {\n addToWallet\n}\n\nexport const UNBottomSheetComponent = () => {\n const [isBottomSheetActive, setIsBottomSheetActive] = useState(false);\n const [height, setHeight] = useState(0);\n\n const [bottomSheetSlotData, setBottomSheetSlotData] = useState<BottomSheetSlotData>();\n const [requestRenderingEvent, setRequestRenderingEvent] = useState<RequestRenderingEvent>();\n const [scrollState, setScrollState] = useState<ScrollState>(ScrollState.onTop);\n\n const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false);\n const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null);\n\n const [customDialog, setCustomDialog] = useState<CustomDialog | null>(null);\n\n const isAppActive = useAppStateListener();\n\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const handleRequestRendering = (data: BottomSheetSlotData) => {\n setBottomSheetSlotData(data);\n setIsBottomSheetActive(true);\n setRequestRenderingEvent(data.requestRenderingEvent);\n };\n\n const handleCloseFlow = () => {\n setIsBottomSheetActive(false);\n };\n\n useEffect(() => {\n setRequestRenderingEvent(bottomSheetSlotData?.requestRenderingEvent);\n }, [bottomSheetSlotData]);\n\n useEffect(() => {\n if (!webRef.current) return;\n if (requestRenderingEvent) {\n renderingBottomSheetRequest(webRef.current, requestRenderingEvent);\n }\n }, [webRef.current, requestRenderingEvent]);\n\n useEffect(() => {\n if (!isBottomSheetActive) {\n webRef.current && resetHtml(webRef.current);\n setHeight(0);\n setRequestRenderingEvent(undefined);\n setScrollState(ScrollState.onTop);\n setCustomDialog(null);\n }\n }, [isBottomSheetActive]);\n\n useEffect(() => {\n if (!waitForLoadingNewComponent && newHeightMessage) {\n setWaitForLoadingNewComponent(false);\n setNewHeight(newHeightMessage);\n }\n }, [waitForLoadingNewComponent, newHeightMessage]);\n\n useListenerToBus([\n { busEventKey: UnitMessage.UNIT_REQUEST_RENDERING, action: handleRequestRendering },\n { busEventKey: UnitMessage.UNIT_REQUEST_CLOSE_FLOW, action: handleCloseFlow }\n ]);\n\n const setNewHeight = (message: WebViewMessage) => {\n if (!requestRenderingEvent) return;\n switch (bottomSheetSlotData?.componentName) {\n case WebComponentType.account: {\n const accountActionType = getAccountActionType(requestRenderingEvent);\n setScrollState(\n accountActionType === AccountAction.List ? ScrollState.onTop : ScrollState.unScrollable\n );\n break;\n }\n case WebComponentType.card: {\n if (customDialog === CustomDialog.addToWallet) {\n setScrollState(ScrollState.unScrollable);\n } else {\n setScrollState(ScrollState.onTop);\n }\n break;\n }\n default: {\n const nativePlace = requestRenderingEvent?.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n setScrollState(ScrollState.onTop);\n } else {\n setScrollState(ScrollState.unScrollable);\n }\n }\n }\n const nativePlace = requestRenderingEvent?.data.nativePlace;\n if (nativePlace == 'overFullScreen') {\n const bottomSheetNewHeight = handleHtmlFullHeight(webRef.current, Dimensions.get('window').height);\n setHeight(bottomSheetNewHeight);\n } else {\n setHeight((message.details as HeightEvent).height);\n }\n };\n\n const onWebMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case PageMessage.PAGE_HEIGHT:\n requestRenderingEvent && setNewHeightMessage(message);\n break;\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const requestRendering = (message.details as RequestRenderingEvent);\n if (requestRendering.data.nativeComponent != requestRenderingEvent?.data?.nativeComponent) {\n if (requestRendering.data.nativeComponent.includes('action=AddToWallet')) {\n setCustomDialog(CustomDialog.addToWallet);\n }\n\n setHeight(0);\n setRequestRenderingEvent(requestRendering);\n setWaitForLoadingNewComponent(true);\n setTimeout(() => setWaitForLoadingNewComponent(false), 400);\n }\n break;\n }\n case CardMessage.CARD_STATUS_CHANGED:\n EventBus.Instance.event(CardMessage.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card);\n break;\n case UnitMessage.UNIT_REQUEST_CLOSE_FLOW:\n handleCloseFlow();\n break;\n case UnitMessage.UNIT_REQUEST_OPEN_LINK:\n // eslint-disable-next-line no-case-declarations\n const { href } = (message.details as RequestOpenLinkEvent);\n Linking.openURL(href);\n break;\n }\n };\n\n const onScrollWebView = (event: any) => {\n if (scrollState === ScrollState.unScrollable) return;\n\n const currY = event.nativeEvent.contentOffset.y;\n\n if (ScrollState.onTop && currY < 5) {\n setScrollState(ScrollState.onlyBottomSheet);\n }\n\n if (scrollState !== ScrollState.onlyWebView && scrollState === ScrollState.onTop && currY > 5) {\n setScrollState(ScrollState.onlyWebView);\n }\n };\n\n const handleWebViewScroll = () => {\n if (scrollState === ScrollState.unScrollable) return;\n setScrollState(ScrollState.onlyWebView);\n };\n\n const renderBottomSheetItem = () => {\n switch (customDialog) {\n case CustomDialog.addToWallet:\n return <UNAddToWalletBottomSheetItem renderingRequest={requestRenderingEvent} cardId={bottomSheetSlotData?.componentResourceId} />;\n default:\n return (\n <WebComponent\n ref={webRef}\n type={WebComponentType.slot}\n presentationMode={PresentationMode.CoverInjectedHeight}\n script={getBottomSheetScript()}\n onMessage={onWebMessage}\n isScrollable={scrollState === ScrollState.onlyWebView || scrollState === ScrollState.onTop}\n handleScroll={onScrollWebView}\n />\n );\n }\n };\n\n return (\n <>\n <View\n pointerEvents={isBottomSheetActive ? undefined : 'none'}\n style={styles.container}\n >\n <BottomSheet\n isOpen={isBottomSheetActive}\n height={height}\n onClose={() => setIsBottomSheetActive(false)}\n onOpen={() => setIsBottomSheetActive(true)}\n handleWebViewScroll={() => handleWebViewScroll()}\n shouldEnableBottomSheetScroll={scrollState !== ScrollState.onlyWebView}\n >\n {isAppActive && renderBottomSheetItem()}\n </BottomSheet >\n </View >\n </>\n );\n};\n"],"mappings":"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"}
@@ -1,16 +1,12 @@
1
- import { UnitMessage } from '../../messages/webMessages/unitMessages';
2
- import { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from './UNBottomSheetComponent.constants';
1
+ import { LISTENERS } from './../../scripts/html/bodyScript';
2
+ import { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from './UNBottomSheetComponent.constants';
3
3
  export const getBottomSheetScript = () => {
4
- return `
5
- window.addEventListener("${UnitMessage.UNIT_REQUEST_REFRESH}", (e) => {
6
- postMessageToSDK({ type: "${UnitMessage.UNIT_REQUEST_REFRESH}", details: e.detail })
7
- });
8
- `;
4
+ return LISTENERS.requestRefresh;
9
5
  };
10
6
  export const renderingBottomSheetRequest = (currentWebView, renderingRequest) => {
11
7
  currentWebView === null || currentWebView === void 0 ? void 0 : currentWebView.injectJavaScript(`
12
8
  document.activeElement && document.activeElement.blur();
13
- dispatchRenderingEvent('${renderingRequest}');
9
+ dispatchRenderingEvent('${JSON.stringify(renderingRequest.data)}');
14
10
  `);
15
11
  };
16
12
  export const resetHtml = currentWebView => {
@@ -20,7 +16,7 @@ export const resetHtml = currentWebView => {
20
16
  `);
21
17
  };
22
18
  export const handleHtmlFullHeight = (currentWebView, windowHeight) => {
23
- const bottomSheetHeight = windowHeight * BOTTOM_SHEET_MAX_PRECANTAGE_SIZE;
19
+ const bottomSheetHeight = windowHeight * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE;
24
20
  currentWebView && (currentWebView === null || currentWebView === void 0 ? void 0 : currentWebView.injectJavaScript(`
25
21
  document.getElementById('webViewContainer').style.height = '${bottomSheetHeight}px';
26
22
  `));
@@ -1 +1 @@
1
- {"version":3,"names":["UnitMessage","BOTTOM_SHEET_MAX_PRECANTAGE_SIZE","getBottomSheetScript","UNIT_REQUEST_REFRESH","renderingBottomSheetRequest","currentWebView","renderingRequest","injectJavaScript","resetHtml","handleHtmlFullHeight","windowHeight","bottomSheetHeight"],"sources":["UNBottomSheetComponent.utils.ts"],"sourcesContent":["import type WebView from 'react-native-webview';\nimport { UnitMessage } from '../../messages/webMessages/unitMessages';\nimport { BOTTOM_SHEET_MAX_PRECANTAGE_SIZE } from './UNBottomSheetComponent.constants';\n\nexport const getBottomSheetScript = () => {\n return `\n window.addEventListener(\"${UnitMessage.UNIT_REQUEST_REFRESH}\", (e) => {\n postMessageToSDK({ type: \"${UnitMessage.UNIT_REQUEST_REFRESH}\", details: e.detail })\n });\n `;\n};\n\nexport const renderingBottomSheetRequest = (currentWebView: WebView, renderingRequest: string) => {\n currentWebView?.injectJavaScript(`\n document.activeElement && document.activeElement.blur();\n dispatchRenderingEvent('${renderingRequest}');\n `);\n};\n\nexport const resetHtml = (currentWebView: WebView) => {\n currentWebView?.injectJavaScript(`\n document.activeElement && document.activeElement.blur();\n document.getElementById('webViewContainer').style.height = null;\n `);\n};\n\nexport const handleHtmlFullHeight = (currentWebView: WebView | null, windowHeight: number) => {\n const bottomSheetHeight = windowHeight * BOTTOM_SHEET_MAX_PRECANTAGE_SIZE;\n currentWebView && currentWebView?.injectJavaScript(`\n document.getElementById('webViewContainer').style.height = '${bottomSheetHeight}px';\n `);\n\n return bottomSheetHeight;\n};\n"],"mappings":"AACA,SAASA,WAAT,QAA4B,yCAA5B;AACA,SAASC,gCAAT,QAAiD,oCAAjD;AAEA,OAAO,MAAMC,oBAAoB,GAAG,MAAM;EACxC,OAAQ;AACV,+BAA+BF,WAAW,CAACG,oBAAqB;AAChE,kCAAkCH,WAAW,CAACG,oBAAqB;AACnE;AACA,GAJE;AAKD,CANM;AAQP,OAAO,MAAMC,2BAA2B,GAAG,CAACC,cAAD,EAA0BC,gBAA1B,KAAuD;EAChGD,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEE,gBAAhB,CAAkC;AACpC;AACA,8BAA8BD,gBAAiB;AAC/C,GAHE;AAID,CALM;AAOP,OAAO,MAAME,SAAS,GAAIH,cAAD,IAA6B;EACpDA,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEE,gBAAhB,CAAkC;AACpC;AACA;AACA,GAHE;AAID,CALM;AAOP,OAAO,MAAME,oBAAoB,GAAG,CAACJ,cAAD,EAAiCK,YAAjC,KAA0D;EAC5F,MAAMC,iBAAiB,GAAGD,YAAY,GAAGT,gCAAzC;EACAI,cAAc,KAAIA,cAAJ,aAAIA,cAAJ,uBAAIA,cAAc,CAAEE,gBAAhB,CAAkC;AACtD,kEAAkEI,iBAAkB;AACpF,GAFoB,CAAJ,CAAd;EAIA,OAAOA,iBAAP;AACD,CAPM"}
1
+ {"version":3,"names":["LISTENERS","BOTTOM_SHEET_MAX_PERCENTAGE_SIZE","getBottomSheetScript","requestRefresh","renderingBottomSheetRequest","currentWebView","renderingRequest","injectJavaScript","JSON","stringify","data","resetHtml","handleHtmlFullHeight","windowHeight","bottomSheetHeight"],"sources":["UNBottomSheetComponent.utils.ts"],"sourcesContent":["import { LISTENERS } from './../../scripts/html/bodyScript';\nimport type WebView from 'react-native-webview';\nimport { BOTTOM_SHEET_MAX_PERCENTAGE_SIZE } from './UNBottomSheetComponent.constants';\nimport type { RequestRenderingEvent } from '../../messages/webMessages/unitMessages';\n\nexport const getBottomSheetScript = () => {\n return LISTENERS.requestRefresh;\n};\n\nexport const renderingBottomSheetRequest = (currentWebView: WebView, renderingRequest: RequestRenderingEvent) => {\n currentWebView?.injectJavaScript(`\n document.activeElement && document.activeElement.blur();\n dispatchRenderingEvent('${JSON.stringify(renderingRequest.data)}');\n `);\n};\n\nexport const resetHtml = (currentWebView: WebView) => {\n currentWebView?.injectJavaScript(`\n document.activeElement && document.activeElement.blur();\n document.getElementById('webViewContainer').style.height = null;\n `);\n};\n\nexport const handleHtmlFullHeight = (currentWebView: WebView | null, windowHeight: number) => {\n const bottomSheetHeight = windowHeight * BOTTOM_SHEET_MAX_PERCENTAGE_SIZE;\n currentWebView && currentWebView?.injectJavaScript(`\n document.getElementById('webViewContainer').style.height = '${bottomSheetHeight}px';\n `);\n\n return bottomSheetHeight;\n};\n"],"mappings":"AAAA,SAASA,SAAT,QAA0B,iCAA1B;AAEA,SAASC,gCAAT,QAAiD,oCAAjD;AAGA,OAAO,MAAMC,oBAAoB,GAAG,MAAM;EACxC,OAAOF,SAAS,CAACG,cAAjB;AACD,CAFM;AAIP,OAAO,MAAMC,2BAA2B,GAAG,CAACC,cAAD,EAA0BC,gBAA1B,KAAsE;EAC/GD,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEE,gBAAhB,CAAkC;AACpC;AACA,8BAA8BC,IAAI,CAACC,SAAL,CAAeH,gBAAgB,CAACI,IAAhC,CAAsC;AACpE,GAHE;AAID,CALM;AAOP,OAAO,MAAMC,SAAS,GAAIN,cAAD,IAA6B;EACpDA,cAAc,SAAd,IAAAA,cAAc,WAAd,YAAAA,cAAc,CAAEE,gBAAhB,CAAkC;AACpC;AACA;AACA,GAHE;AAID,CALM;AAOP,OAAO,MAAMK,oBAAoB,GAAG,CAACP,cAAD,EAAiCQ,YAAjC,KAA0D;EAC5F,MAAMC,iBAAiB,GAAGD,YAAY,GAAGZ,gCAAzC;EACAI,cAAc,KAAIA,cAAJ,aAAIA,cAAJ,uBAAIA,cAAc,CAAEE,gBAAhB,CAAkC;AACtD,kEAAkEO,iBAAkB;AACpF,GAFoB,CAAJ,CAAd;EAIA,OAAOA,iBAAP;AACD,CAPM"}
@@ -0,0 +1,68 @@
1
+ import React, { useEffect, useRef, useState } from 'react';
2
+ import { CardAddToWalletStatus, CardNativeMessage } from '../../../messages/nativeMessages/cardMessage';
3
+ import EventBus from '../../../helpers/EventBus';
4
+ import { PresentationMode } from '../../../scripts/html/bodyHtml';
5
+ import { WebComponent, WebComponentType } from '../../../webComponent/WebComponent';
6
+ import { renderingBottomSheetRequest } from '../UNBottomSheetComponent.utils';
7
+ import { getStylesObject } from './UNAddToWalletBottomSheetItem.styles';
8
+ import { ActivityIndicator } from 'react-native';
9
+ import { useListenerToBus } from '../../../hooks/listenerToBus';
10
+ import UnitAddToWalletButtonView from '../../../nativeComponent/UnitAddToWalletButton';
11
+ export const UNAddToWalletBottomSheetItem = props => {
12
+ const styles = getStylesObject();
13
+ const webRef = useRef(null);
14
+ const {
15
+ renderingRequest,
16
+ cardId
17
+ } = props;
18
+ const [addToWalletStatus, setAddToWalletStatus] = useState(CardAddToWalletStatus.pending);
19
+ useEffect(() => {
20
+ if (!cardId) return;
21
+ const event = {
22
+ cardId
23
+ };
24
+ EventBus.Instance.event(CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, event);
25
+ }, [cardId]);
26
+ useEffect(() => {
27
+ if (!webRef.current) return;
28
+ if (addToWalletStatus === CardAddToWalletStatus.pending) return;
29
+ const isCardInWallet = addToWalletStatus === CardAddToWalletStatus.addedToWallet;
30
+ webRef.current.injectJavaScript(`window.UnitMobileSDKConfig["isCardInWallet"] = ${isCardInWallet}`);
31
+
32
+ if (renderingRequest) {
33
+ renderingBottomSheetRequest(webRef.current, renderingRequest);
34
+ }
35
+ }, [webRef.current, renderingRequest, addToWalletStatus]);
36
+
37
+ const gotCardWalletStatus = data => {
38
+ if (data != null) {
39
+ setAddToWalletStatus(data.status);
40
+ }
41
+ };
42
+
43
+ useListenerToBus([{
44
+ busEventKey: CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS,
45
+ action: gotCardWalletStatus
46
+ }]);
47
+
48
+ const handleAddToWalletClicked = () => {
49
+ if (!cardId) return;
50
+ const startPushProvisioningEvent = {
51
+ cardId
52
+ };
53
+ EventBus.Instance.event(CardNativeMessage.CARD_START_PUSH_PROVISIONING, startPushProvisioningEvent);
54
+ };
55
+
56
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(WebComponent, {
57
+ ref: webRef,
58
+ type: WebComponentType.slot,
59
+ presentationMode: PresentationMode.CoverInjectedHeight,
60
+ isScrollable: false
61
+ }), addToWalletStatus === CardAddToWalletStatus.pending && /*#__PURE__*/React.createElement(ActivityIndicator, {
62
+ style: styles.loader
63
+ }), addToWalletStatus === CardAddToWalletStatus.readyToProvisioning && /*#__PURE__*/React.createElement(UnitAddToWalletButtonView, {
64
+ style: styles.addToWalletButton,
65
+ onAddToWalletClicked: handleAddToWalletClicked
66
+ }));
67
+ };
68
+ //# sourceMappingURL=UNAddToWalletBottomSheetItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useRef","useState","CardAddToWalletStatus","CardNativeMessage","EventBus","PresentationMode","WebComponent","WebComponentType","renderingBottomSheetRequest","getStylesObject","ActivityIndicator","useListenerToBus","UnitAddToWalletButtonView","UNAddToWalletBottomSheetItem","props","styles","webRef","renderingRequest","cardId","addToWalletStatus","setAddToWalletStatus","pending","event","Instance","CARD_GET_ADD_TO_WALLET_STATUS","current","isCardInWallet","addedToWallet","injectJavaScript","gotCardWalletStatus","data","status","busEventKey","CARD_UPDATE_ADD_TO_WALLET_STATUS","action","handleAddToWalletClicked","startPushProvisioningEvent","CARD_START_PUSH_PROVISIONING","slot","CoverInjectedHeight","loader","readyToProvisioning","addToWalletButton"],"sources":["UNAddToWalletBottomSheetItem.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport type WebView from 'react-native-webview';\nimport { CardAddToWalletStatus, CardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../../messages/nativeMessages/cardMessage';\nimport EventBus from '../../../helpers/EventBus';\nimport { PresentationMode } from '../../../scripts/html/bodyHtml';\nimport { WebComponent, WebComponentType } from '../../../webComponent/WebComponent';\nimport { renderingBottomSheetRequest } from '../UNBottomSheetComponent.utils';\nimport { getStylesObject } from './UNAddToWalletBottomSheetItem.styles';\nimport { ActivityIndicator } from 'react-native';\nimport { useListenerToBus } from '../../../hooks/listenerToBus';\nimport type { RequestRenderingEvent } from '../../../messages/webMessages/unitMessages';\nimport UnitAddToWalletButtonView from '../../../nativeComponent/UnitAddToWalletButton';\n\nexport interface UNAddToWalletBottomSheetItemProps {\n renderingRequest?: RequestRenderingEvent\n cardId?: string\n}\n\nexport const UNAddToWalletBottomSheetItem = (props: UNAddToWalletBottomSheetItemProps) => {\n const styles = getStylesObject();\n\n const webRef = useRef<WebView>(null);\n\n const { renderingRequest, cardId } = props;\n\n const [addToWalletStatus, setAddToWalletStatus] = useState<CardAddToWalletStatus>(CardAddToWalletStatus.pending);\n\n useEffect(() => {\n if (!cardId) return;\n const event: CardGetAddToWalletStatusEvent = { cardId };\n EventBus.Instance.event(CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, event);\n }, [cardId]);\n\n useEffect(() => {\n if (!webRef.current) return;\n if (addToWalletStatus === CardAddToWalletStatus.pending) return;\n\n const isCardInWallet = addToWalletStatus === CardAddToWalletStatus.addedToWallet;\n webRef.current.injectJavaScript(`window.UnitMobileSDKConfig[\"isCardInWallet\"] = ${isCardInWallet}`);\n\n if (renderingRequest) {\n renderingBottomSheetRequest(webRef.current, renderingRequest);\n }\n }, [webRef.current, renderingRequest, addToWalletStatus]);\n\n const gotCardWalletStatus = (data?: CardAddToWalletStatusEvent) => {\n if (data != null) {\n setAddToWalletStatus(data.status);\n }\n };\n\n useListenerToBus([\n { busEventKey: CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, action: gotCardWalletStatus },\n ]);\n\n const handleAddToWalletClicked = () => {\n if (!cardId) return;\n const startPushProvisioningEvent: CardStartPushProvisioningEvent = { cardId };\n EventBus.Instance.event(CardNativeMessage.CARD_START_PUSH_PROVISIONING, startPushProvisioningEvent);\n };\n\n return (\n <>\n <WebComponent\n ref={webRef}\n type={WebComponentType.slot}\n presentationMode={PresentationMode.CoverInjectedHeight}\n isScrollable={false}\n />\n {addToWalletStatus === CardAddToWalletStatus.pending && <ActivityIndicator style={styles.loader} />}\n {addToWalletStatus === CardAddToWalletStatus.readyToProvisioning && <UnitAddToWalletButtonView style={styles.addToWalletButton} onAddToWalletClicked={handleAddToWalletClicked} />}\n </>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { StyleSheet, Platform } from 'react-native';
2
+ export const getStylesObject = () => {
3
+ return StyleSheet.create({
4
+ addToWalletButton: {
5
+ position: 'absolute',
6
+ height: Platform.OS === 'ios' ? 48 : 55,
7
+ bottom: 32,
8
+ left: 0,
9
+ right: 0,
10
+ marginHorizontal: 24
11
+ },
12
+ loader: {
13
+ position: 'absolute',
14
+ top: 0,
15
+ bottom: 0,
16
+ left: 0,
17
+ right: 0
18
+ }
19
+ });
20
+ };
21
+ //# sourceMappingURL=UNAddToWalletBottomSheetItem.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","Platform","getStylesObject","create","addToWalletButton","position","height","OS","bottom","left","right","marginHorizontal","loader","top"],"sources":["UNAddToWalletBottomSheetItem.styles.ts"],"sourcesContent":["import { StyleSheet, Platform } from 'react-native';\n\nexport const getStylesObject = () => {\n return StyleSheet.create({\n addToWalletButton: {\n position: 'absolute',\n height: Platform.OS === 'ios' ? 48 : 55,\n bottom: 32,\n left: 0,\n right: 0,\n marginHorizontal: 24\n },\n loader: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n }\n });\n};\n"],"mappings":"AAAA,SAASA,UAAT,EAAqBC,QAArB,QAAqC,cAArC;AAEA,OAAO,MAAMC,eAAe,GAAG,MAAM;EACnC,OAAOF,UAAU,CAACG,MAAX,CAAkB;IACvBC,iBAAiB,EAAE;MACjBC,QAAQ,EAAE,UADO;MAEjBC,MAAM,EAAEL,QAAQ,CAACM,EAAT,KAAgB,KAAhB,GAAwB,EAAxB,GAA6B,EAFpB;MAGjBC,MAAM,EAAE,EAHS;MAIjBC,IAAI,EAAE,CAJW;MAKjBC,KAAK,EAAE,CALU;MAMjBC,gBAAgB,EAAE;IAND,CADI;IASvBC,MAAM,EAAE;MACNP,QAAQ,EAAE,UADJ;MAENQ,GAAG,EAAE,CAFC;MAGNL,MAAM,EAAE,CAHF;MAINC,IAAI,EAAE,CAJA;MAKNC,KAAK,EAAE;IALD;EATe,CAAlB,CAAP;AAiBD,CAlBM"}
@@ -1,17 +1,19 @@
1
- import React, { useEffect, useRef, useState } from 'react';
1
+ import React, { useRef, useState } from 'react';
2
2
  import { Dimensions, View } from 'react-native';
3
3
  import { PageMessage } from '../../messages/webMessages/pageMessage';
4
4
  import { UnitMessage } from '../../messages/webMessages/unitMessages';
5
5
  import EventBus from '../../helpers/EventBus';
6
6
  import { WebComponent, WebComponentType } from '../../webComponent/WebComponent';
7
7
  import { useListenerToBus } from '../../hooks/listenerToBus';
8
- import { getCardParams, getCardScript, injectRefreshEventIfNeeded } from './UNCardComponent.utils';
8
+ import { getCardParams, getCardScript, injectRefreshEventIfNeeded, launchStartCardProvisioning } from './UNCardComponent.utils';
9
9
  import { PresentationMode } from '../../scripts/html/bodyHtml';
10
10
  import { CardMessage } from '../../messages/webMessages/cardMessage';
11
+ import { launchGetWallets } from './UNCardComponent.utils';
12
+ import { CardAddToWalletErrors, CardNativeMessage } from '../../messages/nativeMessages/cardMessage';
11
13
  export const UNCardComponent = props => {
12
14
  const [height, setHeight] = useState(0);
13
- const [requestRefreshEvent, setRequestRefreshEvent] = useState(null);
14
15
  const windowWidth = Dimensions.get('window').width;
16
+ const walletRef = useRef(null);
15
17
  const webRef = useRef(null);
16
18
 
17
19
  const cardStatusChanged = card => {
@@ -21,7 +23,17 @@ export const UNCardComponent = props => {
21
23
  };
22
24
 
23
25
  const requestRefresh = data => {
24
- setRequestRefreshEvent(data);
26
+ injectRefreshEventIfNeeded(webRef.current, data, props.cardId);
27
+ };
28
+
29
+ const startPushProvisioning = async data => {
30
+ if (data.cardId !== props.cardId) return;
31
+ onAddToWalletClicked();
32
+ };
33
+
34
+ const getAddToWalletStatus = data => {
35
+ if (data.cardId !== props.cardId) return;
36
+ getWallets();
25
37
  };
26
38
 
27
39
  useListenerToBus([{
@@ -30,20 +42,63 @@ export const UNCardComponent = props => {
30
42
  }, {
31
43
  busEventKey: UnitMessage.UNIT_REQUEST_REFRESH,
32
44
  action: requestRefresh
45
+ }, {
46
+ busEventKey: CardNativeMessage.CARD_START_PUSH_PROVISIONING,
47
+ action: startPushProvisioning
48
+ }, {
49
+ busEventKey: CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS,
50
+ action: getAddToWalletStatus
33
51
  }]);
34
- useEffect(() => {
35
- injectRefreshEventIfNeeded(webRef.current, requestRefreshEvent, props.cardId);
36
- }, [requestRefreshEvent]);
37
52
 
38
53
  const handleMessage = message => {
54
+ if (!message || !message.details) return;
55
+
39
56
  switch (message.type) {
40
57
  case UnitMessage.UNIT_REQUEST_RENDERING:
41
- EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, message.details.data);
42
- break;
58
+ {
59
+ const event = {
60
+ componentName: WebComponentType.card,
61
+ componentResourceId: props.cardId,
62
+ requestRenderingEvent: message.details
63
+ };
64
+ EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);
65
+ break;
66
+ }
43
67
 
44
68
  case PageMessage.PAGE_HEIGHT:
45
69
  setHeight(message.details.height);
46
70
  break;
71
+
72
+ case UnitMessage.UNIT_ON_LOAD:
73
+ props.onLoad && props.onLoad(message.details);
74
+ break;
75
+ }
76
+ };
77
+
78
+ const getWallets = async () => {
79
+ try {
80
+ const walletResponse = await launchGetWallets(props.customerToken, props.cardId, props.pushProvisioningModule);
81
+ if (!walletResponse) return;
82
+ walletRef.current = walletResponse;
83
+ const walletStatus = {
84
+ status: walletResponse.status
85
+ };
86
+ EventBus.Instance.event(CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, walletStatus);
87
+ } catch (error) {
88
+ console.error(error);
89
+ }
90
+ };
91
+
92
+ const onAddToWalletClicked = async () => {
93
+ try {
94
+ await launchStartCardProvisioning(props.pushProvisioningModule, walletRef.current);
95
+ } catch (error) {
96
+ if (error instanceof Error) {
97
+ const parsedError = JSON.parse(error.message);
98
+ if (parsedError.code === CardAddToWalletErrors.closedNativeWalletScreen) return;
99
+ }
100
+
101
+ console.log(error);
47
102
  }
48
103
  };
49
104
 
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","PresentationMode","CardMessage","UNCardComponent","props","height","setHeight","requestRefreshEvent","setRequestRefreshEvent","windowWidth","get","width","webRef","cardStatusChanged","card","onStatusChanged","requestRefresh","data","busEventKey","CARD_STATUS_CHANGED","action","UNIT_REQUEST_REFRESH","current","cardId","handleMessage","message","type","UNIT_REQUEST_RENDERING","Instance","event","details","PAGE_HEIGHT","Default","theme"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Dimensions, View } from 'react-native';\nimport type WebView from 'react-native-webview';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport EventBus from '../../helpers/EventBus';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getCardParams, getCardScript, injectRefreshEventIfNeeded } from './UNCardComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { UNCardData } from '../../sharedTypes';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\n\nexport interface UNCardComponentProps {\n cardId: string;\n customerToken: string;\n theme?: string;\n onStatusChanged?: (card: UNCardData) => void;\n}\n\nexport const UNCardComponent = (props: UNCardComponentProps) => {\n const [height, setHeight] = useState(0);\n const [requestRefreshEvent, setRequestRefreshEvent] = useState<RequestRefreshEvent | null>(null);\n const windowWidth = Dimensions.get('window').width;\n\n const webRef = useRef<WebView>(null);\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n setRequestRefreshEvent(data);\n };\n\n useListenerToBus([\n { busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged },\n { busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh },\n ]);\n\n useEffect(() => {\n injectRefreshEventIfNeeded(webRef.current, requestRefreshEvent, props.cardId);\n }, [requestRefreshEvent]);\n\n const handleMessage = (message: WebViewMessage) => {\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING:\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, (message.details as RequestRenderingEvent).data);\n break;\n case PageMessage.PAGE_HEIGHT:\n setHeight((message.details as HeightEvent).height);\n break;\n }\n };\n\n return (\n <View style={{ height }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.card}\n presentationMode={PresentationMode.Default}\n params={getCardParams(props)}\n theme={props.theme}\n script={getCardScript()}\n onMessage={message => handleMessage(message)}\n width={windowWidth}\n isScrollable={false}\n />\n </View>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,MAA3B,EAAmCC,QAAnC,QAAmD,OAAnD;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,SAAsBC,WAAtB,QAAyC,wCAAzC;AACA,SAAqDC,WAArD,QAAwE,yCAAxE;AACA,OAAOC,QAAP,MAAqB,wBAArB;AACA,SAASC,YAAT,EAAuBC,gBAAvB,QAA+C,iCAA/C;AACA,SAASC,gBAAT,QAAiC,2BAAjC;AAEA,SAASC,aAAT,EAAwBC,aAAxB,EAAuCC,0BAAvC,QAAyE,yBAAzE;AACA,SAASC,gBAAT,QAAiC,6BAAjC;AAEA,SAASC,WAAT,QAA4B,wCAA5B;AASA,OAAO,MAAMC,eAAe,GAAIC,KAAD,IAAiC;EAC9D,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsBjB,QAAQ,CAAC,CAAD,CAApC;EACA,MAAM,CAACkB,mBAAD,EAAsBC,sBAAtB,IAAgDnB,QAAQ,CAA6B,IAA7B,CAA9D;EACA,MAAMoB,WAAW,GAAGnB,UAAU,CAACoB,GAAX,CAAe,QAAf,EAAyBC,KAA7C;EAEA,MAAMC,MAAM,GAAGxB,MAAM,CAAU,IAAV,CAArB;;EAEA,MAAMyB,iBAAiB,GAAIC,IAAD,IAAsB;IAC9C,IAAIV,KAAK,CAACW,eAAV,EAA2B;MACzBX,KAAK,CAACW,eAAN,CAAsBD,IAAtB;IACD;EACF,CAJD;;EAMA,MAAME,cAAc,GAAIC,IAAD,IAA+B;IACpDT,sBAAsB,CAACS,IAAD,CAAtB;EACD,CAFD;;EAIApB,gBAAgB,CAAC,CACf;IAAEqB,WAAW,EAAEhB,WAAW,CAACiB,mBAA3B;IAAgDC,MAAM,EAAEP;EAAxD,CADe,EAEf;IAAEK,WAAW,EAAEzB,WAAW,CAAC4B,oBAA3B;IAAiDD,MAAM,EAAEJ;EAAzD,CAFe,CAAD,CAAhB;EAKA7B,SAAS,CAAC,MAAM;IACda,0BAA0B,CAACY,MAAM,CAACU,OAAR,EAAiBf,mBAAjB,EAAsCH,KAAK,CAACmB,MAA5C,CAA1B;EACD,CAFQ,EAEN,CAAChB,mBAAD,CAFM,CAAT;;EAIA,MAAMiB,aAAa,GAAIC,OAAD,IAA6B;IACjD,QAAQA,OAAO,CAACC,IAAhB;MACE,KAAKjC,WAAW,CAACkC,sBAAjB;QACEjC,QAAQ,CAACkC,QAAT,CAAkBC,KAAlB,CAAwBpC,WAAW,CAACkC,sBAApC,EAA6DF,OAAO,CAACK,OAAT,CAA2Cb,IAAvG;QACA;;MACF,KAAKzB,WAAW,CAACuC,WAAjB;QACEzB,SAAS,CAAEmB,OAAO,CAACK,OAAT,CAAiCzB,MAAlC,CAAT;QACA;IANJ;EAQD,CATD;;EAWA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE;MAAEA;IAAF;EAAb,gBACE,oBAAC,YAAD;IACE,GAAG,EAAEO,MADP;IAEE,IAAI,EAAEhB,gBAAgB,CAACkB,IAFzB;IAGE,gBAAgB,EAAEb,gBAAgB,CAAC+B,OAHrC;IAIE,MAAM,EAAElC,aAAa,CAACM,KAAD,CAJvB;IAKE,KAAK,EAAEA,KAAK,CAAC6B,KALf;IAME,MAAM,EAAElC,aAAa,EANvB;IAOE,SAAS,EAAE0B,OAAO,IAAID,aAAa,CAACC,OAAD,CAPrC;IAQE,KAAK,EAAEhB,WART;IASE,YAAY,EAAE;EAThB,EADF,CADF;AAeD,CApDM"}
1
+ {"version":3,"names":["React","useRef","useState","Dimensions","View","PageMessage","UnitMessage","EventBus","WebComponent","WebComponentType","useListenerToBus","getCardParams","getCardScript","injectRefreshEventIfNeeded","launchStartCardProvisioning","PresentationMode","CardMessage","launchGetWallets","CardAddToWalletErrors","CardNativeMessage","UNCardComponent","props","height","setHeight","windowWidth","get","width","walletRef","webRef","cardStatusChanged","card","onStatusChanged","requestRefresh","data","current","cardId","startPushProvisioning","onAddToWalletClicked","getAddToWalletStatus","getWallets","busEventKey","CARD_STATUS_CHANGED","action","UNIT_REQUEST_REFRESH","CARD_START_PUSH_PROVISIONING","CARD_GET_ADD_TO_WALLET_STATUS","handleMessage","message","details","type","UNIT_REQUEST_RENDERING","event","componentName","componentResourceId","requestRenderingEvent","Instance","PAGE_HEIGHT","UNIT_ON_LOAD","onLoad","walletResponse","customerToken","pushProvisioningModule","walletStatus","status","CARD_UPDATE_ADD_TO_WALLET_STATUS","error","console","Error","parsedError","JSON","parse","code","closedNativeWalletScreen","log","Default","theme"],"sources":["UNCardComponent.tsx"],"sourcesContent":["import React, { useRef, useState } from 'react';\nimport { Dimensions, NativeModule, View } from 'react-native';\nimport type WebView from 'react-native-webview';\nimport { HeightEvent, PageMessage } from '../../messages/webMessages/pageMessage';\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\nimport EventBus from '../../helpers/EventBus';\nimport { WebComponent, WebComponentType } from '../../webComponent/WebComponent';\nimport { useListenerToBus } from '../../hooks/listenerToBus';\nimport type { WebViewMessage } from '../../messages/webMessages';\nimport { getCardParams, getCardScript, injectRefreshEventIfNeeded, launchStartCardProvisioning } from './UNCardComponent.utils';\nimport { PresentationMode } from '../../scripts/html/bodyHtml';\nimport type { ResponseUnitOnLoadEvent, UNCardData } from '../../sharedTypes';\nimport { CardMessage } from '../../messages/webMessages/cardMessage';\nimport { launchGetWallets } from './UNCardComponent.utils';\nimport type { NativeModules } from 'react-native';\nimport type { UNWallet } from 'src/sharedTypes/wallet.types';\nimport { CardAddToWalletErrors, CardAddToWalletStatusEvent, CardGetAddToWalletStatusEvent, CardNativeMessage, CardStartPushProvisioningEvent } from '../../messages/nativeMessages/cardMessage';\nimport type { BottomSheetSlotData } from '../UNBottomSheetComponent/UNBottomSheetComponent';\nexport interface UNCardComponentProps {\n cardId: string;\n customerToken: string;\n theme?: string;\n onStatusChanged?: (card: UNCardData) => void;\n pushProvisioningModule?: typeof NativeModules;\n onLoad?: (response: ResponseUnitOnLoadEvent) => void\n}\n\nexport const UNCardComponent = (props: UNCardComponentProps) => {\n const [height, setHeight] = useState(0);\n const windowWidth = Dimensions.get('window').width;\n const walletRef = useRef<UNWallet | null>(null);\n\n const webRef = useRef<WebView>(null);\n\n const cardStatusChanged = (card: UNCardData) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card);\n }\n };\n\n const requestRefresh = (data: RequestRefreshEvent) => {\n injectRefreshEventIfNeeded(webRef.current, data, props.cardId);\n };\n\n const startPushProvisioning = async (data: CardStartPushProvisioningEvent) => {\n if (data.cardId !== props.cardId) return;\n onAddToWalletClicked();\n };\n\n const getAddToWalletStatus = (data: CardGetAddToWalletStatusEvent) => {\n if (data.cardId !== props.cardId) return;\n getWallets();\n };\n\n useListenerToBus([\n { busEventKey: CardMessage.CARD_STATUS_CHANGED, action: cardStatusChanged },\n { busEventKey: UnitMessage.UNIT_REQUEST_REFRESH, action: requestRefresh },\n { busEventKey: CardNativeMessage.CARD_START_PUSH_PROVISIONING, action: startPushProvisioning },\n { busEventKey: CardNativeMessage.CARD_GET_ADD_TO_WALLET_STATUS, action: getAddToWalletStatus }\n ]);\n\n const handleMessage = (message: WebViewMessage) => {\n if (!message || !message.details) return;\n\n switch (message.type) {\n case UnitMessage.UNIT_REQUEST_RENDERING: {\n const event: BottomSheetSlotData = {\n componentName: WebComponentType.card,\n componentResourceId: props.cardId,\n requestRenderingEvent: message.details as RequestRenderingEvent\n };\n EventBus.Instance.event(UnitMessage.UNIT_REQUEST_RENDERING, event);\n break;\n }\n case PageMessage.PAGE_HEIGHT:\n setHeight((message.details as HeightEvent).height);\n break;\n case UnitMessage.UNIT_ON_LOAD:\n props.onLoad && props.onLoad(message.details as ResponseUnitOnLoadEvent);\n break;\n }\n };\n\n const getWallets = async () => {\n\n try {\n\n const walletResponse = await launchGetWallets(props.customerToken, props.cardId, props.pushProvisioningModule as NativeModule);\n\n if (!walletResponse) return;\n\n walletRef.current = walletResponse;\n\n const walletStatus: CardAddToWalletStatusEvent = { status: walletResponse.status };\n EventBus.Instance.event(CardNativeMessage.CARD_UPDATE_ADD_TO_WALLET_STATUS, walletStatus);\n } catch (error) {\n console.error(error);\n }\n };\n\n const onAddToWalletClicked = async () => {\n try {\n await launchStartCardProvisioning(props.pushProvisioningModule as NativeModule, walletRef.current);\n } catch (error) {\n if (error instanceof Error) {\n const parsedError = JSON.parse(error.message);\n if (parsedError.code === CardAddToWalletErrors.closedNativeWalletScreen) return;\n }\n console.log(error);\n }\n };\n\n return (\n <View style={{ height }}>\n <WebComponent\n ref={webRef}\n type={WebComponentType.card}\n presentationMode={PresentationMode.Default}\n params={getCardParams(props)}\n theme={props.theme}\n script={getCardScript()}\n onMessage={message => handleMessage(message)}\n width={windowWidth}\n isScrollable={false}\n />\n </View>\n );\n};\n"],"mappings":"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"}
@@ -1,22 +1,63 @@
1
+ import { DISPATCH_REQUEST_REFRESH } from './../../scripts/html/bodyScript';
1
2
  import { WebComponentType } from '../../webComponent/WebComponent';
2
- import { UnitMessage } from '../../messages/webMessages/unitMessages';
3
+ import { getMobileWalletPayload } from './networking/requests/UNWalletPayloadRequest';
4
+ import { UNWalletCode, UNWalletName } from '../../../src/sharedTypes/wallet.types';
3
5
  export const getCardParams = props => {
4
6
  return `
5
7
  card-id="${props.cardId}"
6
8
  customer-token="${props.customerToken}"
9
+ enable-mobile-wallet="${!!props.pushProvisioningModule}"
7
10
  `;
8
11
  };
9
12
  export const getCardScript = () => {
10
- return `
11
- const dispatchRefreshEvent = (details) => {
12
- const event = new CustomEvent("${UnitMessage.UNIT_REQUEST_REFRESH}",{ detail: JSON.parse(details) })
13
- window.dispatchEvent(event)
14
- }
15
- `;
13
+ return DISPATCH_REQUEST_REFRESH;
16
14
  };
17
15
  export const injectRefreshEventIfNeeded = (currentWeb, requestRefreshEvent, cardId) => {
18
16
  if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == cardId) {
19
17
  currentWeb === null || currentWeb === void 0 ? void 0 : currentWeb.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);
20
18
  }
21
19
  };
20
+ export const launchGetWallets = async (customerToken, cardId, pushProvisioningModule) => {
21
+ try {
22
+ const encryptedPayload = await getMobileWalletPayload(customerToken, cardId);
23
+ if (!encryptedPayload) return null;
24
+ const walletsResponse = await pushProvisioningModule.launchGetWallets(JSON.stringify({
25
+ encPayload: encryptedPayload
26
+ }));
27
+ const parsedWalletsResponse = JSON.parse(walletsResponse);
28
+ const wallets = parsedWalletsResponse.wallets;
29
+ if (!wallets) return null;
30
+
31
+ if (wallets[0].code === UNWalletCode.Apple) {
32
+ return {
33
+ name: UNWalletName.Apple,
34
+ code: UNWalletCode.Apple,
35
+ status: wallets[0].status
36
+ };
37
+ } else {
38
+ const googleWallet = wallets.filter(wallet => {
39
+ return wallet.name === UNWalletName.Google;
40
+ });
41
+ if (!googleWallet) return;
42
+ return {
43
+ name: UNWalletName.Google,
44
+ code: UNWalletCode.Google,
45
+ status: googleWallet[0].status
46
+ };
47
+ }
48
+ } catch (error) {
49
+ return Promise.reject(error);
50
+ }
51
+ };
52
+ export const launchStartCardProvisioning = async (pushProvisioningModule, wallet) => {
53
+ try {
54
+ const response = await pushProvisioningModule.launchStartCardProvisioning(JSON.stringify({
55
+ walletCode: wallet === null || wallet === void 0 ? void 0 : wallet.code,
56
+ walletName: wallet === null || wallet === void 0 ? void 0 : wallet.name
57
+ }));
58
+ return response;
59
+ } catch (error) {
60
+ return Promise.reject(error);
61
+ }
62
+ };
22
63
  //# sourceMappingURL=UNCardComponent.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["WebComponentType","UnitMessage","getCardParams","props","cardId","customerToken","getCardScript","UNIT_REQUEST_REFRESH","injectRefreshEventIfNeeded","currentWeb","requestRefreshEvent","dependencies","includes","card","valueOf","resourceId","injectJavaScript","JSON","stringify"],"sources":["UNCardComponent.utils.ts"],"sourcesContent":["import type WebView from 'react-native-webview';\nimport type { UNCardComponentProps } from './UNCardComponent';\nimport { WebComponentType } from '../../webComponent/WebComponent';\nimport { RequestRefreshEvent, UnitMessage } from '../../messages/webMessages/unitMessages';\n\nexport const getCardParams = (props: UNCardComponentProps) => {\n return `\n card-id=\"${props.cardId}\"\n customer-token=\"${props.customerToken}\"\n `;\n};\n\nexport const getCardScript = () => {\n return `\n const dispatchRefreshEvent = (details) => {\n const event = new CustomEvent(\"${UnitMessage.UNIT_REQUEST_REFRESH}\",{ detail: JSON.parse(details) })\n window.dispatchEvent(event)\n }\n `;\n};\n\nexport const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null, cardId: string) => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == cardId) {\n currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);\n }\n};\n"],"mappings":"AAEA,SAASA,gBAAT,QAAiC,iCAAjC;AACA,SAA8BC,WAA9B,QAAiD,yCAAjD;AAEA,OAAO,MAAMC,aAAa,GAAIC,KAAD,IAAiC;EAC5D,OAAQ;AACV,eAAeA,KAAK,CAACC,MAAO;AAC5B,sBAAsBD,KAAK,CAACE,aAAc;AAC1C,GAHE;AAID,CALM;AAOP,OAAO,MAAMC,aAAa,GAAG,MAAM;EACjC,OAAQ;AACV;AACA,qCAAqCL,WAAW,CAACM,oBAAqB;AACtE;AACA;AACA,GALE;AAMD,CAPM;AASP,OAAO,MAAMC,0BAA0B,GAAG,CAACC,UAAD,EAA6BC,mBAA7B,EAA8EN,MAA9E,KAAiG;EACzI,IAAIM,mBAAmB,IAAIA,mBAAmB,CAACC,YAApB,CAAiCC,QAAjC,CAA0CZ,gBAAgB,CAACa,IAAjB,CAAsBC,OAAtB,EAA1C,CAAvB,IAAqGJ,mBAAmB,CAACK,UAApB,IAAkCX,MAA3I,EAAmJ;IACjJK,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEO,gBAAZ,CAA8B,yBAAwBC,IAAI,CAACC,SAAL,CAAeR,mBAAf,CAAoC,IAA1F;EACD;AACF,CAJM"}
1
+ {"version":3,"names":["DISPATCH_REQUEST_REFRESH","WebComponentType","getMobileWalletPayload","UNWalletCode","UNWalletName","getCardParams","props","cardId","customerToken","pushProvisioningModule","getCardScript","injectRefreshEventIfNeeded","currentWeb","requestRefreshEvent","dependencies","includes","card","valueOf","resourceId","injectJavaScript","JSON","stringify","launchGetWallets","encryptedPayload","walletsResponse","encPayload","parsedWalletsResponse","parse","wallets","code","Apple","name","status","googleWallet","filter","wallet","Google","error","Promise","reject","launchStartCardProvisioning","response","walletCode","walletName"],"sources":["UNCardComponent.utils.ts"],"sourcesContent":["import { DISPATCH_REQUEST_REFRESH } from './../../scripts/html/bodyScript';\nimport type WebView from 'react-native-webview';\nimport type { UNCardComponentProps } from './UNCardComponent';\nimport { WebComponentType } from '../../webComponent/WebComponent';\nimport type { NativeModules } from 'react-native';\nimport { getMobileWalletPayload } from './networking/requests/UNWalletPayloadRequest';\nimport { UNWallet, UNWalletCode, UNWalletName } from '../../../src/sharedTypes/wallet.types';\nimport type { RequestRefreshEvent } from '../../messages/webMessages/unitMessages';\n\nexport const getCardParams = (props: UNCardComponentProps) => {\n return `\n card-id=\"${props.cardId}\"\n customer-token=\"${props.customerToken}\"\n enable-mobile-wallet=\"${!!props.pushProvisioningModule}\"\n `;\n};\n\nexport const getCardScript = () => {\n return DISPATCH_REQUEST_REFRESH;\n};\n\nexport const injectRefreshEventIfNeeded = (currentWeb: WebView | null, requestRefreshEvent: RequestRefreshEvent | null, cardId: string) => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == cardId) {\n currentWeb?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);\n }\n};\n\nexport const launchGetWallets = async (customerToken: string, cardId: string, pushProvisioningModule: typeof NativeModules) => {\n try {\n const encryptedPayload = await getMobileWalletPayload(customerToken, cardId);\n if (!encryptedPayload) return null;\n\n const walletsResponse = await pushProvisioningModule.launchGetWallets(JSON.stringify({ encPayload: encryptedPayload }));\n const parsedWalletsResponse = JSON.parse(walletsResponse);\n const wallets = parsedWalletsResponse.wallets;\n\n if (!wallets) return null;\n if (wallets[0].code === UNWalletCode.Apple) {\n return ({ name: UNWalletName.Apple, code: UNWalletCode.Apple, status: wallets[0].status });\n } else {\n const googleWallet = wallets.filter((wallet: { name: UNWalletName }) => {\n return wallet.name === UNWalletName.Google;\n });\n if (!googleWallet) return;\n return ({ name: UNWalletName.Google, code: UNWalletCode.Google, status: googleWallet[0].status });\n }\n } catch (error) {\n return Promise.reject(error);\n }\n\n};\n\nexport const launchStartCardProvisioning = async (pushProvisioningModule: typeof NativeModules, wallet: UNWallet | null) => {\n try {\n const response = await pushProvisioningModule.launchStartCardProvisioning(\n JSON.stringify({\n walletCode: wallet?.code,\n walletName: wallet?.name\n }));\n return response;\n }\n\n catch (error) {\n return Promise.reject(error);\n }\n};\n"],"mappings":"AAAA,SAASA,wBAAT,QAAyC,iCAAzC;AAGA,SAASC,gBAAT,QAAiC,iCAAjC;AAEA,SAASC,sBAAT,QAAuC,8CAAvC;AACA,SAAmBC,YAAnB,EAAiCC,YAAjC,QAAqD,uCAArD;AAGA,OAAO,MAAMC,aAAa,GAAIC,KAAD,IAAiC;EAC5D,OAAQ;AACV,eAAeA,KAAK,CAACC,MAAO;AAC5B,sBAAsBD,KAAK,CAACE,aAAc;AAC1C,4BAA4B,CAAC,CAACF,KAAK,CAACG,sBAAuB;AAC3D,GAJE;AAKD,CANM;AAQP,OAAO,MAAMC,aAAa,GAAG,MAAM;EACjC,OAAOV,wBAAP;AACD,CAFM;AAIP,OAAO,MAAMW,0BAA0B,GAAG,CAACC,UAAD,EAA6BC,mBAA7B,EAA8EN,MAA9E,KAAiG;EACzI,IAAIM,mBAAmB,IAAIA,mBAAmB,CAACC,YAApB,CAAiCC,QAAjC,CAA0Cd,gBAAgB,CAACe,IAAjB,CAAsBC,OAAtB,EAA1C,CAAvB,IAAqGJ,mBAAmB,CAACK,UAApB,IAAkCX,MAA3I,EAAmJ;IACjJK,UAAU,SAAV,IAAAA,UAAU,WAAV,YAAAA,UAAU,CAAEO,gBAAZ,CAA8B,yBAAwBC,IAAI,CAACC,SAAL,CAAeR,mBAAf,CAAoC,IAA1F;EACD;AACF,CAJM;AAMP,OAAO,MAAMS,gBAAgB,GAAG,OAAOd,aAAP,EAA8BD,MAA9B,EAA8CE,sBAA9C,KAA+F;EAC7H,IAAI;IACF,MAAMc,gBAAgB,GAAG,MAAMrB,sBAAsB,CAACM,aAAD,EAAgBD,MAAhB,CAArD;IACA,IAAI,CAACgB,gBAAL,EAAuB,OAAO,IAAP;IAEvB,MAAMC,eAAe,GAAG,MAAMf,sBAAsB,CAACa,gBAAvB,CAAwCF,IAAI,CAACC,SAAL,CAAe;MAAEI,UAAU,EAAEF;IAAd,CAAf,CAAxC,CAA9B;IACA,MAAMG,qBAAqB,GAAGN,IAAI,CAACO,KAAL,CAAWH,eAAX,CAA9B;IACA,MAAMI,OAAO,GAAGF,qBAAqB,CAACE,OAAtC;IAEA,IAAI,CAACA,OAAL,EAAc,OAAO,IAAP;;IACd,IAAIA,OAAO,CAAC,CAAD,CAAP,CAAWC,IAAX,KAAoB1B,YAAY,CAAC2B,KAArC,EAA4C;MAC1C,OAAQ;QAAEC,IAAI,EAAE3B,YAAY,CAAC0B,KAArB;QAA4BD,IAAI,EAAE1B,YAAY,CAAC2B,KAA/C;QAAsDE,MAAM,EAAEJ,OAAO,CAAC,CAAD,CAAP,CAAWI;MAAzE,CAAR;IACD,CAFD,MAEO;MACL,MAAMC,YAAY,GAAGL,OAAO,CAACM,MAAR,CAAgBC,MAAD,IAAoC;QACtE,OAAOA,MAAM,CAACJ,IAAP,KAAgB3B,YAAY,CAACgC,MAApC;MACD,CAFoB,CAArB;MAGA,IAAI,CAACH,YAAL,EAAmB;MACnB,OAAQ;QAAEF,IAAI,EAAE3B,YAAY,CAACgC,MAArB;QAA6BP,IAAI,EAAE1B,YAAY,CAACiC,MAAhD;QAAwDJ,MAAM,EAAEC,YAAY,CAAC,CAAD,CAAZ,CAAgBD;MAAhF,CAAR;IACD;EACF,CAlBD,CAkBE,OAAOK,KAAP,EAAc;IACd,OAAOC,OAAO,CAACC,MAAR,CAAeF,KAAf,CAAP;EACD;AAEF,CAvBM;AAyBP,OAAO,MAAMG,2BAA2B,GAAG,OAAO/B,sBAAP,EAAqD0B,MAArD,KAAiF;EAC1H,IAAI;IACF,MAAMM,QAAQ,GAAG,MAAMhC,sBAAsB,CAAC+B,2BAAvB,CACrBpB,IAAI,CAACC,SAAL,CAAe;MACbqB,UAAU,EAAEP,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEN,IADP;MAEbc,UAAU,EAAER,MAAF,aAAEA,MAAF,uBAAEA,MAAM,CAAEJ;IAFP,CAAf,CADqB,CAAvB;IAKA,OAAOU,QAAP;EACD,CAPD,CASA,OAAOJ,KAAP,EAAc;IACZ,OAAOC,OAAO,CAACC,MAAR,CAAeF,KAAf,CAAP;EACD;AACF,CAbM"}
@@ -0,0 +1,10 @@
1
+ import { UNEnvironment } from '../../../../unitSdkManager/UnitSdkManager';
2
+ export const APIHeaders = {
3
+ AUTHORIZATION: 'Authorization',
4
+ CONTENT_TYPE: 'application/vnd.api+json'
5
+ };
6
+ export const UNIT_SECURE_URL = {
7
+ [UNEnvironment.sandbox]: 'https://secure.api.s.unit.sh',
8
+ [UNEnvironment.production]: 'https://secure.api.unit.co'
9
+ };
10
+ //# sourceMappingURL=UNNetworkConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["UNEnvironment","APIHeaders","AUTHORIZATION","CONTENT_TYPE","UNIT_SECURE_URL","sandbox","production"],"sources":["UNNetworkConstants.ts"],"sourcesContent":["import { UNEnvironment } from '../../../../unitSdkManager/UnitSdkManager';\n\nexport const APIHeaders = {\n AUTHORIZATION: 'Authorization',\n CONTENT_TYPE: 'application/vnd.api+json',\n};\n\nexport const UNIT_SECURE_URL = {\n [UNEnvironment.sandbox]: 'https://secure.api.s.unit.sh',\n [UNEnvironment.production]: 'https://secure.api.unit.co'\n};\n"],"mappings":"AAAA,SAASA,aAAT,QAA8B,2CAA9B;AAEA,OAAO,MAAMC,UAAU,GAAG;EACxBC,aAAa,EAAE,eADS;EAExBC,YAAY,EAAE;AAFU,CAAnB;AAKP,OAAO,MAAMC,eAAe,GAAG;EAC7B,CAACJ,aAAa,CAACK,OAAf,GAAyB,8BADI;EAE7B,CAACL,aAAa,CAACM,UAAf,GAA4B;AAFC,CAAxB"}
@@ -0,0 +1,29 @@
1
+ import axios from 'axios';
2
+ import { APIHeaders, UNIT_SECURE_URL } from '../common/UNNetworkConstants';
3
+ import { UnitSDK } from 'react-native-unit-components';
4
+ const env = UnitSDK.getEnv();
5
+ export const getMobileWalletPayload = async (customerToken, cardId) => {
6
+ const headers = {
7
+ 'Content-Type': APIHeaders.CONTENT_TYPE,
8
+ 'Authorization': `Bearer ${customerToken}`
9
+ };
10
+ const data = {
11
+ data: {
12
+ attributes: {
13
+ signedNonce: UnitSDK.getSignedNonce()
14
+ }
15
+ }
16
+ };
17
+ const baseURL = `${UNIT_SECURE_URL[env]}/cards/${cardId}/mobile-wallet-payload`;
18
+
19
+ try {
20
+ const response = await axios.post(baseURL, data, {
21
+ headers: headers
22
+ });
23
+ const encryptedPayload = response.data.data.attributes.payload;
24
+ return encryptedPayload;
25
+ } catch (error) {
26
+ return Promise.reject(error);
27
+ }
28
+ };
29
+ //# sourceMappingURL=UNWalletPayloadRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["axios","APIHeaders","UNIT_SECURE_URL","UnitSDK","env","getEnv","getMobileWalletPayload","customerToken","cardId","headers","CONTENT_TYPE","data","attributes","signedNonce","getSignedNonce","baseURL","response","post","encryptedPayload","payload","error","Promise","reject"],"sources":["UNWalletPayloadRequest.ts"],"sourcesContent":["import axios from 'axios';\nimport { APIHeaders, UNIT_SECURE_URL } from '../common/UNNetworkConstants';\nimport { UNEnvironment, UnitSDK } from 'react-native-unit-components';\n\nconst env = UnitSDK.getEnv();\n\nexport const getMobileWalletPayload = async (customerToken: string, cardId: string) => {\n const headers = {\n 'Content-Type': APIHeaders.CONTENT_TYPE,\n 'Authorization': `Bearer ${customerToken}`,\n };\n\n const data = {\n data: {\n attributes: {\n signedNonce: UnitSDK.getSignedNonce(),\n },\n },\n };\n\n const baseURL = `${UNIT_SECURE_URL[env as keyof typeof UNEnvironment]}/cards/${cardId}/mobile-wallet-payload`;\n try {\n const response = await axios.post(\n baseURL,\n data,\n {\n headers: headers,\n });\n const encryptedPayload = response.data.data.attributes.payload;\n return encryptedPayload;\n } catch (error) {\n return Promise.reject(error);\n }\n};\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,eAArB,QAA4C,8BAA5C;AACA,SAAwBC,OAAxB,QAAuC,8BAAvC;AAEA,MAAMC,GAAG,GAAGD,OAAO,CAACE,MAAR,EAAZ;AAEA,OAAO,MAAMC,sBAAsB,GAAG,OAAOC,aAAP,EAA8BC,MAA9B,KAAiD;EACrF,MAAMC,OAAO,GAAG;IACd,gBAAgBR,UAAU,CAACS,YADb;IAEd,iBAAkB,UAASH,aAAc;EAF3B,CAAhB;EAKA,MAAMI,IAAI,GAAG;IACXA,IAAI,EAAE;MACJC,UAAU,EAAE;QACVC,WAAW,EAAEV,OAAO,CAACW,cAAR;MADH;IADR;EADK,CAAb;EAQA,MAAMC,OAAO,GAAI,GAAEb,eAAe,CAACE,GAAD,CAAoC,UAASI,MAAO,wBAAtF;;EACA,IAAI;IACF,MAAMQ,QAAQ,GAAG,MAAMhB,KAAK,CAACiB,IAAN,CACrBF,OADqB,EAErBJ,IAFqB,EAGrB;MACEF,OAAO,EAAEA;IADX,CAHqB,CAAvB;IAMA,MAAMS,gBAAgB,GAAGF,QAAQ,CAACL,IAAT,CAAcA,IAAd,CAAmBC,UAAnB,CAA8BO,OAAvD;IACA,OAAOD,gBAAP;EACD,CATD,CASE,OAAOE,KAAP,EAAc;IACd,OAAOC,OAAO,CAACC,MAAR,CAAeF,KAAf,CAAP;EACD;AACF,CA3BM"}
@@ -2,4 +2,5 @@ export * from './UNCardComponent/UNCardComponent';
2
2
  export * from './UNBottomSheetComponent/UNBottomSheetComponent';
3
3
  export * from './UNBookPaymentComponent/UNBookPaymentComponent';
4
4
  export * from './UNActivityComponent/UNActivityComponent';
5
+ export * from './UNAccountComponent/UNAccountComponent';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './UNCardComponent/UNCardComponent';\nexport * from './UNBottomSheetComponent/UNBottomSheetComponent';\nexport * from './UNBookPaymentComponent/UNBookPaymentComponent';\nexport * from './UNActivityComponent/UNActivityComponent';\n"],"mappings":"AAAA,cAAc,mCAAd;AACA,cAAc,iDAAd;AACA,cAAc,iDAAd;AACA,cAAc,2CAAd"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from './UNCardComponent/UNCardComponent';\nexport * from './UNBottomSheetComponent/UNBottomSheetComponent';\nexport * from './UNBookPaymentComponent/UNBookPaymentComponent';\nexport * from './UNActivityComponent/UNActivityComponent';\nexport * from './UNAccountComponent/UNAccountComponent';\n"],"mappings":"AAAA,cAAc,mCAAd;AACA,cAAc,iDAAd;AACA,cAAc,iDAAd;AACA,cAAc,2CAAd;AACA,cAAc,yCAAd"}