react-native-unit-components 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (241) hide show
  1. package/README.md +157 -2
  2. package/lib/commonjs/assets/images/close.png +0 -0
  3. package/lib/commonjs/assets/images/index.js +16 -0
  4. package/lib/commonjs/assets/images/index.js.map +1 -0
  5. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js +28 -0
  6. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.js.map +1 -0
  7. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js +20 -0
  8. package/lib/commonjs/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -0
  9. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js +39 -0
  10. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -0
  11. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +40 -0
  12. package/lib/commonjs/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -0
  13. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +9 -0
  14. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -0
  15. package/lib/commonjs/components/{BottomSheet/BottomSheetComponent.js → UNBottomSheetComponent/UNBottomSheetComponent.js} +84 -65
  16. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -0
  17. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js +23 -0
  18. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js.map +1 -0
  19. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +49 -0
  20. package/lib/commonjs/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -0
  21. package/lib/commonjs/components/{Card/CardComponent.js → UNCardComponent/UNCardComponent.js} +42 -46
  22. package/lib/commonjs/components/UNCardComponent/UNCardComponent.js.map +1 -0
  23. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js +42 -0
  24. package/lib/commonjs/components/UNCardComponent/UNCardComponent.utils.js.map +1 -0
  25. package/lib/commonjs/components/index.js +34 -8
  26. package/lib/commonjs/components/index.js.map +1 -1
  27. package/lib/commonjs/custom.d.js +2 -0
  28. package/lib/commonjs/custom.d.js.map +1 -0
  29. package/lib/commonjs/helpers/{BottomSheet.js → BottomSheet/BottomSheet.js} +36 -82
  30. package/lib/commonjs/helpers/BottomSheet/BottomSheet.js.map +1 -0
  31. package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js +82 -0
  32. package/lib/commonjs/helpers/BottomSheet/BottomSheet.styles.js.map +1 -0
  33. package/lib/commonjs/helpers/EventBus.js +5 -13
  34. package/lib/commonjs/helpers/EventBus.js.map +1 -1
  35. package/lib/commonjs/hooks/listenerToBus.js +31 -0
  36. package/lib/commonjs/hooks/listenerToBus.js.map +1 -0
  37. package/lib/commonjs/hooks/useAppStateListener.js +34 -0
  38. package/lib/commonjs/hooks/useAppStateListener.js.map +1 -0
  39. package/lib/commonjs/index.js +33 -0
  40. package/lib/commonjs/index.js.map +1 -1
  41. package/lib/commonjs/messages/nativeMessages/index.js +13 -0
  42. package/lib/commonjs/messages/nativeMessages/index.js.map +1 -0
  43. package/lib/commonjs/messages/webMessages/bookPaymentMessage.js +13 -0
  44. package/lib/commonjs/messages/webMessages/bookPaymentMessage.js.map +1 -0
  45. package/lib/commonjs/{webComponent → messages}/webMessages/cardMessage.js +1 -1
  46. package/lib/commonjs/messages/webMessages/cardMessage.js.map +1 -0
  47. package/lib/commonjs/messages/webMessages/index.js +6 -0
  48. package/lib/commonjs/messages/webMessages/index.js.map +1 -0
  49. package/lib/commonjs/{webComponent → messages}/webMessages/pageMessage.js +0 -0
  50. package/lib/commonjs/{webComponent → messages}/webMessages/pageMessage.js.map +0 -0
  51. package/lib/commonjs/{webComponent → messages}/webMessages/unitMessages.js +0 -0
  52. package/lib/commonjs/messages/webMessages/unitMessages.js.map +1 -0
  53. package/lib/commonjs/nativeComponenet/NativeComponentExample.js +2 -2
  54. package/lib/commonjs/nativeComponenet/NativeComponentExample.js.map +1 -1
  55. package/lib/commonjs/scripts/html/bodyHtml.js +52 -0
  56. package/lib/commonjs/scripts/html/bodyHtml.js.map +1 -0
  57. package/lib/commonjs/scripts/html/bodyScript.js +78 -0
  58. package/lib/commonjs/scripts/html/bodyScript.js.map +1 -0
  59. package/lib/commonjs/sharedTypes/bookPayment.types.js +6 -0
  60. package/lib/commonjs/sharedTypes/bookPayment.types.js.map +1 -0
  61. package/lib/commonjs/sharedTypes/card.types.js +6 -0
  62. package/lib/commonjs/sharedTypes/card.types.js.map +1 -0
  63. package/lib/commonjs/sharedTypes/index.js +32 -0
  64. package/lib/commonjs/sharedTypes/index.js.map +1 -0
  65. package/lib/commonjs/sharedTypes/types.js +2 -0
  66. package/lib/commonjs/sharedTypes/types.js.map +1 -0
  67. package/lib/commonjs/styles/variables.js +17 -0
  68. package/lib/commonjs/styles/variables.js.map +1 -0
  69. package/lib/commonjs/unitSdkManager/UnitSdk.api.js +54 -0
  70. package/lib/commonjs/unitSdkManager/UnitSdk.api.js.map +1 -0
  71. package/lib/commonjs/unitSdkManager/UnitSdkManager.js +51 -0
  72. package/lib/commonjs/unitSdkManager/UnitSdkManager.js.map +1 -0
  73. package/lib/commonjs/webComponent/WebComponent.js +35 -15
  74. package/lib/commonjs/webComponent/WebComponent.js.map +1 -1
  75. package/lib/commonjs/webComponent/html.js +22 -45
  76. package/lib/commonjs/webComponent/html.js.map +1 -1
  77. package/lib/module/assets/images/close.png +0 -0
  78. package/lib/module/assets/images/index.js +2 -0
  79. package/lib/module/assets/images/index.js.map +1 -0
  80. package/lib/module/components/UNActivityComponent/UNActivityComponent.js +13 -0
  81. package/lib/module/components/UNActivityComponent/UNActivityComponent.js.map +1 -0
  82. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js +10 -0
  83. package/lib/module/components/UNActivityComponent/UNActivityComponent.utils.js.map +1 -0
  84. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js +23 -0
  85. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.js.map +1 -0
  86. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js +26 -0
  87. package/lib/module/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.js.map +1 -0
  88. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js +2 -0
  89. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.js.map +1 -0
  90. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js +131 -0
  91. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.js.map +1 -0
  92. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js +13 -0
  93. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.js.map +1 -0
  94. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js +29 -0
  95. package/lib/module/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.js.map +1 -0
  96. package/lib/module/components/UNCardComponent/UNCardComponent.js +65 -0
  97. package/lib/module/components/UNCardComponent/UNCardComponent.js.map +1 -0
  98. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js +24 -0
  99. package/lib/module/components/UNCardComponent/UNCardComponent.utils.js.map +1 -0
  100. package/lib/module/components/index.js +4 -2
  101. package/lib/module/components/index.js.map +1 -1
  102. package/lib/module/custom.d.js +2 -0
  103. package/lib/module/custom.d.js.map +1 -0
  104. package/lib/module/helpers/{BottomSheet.js → BottomSheet/BottomSheet.js} +34 -81
  105. package/lib/module/helpers/BottomSheet/BottomSheet.js.map +1 -0
  106. package/lib/module/helpers/BottomSheet/BottomSheet.styles.js +70 -0
  107. package/lib/module/helpers/BottomSheet/BottomSheet.styles.js.map +1 -0
  108. package/lib/module/helpers/EventBus.js +4 -11
  109. package/lib/module/helpers/EventBus.js.map +1 -1
  110. package/lib/module/hooks/listenerToBus.js +18 -0
  111. package/lib/module/hooks/listenerToBus.js.map +1 -0
  112. package/lib/module/hooks/useAppStateListener.js +23 -0
  113. package/lib/module/hooks/useAppStateListener.js.map +1 -0
  114. package/lib/module/index.js +2 -0
  115. package/lib/module/index.js.map +1 -1
  116. package/lib/module/messages/nativeMessages/index.js +6 -0
  117. package/lib/module/messages/nativeMessages/index.js.map +1 -0
  118. package/lib/module/messages/webMessages/bookPaymentMessage.js +6 -0
  119. package/lib/module/messages/webMessages/bookPaymentMessage.js.map +1 -0
  120. package/lib/module/messages/webMessages/cardMessage.js +6 -0
  121. package/lib/module/messages/webMessages/cardMessage.js.map +1 -0
  122. package/lib/module/messages/webMessages/index.js +2 -0
  123. package/lib/module/messages/webMessages/index.js.map +1 -0
  124. package/lib/module/{webComponent → messages}/webMessages/pageMessage.js +0 -0
  125. package/lib/module/{webComponent → messages}/webMessages/pageMessage.js.map +0 -0
  126. package/lib/module/{webComponent → messages}/webMessages/unitMessages.js +0 -0
  127. package/lib/module/messages/webMessages/unitMessages.js.map +1 -0
  128. package/lib/module/nativeComponenet/NativeComponentExample.js +2 -2
  129. package/lib/module/nativeComponenet/NativeComponentExample.js.map +1 -1
  130. package/lib/module/scripts/html/bodyHtml.js +42 -0
  131. package/lib/module/scripts/html/bodyHtml.js.map +1 -0
  132. package/lib/module/scripts/html/bodyScript.js +64 -0
  133. package/lib/module/scripts/html/bodyScript.js.map +1 -0
  134. package/lib/module/sharedTypes/bookPayment.types.js +2 -0
  135. package/lib/module/sharedTypes/bookPayment.types.js.map +1 -0
  136. package/lib/module/sharedTypes/card.types.js +2 -0
  137. package/lib/module/sharedTypes/card.types.js.map +1 -0
  138. package/lib/module/sharedTypes/index.js +3 -0
  139. package/lib/module/sharedTypes/index.js.map +1 -0
  140. package/lib/module/sharedTypes/types.js +2 -0
  141. package/lib/module/sharedTypes/types.js.map +1 -0
  142. package/lib/module/styles/variables.js +10 -0
  143. package/lib/module/styles/variables.js.map +1 -0
  144. package/lib/module/unitSdkManager/UnitSdk.api.js +37 -0
  145. package/lib/module/unitSdkManager/UnitSdk.api.js.map +1 -0
  146. package/lib/module/unitSdkManager/UnitSdkManager.js +38 -0
  147. package/lib/module/unitSdkManager/UnitSdkManager.js.map +1 -0
  148. package/lib/module/webComponent/WebComponent.js +34 -14
  149. package/lib/module/webComponent/WebComponent.js.map +1 -1
  150. package/lib/module/webComponent/html.js +18 -44
  151. package/lib/module/webComponent/html.js.map +1 -1
  152. package/lib/typescript/assets/images/index.d.ts +1 -0
  153. package/lib/typescript/components/UNActivityComponent/UNActivityComponent.d.ts +6 -0
  154. package/lib/typescript/components/UNActivityComponent/UNActivityComponent.utils.d.ts +2 -0
  155. package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.d.ts +11 -0
  156. package/lib/typescript/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.d.ts +3 -0
  157. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.d.ts +1 -0
  158. package/lib/typescript/components/{BottomSheet/BottomSheetComponent.d.ts → UNBottomSheetComponent/UNBottomSheetComponent.d.ts} +0 -0
  159. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.d.ts +9 -0
  160. package/lib/typescript/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.d.ts +5 -0
  161. package/lib/typescript/components/{Card/CardComponent.d.ts → UNCardComponent/UNCardComponent.d.ts} +3 -1
  162. package/lib/typescript/components/UNCardComponent/UNCardComponent.utils.d.ts +6 -0
  163. package/lib/typescript/components/index.d.ts +4 -2
  164. package/lib/typescript/helpers/{BottomSheet.d.ts → BottomSheet/BottomSheet.d.ts} +1 -0
  165. package/lib/typescript/helpers/BottomSheet/BottomSheet.styles.d.ts +63 -0
  166. package/lib/typescript/helpers/EventBus.d.ts +5 -7
  167. package/lib/typescript/hooks/listenerToBus.d.ts +7 -0
  168. package/lib/typescript/hooks/useAppStateListener.d.ts +1 -0
  169. package/lib/typescript/index.d.ts +2 -0
  170. package/lib/typescript/messages/nativeMessages/index.d.ts +3 -0
  171. package/lib/typescript/messages/webMessages/bookPaymentMessage.d.ts +8 -0
  172. package/lib/typescript/{webComponent → messages}/webMessages/cardMessage.d.ts +3 -2
  173. package/lib/typescript/messages/webMessages/index.d.ts +11 -0
  174. package/lib/typescript/{webComponent → messages}/webMessages/pageMessage.d.ts +0 -0
  175. package/lib/typescript/{webComponent → messages}/webMessages/unitMessages.d.ts +0 -0
  176. package/lib/typescript/scripts/html/bodyHtml.d.ts +7 -0
  177. package/lib/typescript/scripts/html/bodyScript.d.ts +11 -0
  178. package/lib/typescript/sharedTypes/bookPayment.types.d.ts +26 -0
  179. package/lib/typescript/sharedTypes/card.types.d.ts +56 -0
  180. package/lib/typescript/sharedTypes/index.d.ts +2 -0
  181. package/lib/typescript/sharedTypes/types.d.ts +27 -0
  182. package/lib/typescript/styles/variables.d.ts +9 -0
  183. package/lib/typescript/unitSdkManager/UnitSdk.api.d.ts +3 -0
  184. package/lib/typescript/unitSdkManager/UnitSdkManager.d.ts +15 -0
  185. package/lib/typescript/webComponent/WebComponent.d.ts +8 -11
  186. package/lib/typescript/webComponent/html.d.ts +6 -1
  187. package/package.json +9 -5
  188. package/{unit-react-native-components.podspec → react-native-unit-components.podspec} +1 -1
  189. package/src/assets/images/close.png +0 -0
  190. package/src/assets/images/index.ts +1 -0
  191. package/src/components/UNActivityComponent/UNActivityComponent.tsx +21 -0
  192. package/src/components/UNActivityComponent/UNActivityComponent.utils.ts +11 -0
  193. package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.tsx +37 -0
  194. package/src/components/UNBookPaymentComponent/UNBookPaymentComponent.utils.ts +29 -0
  195. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.constants.ts +1 -0
  196. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.styles.ts +13 -0
  197. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.tsx +136 -0
  198. package/src/components/UNBottomSheetComponent/UNBottomSheetComponent.utils.ts +34 -0
  199. package/src/components/UNCardComponent/UNCardComponent.tsx +73 -0
  200. package/src/components/UNCardComponent/UNCardComponent.utils.ts +28 -0
  201. package/src/components/index.ts +4 -2
  202. package/src/custom.d.ts +5 -0
  203. package/src/helpers/BottomSheet/BottomSheet.styles.ts +70 -0
  204. package/src/helpers/{BottomSheet.tsx → BottomSheet/BottomSheet.tsx} +72 -110
  205. package/src/helpers/EventBus.ts +13 -13
  206. package/src/hooks/listenerToBus.ts +23 -0
  207. package/src/hooks/useAppStateListener.ts +25 -0
  208. package/src/index.tsx +5 -1
  209. package/src/messages/nativeMessages/index.ts +3 -0
  210. package/src/messages/webMessages/bookPaymentMessage.ts +12 -0
  211. package/src/{webComponent → messages}/webMessages/cardMessage.ts +4 -2
  212. package/src/messages/webMessages/index.ts +21 -0
  213. package/src/{webComponent → messages}/webMessages/pageMessage.ts +0 -0
  214. package/src/{webComponent → messages}/webMessages/unitMessages.ts +1 -0
  215. package/src/nativeComponenet/NativeComponentExample.tsx +2 -2
  216. package/src/scripts/html/bodyHtml.ts +46 -0
  217. package/src/scripts/html/bodyScript.ts +67 -0
  218. package/src/sharedTypes/bookPayment.types.ts +27 -0
  219. package/src/sharedTypes/card.types.ts +59 -0
  220. package/src/sharedTypes/index.ts +2 -0
  221. package/src/sharedTypes/types.ts +35 -0
  222. package/src/styles/variables.ts +9 -0
  223. package/src/unitSdkManager/UnitSdk.api.ts +31 -0
  224. package/src/unitSdkManager/UnitSdkManager.ts +33 -0
  225. package/src/webComponent/WebComponent.tsx +43 -45
  226. package/src/webComponent/html.ts +22 -46
  227. package/lib/commonjs/components/BottomSheet/BottomSheetComponent.js.map +0 -1
  228. package/lib/commonjs/components/Card/CardComponent.js.map +0 -1
  229. package/lib/commonjs/helpers/BottomSheet.js.map +0 -1
  230. package/lib/commonjs/webComponent/webMessages/cardMessage.js.map +0 -1
  231. package/lib/commonjs/webComponent/webMessages/unitMessages.js.map +0 -1
  232. package/lib/module/components/BottomSheet/BottomSheetComponent.js +0 -118
  233. package/lib/module/components/BottomSheet/BottomSheetComponent.js.map +0 -1
  234. package/lib/module/components/Card/CardComponent.js +0 -75
  235. package/lib/module/components/Card/CardComponent.js.map +0 -1
  236. package/lib/module/helpers/BottomSheet.js.map +0 -1
  237. package/lib/module/webComponent/webMessages/cardMessage.js +0 -6
  238. package/lib/module/webComponent/webMessages/cardMessage.js.map +0 -1
  239. package/lib/module/webComponent/webMessages/unitMessages.js.map +0 -1
  240. package/src/components/BottomSheet/BottomSheetComponent.tsx +0 -113
  241. package/src/components/Card/CardComponent.tsx +0 -75
@@ -1,3 +1,11 @@
1
+ import { DISPTACH_RENDERING_EVENT, LISTENERS, POST_MESSAGE_TO_SDK, POST_PAGE_HEIGHT } from '../scripts/html/bodyScript';
2
+
3
+ export const HTML_PLACEHOLDER = {
4
+ SCRIPT_UNIT: '<SCRIPT_UNIT>',
5
+ BODY: '<BODY_HTML_CODE>',
6
+ SCRIPT_FROM_NATIVE: '<SCRIPT_FROM_NATIVE>'
7
+ };
8
+
1
9
  const htmlText = `
2
10
  <!DOCTYPE html>
3
11
  <html lang="en">
@@ -7,66 +15,34 @@ const htmlText = `
7
15
  <script>
8
16
  window.UnitMobileSDK = true
9
17
  </script>
10
- <script src="https://unit-white-labeled-banking.netlify.app/client-events.js"></script>
11
18
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
12
19
  </html>
13
20
 
14
- <body style="margin: 0">
15
- <COMPONENT>
21
+ <body style="margin: 0;">
22
+ ${HTML_PLACEHOLDER.BODY}
16
23
 
17
24
  <script>
18
- const postMessageToSDK = (message) => {
19
- if ('ReactNativeWebView' in window) {
20
- const messageString = JSON.stringify(message)
21
- window['ReactNativeWebView'].postMessage(messageString)
22
- }
23
- }
25
+ ${POST_MESSAGE_TO_SDK}
24
26
 
25
- const postHeight = () => {
26
- setTimeout(() => {
27
- const height = window.document.documentElement.getBoundingClientRect().height + 36
28
- postMessageToSDK({ type: "pageHeight", details: { height } })
29
- })
30
- }
27
+ ${POST_PAGE_HEIGHT}
31
28
 
32
- window.addEventListener('DOMContentLoaded', e => {
33
- postMessageToSDK({ type: "pageLoaded" })
34
- });
29
+ ${LISTENERS.isPageLoaded}
35
30
 
36
- window.addEventListener("unitRequestRendering", (e) => {
37
- postMessageToSDK({ type: "unitRequestRendering", details: { data: JSON.stringify(e.detail) }})
38
- });
31
+ ${LISTENERS.onLoad}
39
32
 
40
- window.addEventListener("unitOnLoad", (e) => {
41
- postHeight()
42
- postMessageToSDK({ type: "unitOnLoad" })
43
- });
33
+ ${LISTENERS.requestRendering}
44
34
 
45
- window.addEventListener("unitRequestCloseFlow", (e) => {
46
- postMessageToSDK({ type: "unitRequestCloseFlow" })
47
- });
35
+ ${LISTENERS.requestOpenLink}
48
36
 
49
- window.addEventListener("unitRequestOpenLink", (e) => {
50
- postMessageToSDK({ type: "unitRequestOpenLink", details: e.detail })
51
- });
37
+ ${LISTENERS.requestCloseFlow}
52
38
 
53
- window.addEventListener("unitCardStatusChanged", (e) => {
54
- const response = e.detail
55
- response.then((data) => {
56
- postMessageToSDK({ type: "cardStatusChanged", details: { card: JSON.stringify(data.data) }})
57
- }).catch((e) => {
58
- console.log(e)
59
- })
60
- });
39
+ ${LISTENERS.cardStatusChange}
61
40
 
62
- const dispatchRenderingEvent = (details) => {
63
- const event = new CustomEvent("unitRequestRendering",{ detail: JSON.parse(details) })
64
- window.dispatchEvent(event)
65
- }
41
+ ${DISPTACH_RENDERING_EVENT}
66
42
 
67
- <SCRIPT_FROM_NATIVE>
43
+ ${HTML_PLACEHOLDER.SCRIPT_FROM_NATIVE}
68
44
  </script>
69
45
  </body>
70
- `
46
+ `;
71
47
 
72
- export default htmlText
48
+ export default htmlText;
@@ -1 +0,0 @@
1
- {"version":3,"names":["UNBottomSheetComponent","isActive","setIsActive","useState","height","setHeight","renderingRequest","setRenderingRequest","waitForLoadingNewComponent","setWaitForLoadingNewComponent","newHeightMessage","setNewHeightMessage","webRef","useRef","_listener","data","useEffect","current","injectJavaScript","setNewHeight","EventBus","Instance","addListener","BusEvent","REQUEST_RENDERING","removeListener","getBottomSheetScript","message","nativePlace","JSON","parse","windowHeight","Dimensions","get","details","undefined","position","top","bottom","left","right","paddingTop","WebComponentType","slot","type","PageMessage","PAGE_HEIGHT","UnitMessage","UNIT_REQUEST_RENDERING","setTimeout","CardMessage","CARD_STATUS_CHANGE","event","CARD_STATUS_CHANGED","card","UNIT_REQUEST_CLOSE_FLOW","UNIT_REQUEST_OPEN_LINK","href","Linking","openURL"],"sources":["BottomSheetComponent.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\"\nimport type WebView from \"react-native-webview\"\nimport { WebComponent, WebComponentType, WebViewMessage } from \"../../webComponent/WebComponent\"\nimport { Dimensions, Linking, View } from \"react-native\"\nimport BottomSheet from \"../../helpers/BottomSheet\"\nimport EventBus, { BusEvent } from \"../../helpers/EventBus\"\nimport { HeightEvent, PageMessage } from \"../../webComponent/webMessages/pageMessage\"\nimport { RequestOpenLinkEvent, RequestRenderingData, RequestRenderingEvent, UnitMessage } from \"../../webComponent/webMessages/unitMessages\"\nimport { CardMessage, CardStatusChangedEvent } from \"../../webComponent/webMessages/cardMessage\"\n\nexport const UNBottomSheetComponent = () => {\n const [isActive, setIsActive] = useState(false)\n const [height, setHeight] = useState(0)\n\n const [renderingRequest, setRenderingRequest] = useState<string | null>(null)\n\n const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false)\n const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null)\n\n const webRef = useRef<WebView>(null)\n\n const _listener = (data: string) => {\n setRenderingRequest(data)\n setIsActive(true)\n }\n\n useEffect(() => {\n if (!webRef.current) return\n if (renderingRequest) {\n webRef.current?.injectJavaScript(`dispatchRenderingEvent('${renderingRequest}')`)\n }\n }, [webRef.current, renderingRequest])\n\n useEffect(() => {\n if (!isActive) {\n setHeight(0)\n setRenderingRequest(null)\n }\n }, [isActive])\n\n useEffect(() => {\n if (!waitForLoadingNewComponent && newHeightMessage) {\n setWaitForLoadingNewComponent(false)\n setNewHeight(newHeightMessage)\n }\n }, [waitForLoadingNewComponent, newHeightMessage])\n\n useEffect(() => {\n EventBus.Instance.addListener(BusEvent.REQUEST_RENDERING, _listener)\n\n return (() => {\n EventBus.Instance.removeListener(_listener)\n })\n }, [])\n\n const getBottomSheetScript = () => {\n return `\n window.addEventListener(\"unitRequestRefresh\", (e) => {\n postMessageToSDK({ type: \"unitRequestRefresh\", details: e.detail })\n });\n `\n }\n\n const setNewHeight = (message: WebViewMessage) => {\n if (renderingRequest) {\n const nativePlace = (JSON.parse(renderingRequest) as RequestRenderingData).nativePlace;\n if (nativePlace == 'overFullScreen') {\n const windowHeight = Dimensions.get('window').height * 0.94;\n setHeight(windowHeight)\n } else {\n setHeight((message.details as HeightEvent).height)\n }\n }\n }\n\n return (\n <>\n <View\n pointerEvents={isActive ? undefined : 'none'}\n style={{ position: 'absolute', top: 0, bottom: 0, left: 0, right: 0 }}\n >\n <BottomSheet\n isOpen={isActive}\n onClose={() => setIsActive(false)}\n onOpen={() => setIsActive(true)}\n >\n <View style={{ height, paddingTop: height === 0 ? 0 : 10 }}>\n <WebComponent ref={webRef} type={WebComponentType.slot} script={getBottomSheetScript()} onMessage={message => {\n if (renderingRequest && message.type == PageMessage.PAGE_HEIGHT) {\n setNewHeightMessage(message)\n } else if (message.type == UnitMessage.UNIT_REQUEST_RENDERING) {\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 } else if (message.type == CardMessage.CARD_STATUS_CHANGE) {\n EventBus.Instance.event(BusEvent.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card)\n } else if (message.type == UnitMessage.UNIT_REQUEST_CLOSE_FLOW) {\n setIsActive(false)\n } else if (message.type == UnitMessage.UNIT_REQUEST_OPEN_LINK) {\n const href = (message.details as RequestOpenLinkEvent).href\n Linking.openURL(href)\n }\n }} />\n </View>\n </BottomSheet>\n </View>\n </>\n )\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["UNCardComponent","props","height","setHeight","useState","requestRefreshEvent","setRequestRefreshEvent","webRef","useRef","useEffect","EventBus","Instance","addListener","BusEvent","CARD_STATUS_CHANGED","_cardStatusChanged","REQUEST_REFRESH","_requestRefresh","removeListener","card","onStatusChanged","data","dependencies","includes","WebComponentType","valueOf","resourceId","cardId","current","injectJavaScript","JSON","stringify","getCardParams","customerToken","getCardScript","message","type","UnitMessage","UNIT_REQUEST_RENDERING","event","REQUEST_RENDERING","details","PageMessage","PAGE_HEIGHT"],"sources":["CardComponent.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\"\nimport { View } from \"react-native\";\nimport type WebView from \"react-native-webview\";\nimport { HeightEvent, PageMessage } from \"../../webComponent/webMessages/pageMessage\";\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from \"../../webComponent/webMessages/unitMessages\";\nimport EventBus, { BusEvent } from \"../../helpers/EventBus\"\nimport { WebComponent, WebComponentType } from \"../../webComponent/WebComponent\"\n\nexport interface UNCardComponentProps {\n cardId: string;\n customerToken: string;\n onStatusChanged?: (card: any) => void; // TODO - UNCard\n}\n\nexport const UNCardComponent = (props: UNCardComponentProps) => {\n const [height, setHeight] = useState(0)\n const [requestRefreshEvent, setRequestRefreshEvent] = useState<RequestRefreshEvent | null>(null)\n\n const webRef = useRef<WebView>(null)\n\n useEffect(() => {\n EventBus.Instance.addListener(BusEvent.CARD_STATUS_CHANGED, _cardStatusChanged)\n EventBus.Instance.addListener(BusEvent.REQUEST_REFRESH, _requestRefresh)\n return (() => {\n EventBus.Instance.removeListener(_cardStatusChanged)\n EventBus.Instance.removeListener(_requestRefresh)\n })\n }, [])\n\n const _cardStatusChanged = (card: any) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card)\n }\n }\n\n const _requestRefresh = (data: RequestRefreshEvent) => {\n setRequestRefreshEvent(data)\n }\n\n useEffect(() => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == props.cardId) {\n webRef.current?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`)\n }\n }, [requestRefreshEvent])\n\n const getCardParams = () => {\n return `\n cardId=\"${props.cardId}\"\n customerToken=\"${props.customerToken}\"\n src=\"https://d1xlopvhx2cz8k.cloudfront.net/resources/outlay.json\"\n `\n }\n\n const getCardScript = () => {\n return `\n const dispatchRefreshEvent = (details) => {\n const event = new CustomEvent(\"unitRequestRefresh\",{ detail: JSON.parse(details) })\n window.dispatchEvent(event)\n }\n `\n }\n\n return (\n <View style={{ height }}>\n <WebComponent ref={webRef} type={WebComponentType.card} params={getCardParams()} script={getCardScript()} onMessage={message => {\n if (message.type === UnitMessage.UNIT_REQUEST_RENDERING) {\n EventBus.Instance.event(BusEvent.REQUEST_RENDERING, (message.details as RequestRenderingEvent).data)\n }\n if (message.type == PageMessage.PAGE_HEIGHT) {\n setHeight((message.details as HeightEvent).height)\n }\n }} />\n </View>\n )\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;AAQO,MAAMA,eAAe,GAAIC,KAAD,IAAiC;EAC9D,MAAM,CAACC,MAAD,EAASC,SAAT,IAAsB,IAAAC,eAAA,EAAS,CAAT,CAA5B;EACA,MAAM,CAACC,mBAAD,EAAsBC,sBAAtB,IAAgD,IAAAF,eAAA,EAAqC,IAArC,CAAtD;EAEA,MAAMG,MAAM,GAAG,IAAAC,aAAA,EAAgB,IAAhB,CAAf;EAEA,IAAAC,gBAAA,EAAU,MAAM;IACdC,iBAAA,CAASC,QAAT,CAAkBC,WAAlB,CAA8BC,kBAAA,CAASC,mBAAvC,EAA4DC,kBAA5D;;IACAL,iBAAA,CAASC,QAAT,CAAkBC,WAAlB,CAA8BC,kBAAA,CAASG,eAAvC,EAAwDC,eAAxD;;IACA,OAAQ,MAAM;MACZP,iBAAA,CAASC,QAAT,CAAkBO,cAAlB,CAAiCH,kBAAjC;;MACAL,iBAAA,CAASC,QAAT,CAAkBO,cAAlB,CAAiCD,eAAjC;IACD,CAHD;EAID,CAPD,EAOG,EAPH;;EASA,MAAMF,kBAAkB,GAAII,IAAD,IAAe;IACxC,IAAIlB,KAAK,CAACmB,eAAV,EAA2B;MACzBnB,KAAK,CAACmB,eAAN,CAAsBD,IAAtB;IACD;EACF,CAJD;;EAMA,MAAMF,eAAe,GAAII,IAAD,IAA+B;IACrDf,sBAAsB,CAACe,IAAD,CAAtB;EACD,CAFD;;EAIA,IAAAZ,gBAAA,EAAU,MAAM;IACd,IAAIJ,mBAAmB,IAAIA,mBAAmB,CAACiB,YAApB,CAAiCC,QAAjC,CAA0CC,8BAAA,CAAiBL,IAAjB,CAAsBM,OAAtB,EAA1C,CAAvB,IAAqGpB,mBAAmB,CAACqB,UAApB,IAAkCzB,KAAK,CAAC0B,MAAjJ,EAAyJ;MAAA;;MACvJ,mBAAApB,MAAM,CAACqB,OAAP,oEAAgBC,gBAAhB,CAAkC,yBAAwBC,IAAI,CAACC,SAAL,CAAe1B,mBAAf,CAAoC,IAA9F;IACD;EACF,CAJD,EAIG,CAACA,mBAAD,CAJH;;EAMA,MAAM2B,aAAa,GAAG,MAAM;IAC1B,OAAQ;AACZ,gBAAgB/B,KAAK,CAAC0B,MAAO;AAC7B,uBAAuB1B,KAAK,CAACgC,aAAc;AAC3C;AACA,KAJI;EAKD,CAND;;EAQA,MAAMC,aAAa,GAAG,MAAM;IAC1B,OAAQ;AACZ;AACA;AACA;AACA;AACA,KALI;EAMD,CAPD;;EASA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAE;MAAEhC;IAAF;EAAb,gBACE,6BAAC,0BAAD;IAAc,GAAG,EAAEK,MAAnB;IAA2B,IAAI,EAAEiB,8BAAA,CAAiBL,IAAlD;IAAwD,MAAM,EAAEa,aAAa,EAA7E;IAAiF,MAAM,EAAEE,aAAa,EAAtG;IAA0G,SAAS,EAAEC,OAAO,IAAI;MAC9H,IAAIA,OAAO,CAACC,IAAR,KAAiBC,yBAAA,CAAYC,sBAAjC,EAAyD;QACvD5B,iBAAA,CAASC,QAAT,CAAkB4B,KAAlB,CAAwB1B,kBAAA,CAAS2B,iBAAjC,EAAqDL,OAAO,CAACM,OAAT,CAA2CpB,IAA/F;MACD;;MACD,IAAIc,OAAO,CAACC,IAAR,IAAgBM,wBAAA,CAAYC,WAAhC,EAA6C;QAC3CxC,SAAS,CAAEgC,OAAO,CAACM,OAAT,CAAiCvC,MAAlC,CAAT;MACD;IACF;EAPD,EADF,CADF;AAYD,CA5DM"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["BottomSheet","props","panelHeightValue","useRef","Animated","Value","sliderMaxHeight","current","fadeAnim","isPanelOpened","setIsPanelOpened","useState","isOpen","contentHeight","setContentHeight","undefined","currentHeight","setCurrentHeight","dy","setDy","_parentPanResponder","PanResponder","create","onMoveShouldSetPanResponderCapture","_","gestureState","Math","abs","onPanResponderMove","expandToMaxHeightEnabled","setValue","onPanResponderRelease","collapse","setToContentHeight","expand","useEffect","fadeIn","_dismiss","BackHandler","addEventListener","_onBackPress","id","addListener","e","value","removeEventListener","removeListener","timing","toValue","duration","useNativeDriver","start","fadeOut","onClose","animationDuration","easing","Easing","quad","_setSize","newContentHeight","nativeEvent","layout","height","children","position","top","bottom","right","left","backgroundColor","flex","opacity","panHandlers","styles","container","transform","translateY","outerContent","lineContainer","line","innerContent","propTypes","PropTypes","oneOfType","node","bool","number","animation","func","onOpen","defaultProps","Dimensions","get","StyleSheet","marginTop","paddingHorizontal","shadowColor","shadowOffset","width","shadowOpacity","shadowRadius","elevation","borderTopLeftRadius","borderTopRightRadius","alignItems","borderRadius"],"sources":["BottomSheet.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n BackHandler,\n Dimensions,\n Easing,\n // Keyboard,\n LayoutChangeEvent,\n PanResponder,\n StyleSheet,\n TouchableOpacity,\n View,\n} from 'react-native';\nimport PropTypes from 'prop-types';\n\nexport interface BottomSheetProps {\n isOpen: boolean\n children: ReactNode\n sliderMaxHeight: number\n onOpen: () => void\n onClose: () => void\n animationDuration: number,\n expandToMaxHeightEnabled: boolean\n}\n\nconst BottomSheet = (props: BottomSheetProps) => {\n const panelHeightValue = useRef(new Animated.Value(props.sliderMaxHeight)).current;\n const fadeAnim = useRef(new Animated.Value(0)).current;\n\n const [isPanelOpened, setIsPanelOpened] = useState(props.isOpen)\n const [contentHeight, setContentHeight] = useState<number | undefined>(undefined)\n\n const [currentHeight, setCurrentHeight] = useState<number>(props.sliderMaxHeight)\n\n const [dy, setDy] = useState(0)\n\n const _parentPanResponder = PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, gestureState) => {\n return Math.abs(gestureState.dy) > 10\n },\n onPanResponderMove(_, gestureState) {\n if (currentHeight + gestureState.dy < 0) return\n if (!props.expandToMaxHeightEnabled && currentHeight + gestureState.dy < sliderMaxHeight - contentHeight!) return\n panelHeightValue.setValue(currentHeight + gestureState.dy)\n setDy(gestureState.dy)\n },\n onPanResponderRelease: () => {\n if (dy > 0) {\n collapse()\n } else if (!props.expandToMaxHeightEnabled) {\n setToContentHeight(contentHeight!)\n } else if (dy < 0) {\n expand()\n } else {\n expand()\n }\n }\n });\n\n useEffect(() => {\n if (props.isOpen && !isPanelOpened) {\n fadeIn()\n } else if (isPanelOpened) {\n setContentHeight(0)\n _dismiss()\n }\n }, [props.isOpen])\n\n useEffect(() => {\n BackHandler.addEventListener('hardwareBackPress', _onBackPress);\n const id = panelHeightValue.addListener(e => setCurrentHeight(e.value))\n\n return (() => {\n BackHandler.removeEventListener('hardwareBackPress', _onBackPress);\n panelHeightValue.removeListener(id)\n })\n }, [])\n\n const fadeIn = () => {\n Animated.timing(fadeAnim, {\n toValue: 0.3,\n duration: 500,\n useNativeDriver: false\n }).start(() => { setIsPanelOpened(true) });\n };\n\n const fadeOut = () => {\n Animated.timing(fadeAnim, {\n toValue: 0,\n duration: 500,\n useNativeDriver: false\n }).start(() => {\n setIsPanelOpened(false)\n props.onClose()\n });\n };\n\n const setToContentHeight = (contentHeight: number) => {\n Animated.timing(panelHeightValue, {\n duration: props.animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight - contentHeight!,\n useNativeDriver: false,\n }).start()\n }\n\n const expand = () => {\n const { animationDuration } = props;\n\n if (currentHeight > (sliderMaxHeight - contentHeight!)) {\n setToContentHeight(contentHeight!)\n return\n }\n\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: 0,\n useNativeDriver: false,\n }).start()\n }\n\n const collapse = () => {\n if (currentHeight > (sliderMaxHeight - contentHeight!)) {\n _dismiss()\n return\n }\n\n setToContentHeight(contentHeight!)\n\n // Animated.timing(panelHeightValue, {\n // duration: animationDuration,\n // easing: Easing.quad,\n // toValue: sliderMaxHeight - contentHeight!,\n // useNativeDriver: false,\n // }).start(() => {\n // const isPanelOpenedNewValue = !isPanelOpened\n // setIsPanelOpened(isPanelOpenedNewValue)\n // if (isPanelOpenedNewValue) {\n // // onOpen();\n // } else {\n // // onClose();\n // Keyboard.dismiss();\n // }\n // });\n };\n\n const _onBackPress = () => {\n isPanelOpened && collapse();\n return isPanelOpened;\n };\n\n const _setSize = (e: LayoutChangeEvent) => {\n let newContentHeight = e.nativeEvent.layout.height\n if (newContentHeight !== 0) newContentHeight += 42;\n\n setContentHeight(newContentHeight)\n setToContentHeight(newContentHeight)\n };\n\n const _dismiss = () => {\n const { animationDuration } = props\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight,\n useNativeDriver: false,\n }).start(() => {\n })\n fadeOut()\n }\n\n const {\n sliderMaxHeight,\n children,\n } = props;\n\n return (\n <>\n <TouchableOpacity\n style={{ position: 'absolute', top: 0, bottom: 0, right: 0, left: 0 }} activeOpacity={1}\n onPress={_dismiss}\n >\n <Animated.View\n style={{ backgroundColor: 'black', flex: 1, opacity: fadeAnim }}\n >\n </Animated.View>\n </TouchableOpacity>\n <Animated.View\n {..._parentPanResponder.panHandlers}\n style={{\n ...styles.container,\n height: sliderMaxHeight,\n transform: [\n { translateY: panelHeightValue },\n ],\n }}\n >\n <View\n style={styles.outerContent}\n >\n <TouchableOpacity activeOpacity={1}>\n <View style={styles.lineContainer}>\n <View style={styles.line} />\n </View>\n </TouchableOpacity>\n <View\n onLayout={_setSize}\n style={[styles.innerContent]}\n >\n {children}\n </View>\n </View>\n </Animated.View>\n </>\n );\n}\n\nBottomSheet.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node]),\n isOpen: PropTypes.bool,\n sliderMaxHeight: PropTypes.number,\n animation: PropTypes.func,\n animationDuration: PropTypes.number,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n expandToMaxHeightEnabled: PropTypes.bool\n};\n\nBottomSheet.defaultProps = {\n children: <View />,\n isOpen: true,\n sliderMaxHeight: Dimensions.get('window').height * 0.95,\n animationDuration: 200,\n onOpen: () => null,\n onClose: () => null,\n expandToMaxHeightEnabled: false\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n marginTop: 60,\n paddingHorizontal: 12,\n shadowColor: '#000000',\n shadowOffset: {\n width: 0,\n height: 6,\n },\n shadowOpacity: 0.37,\n shadowRadius: 7.49,\n elevation: 12,\n borderTopLeftRadius: 15,\n borderTopRightRadius: 15,\n backgroundColor: '#ffffff',\n },\n lineContainer: {\n borderTopLeftRadius: 30,\n borderTopRightRadius: 30,\n alignItems: 'center'\n },\n line: {\n width: 35,\n height: 4,\n borderRadius: 2,\n marginTop: 18,\n backgroundColor: '#D5DDE0',\n },\n outerContent: {\n flex: -1,\n },\n innerContent: {\n flex: -1,\n },\n});\n\nexport default BottomSheet;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["CardMessage"],"sources":["cardMessage.ts"],"sourcesContent":["export enum CardMessage {\n CARD_STATUS_CHANGE = 'cardStatusChanged'\n}\n\nexport interface CardStatusChangedEvent {\n card: any;\n}\n\nexport type CardEvent =\n | CardStatusChangedEvent\n"],"mappings":";;;;;;IAAYA,W;;;WAAAA,W;EAAAA,W;GAAAA,W,2BAAAA,W"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["UnitMessage"],"sources":["unitMessages.ts"],"sourcesContent":["export enum UnitMessage {\n UNIT_REQUEST_RENDERING = 'unitRequestRendering',\n UNIT_REQUEST_REFRESH = 'unitRequestRefresh',\n UNIT_REQUEST_CLOSE_FLOW = 'unitRequestCloseFlow',\n UNIT_REQUEST_OPEN_LINK = 'unitRequestOpenLink',\n UNIT_ON_LOAD = 'unitOnLoad'\n}\n\nexport interface RequestRenderingData {\n nativePlace: string;\n nativeComponent: string;\n}\nexport interface RequestRenderingEvent {\n data: string;\n}\n\nexport interface RequestRefreshEvent {\n refEvent: string;\n dependencies: string[];\n resourceId: string;\n}\n\nexport interface RequestOpenLinkEvent {\n href: string;\n target: string\n}\n\nexport type UnitEvent =\n | RequestRenderingEvent\n | RequestRefreshEvent\n | RequestOpenLinkEvent\n"],"mappings":";;;;;;IAAYA,W;;;WAAAA,W;EAAAA,W;EAAAA,W;EAAAA,W;EAAAA,W;EAAAA,W;GAAAA,W,2BAAAA,W"}
@@ -1,118 +0,0 @@
1
- import React, { useEffect, useRef, useState } from "react";
2
- import { WebComponent, WebComponentType } from "../../webComponent/WebComponent";
3
- import { Dimensions, Linking, View } from "react-native";
4
- import BottomSheet from "../../helpers/BottomSheet";
5
- import EventBus, { BusEvent } from "../../helpers/EventBus";
6
- import { PageMessage } from "../../webComponent/webMessages/pageMessage";
7
- import { UnitMessage } from "../../webComponent/webMessages/unitMessages";
8
- import { CardMessage } from "../../webComponent/webMessages/cardMessage";
9
- export const UNBottomSheetComponent = () => {
10
- const [isActive, setIsActive] = useState(false);
11
- const [height, setHeight] = useState(0);
12
- const [renderingRequest, setRenderingRequest] = useState(null);
13
- const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false);
14
- const [newHeightMessage, setNewHeightMessage] = useState(null);
15
- const webRef = useRef(null);
16
-
17
- const _listener = data => {
18
- setRenderingRequest(data);
19
- setIsActive(true);
20
- };
21
-
22
- useEffect(() => {
23
- if (!webRef.current) return;
24
-
25
- if (renderingRequest) {
26
- var _webRef$current;
27
-
28
- (_webRef$current = webRef.current) === null || _webRef$current === void 0 ? void 0 : _webRef$current.injectJavaScript(`dispatchRenderingEvent('${renderingRequest}')`);
29
- }
30
- }, [webRef.current, renderingRequest]);
31
- useEffect(() => {
32
- if (!isActive) {
33
- setHeight(0);
34
- setRenderingRequest(null);
35
- }
36
- }, [isActive]);
37
- useEffect(() => {
38
- if (!waitForLoadingNewComponent && newHeightMessage) {
39
- setWaitForLoadingNewComponent(false);
40
- setNewHeight(newHeightMessage);
41
- }
42
- }, [waitForLoadingNewComponent, newHeightMessage]);
43
- useEffect(() => {
44
- EventBus.Instance.addListener(BusEvent.REQUEST_RENDERING, _listener);
45
- return () => {
46
- EventBus.Instance.removeListener(_listener);
47
- };
48
- }, []);
49
-
50
- const getBottomSheetScript = () => {
51
- return `
52
- window.addEventListener("unitRequestRefresh", (e) => {
53
- postMessageToSDK({ type: "unitRequestRefresh", details: e.detail })
54
- });
55
- `;
56
- };
57
-
58
- const setNewHeight = message => {
59
- if (renderingRequest) {
60
- const nativePlace = JSON.parse(renderingRequest).nativePlace;
61
-
62
- if (nativePlace == 'overFullScreen') {
63
- const windowHeight = Dimensions.get('window').height * 0.94;
64
- setHeight(windowHeight);
65
- } else {
66
- setHeight(message.details.height);
67
- }
68
- }
69
- };
70
-
71
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, {
72
- pointerEvents: isActive ? undefined : 'none',
73
- style: {
74
- position: 'absolute',
75
- top: 0,
76
- bottom: 0,
77
- left: 0,
78
- right: 0
79
- }
80
- }, /*#__PURE__*/React.createElement(BottomSheet, {
81
- isOpen: isActive,
82
- onClose: () => setIsActive(false),
83
- onOpen: () => setIsActive(true)
84
- }, /*#__PURE__*/React.createElement(View, {
85
- style: {
86
- height,
87
- paddingTop: height === 0 ? 0 : 10
88
- }
89
- }, /*#__PURE__*/React.createElement(WebComponent, {
90
- ref: webRef,
91
- type: WebComponentType.slot,
92
- script: getBottomSheetScript(),
93
- onMessage: message => {
94
- if (renderingRequest && message.type == PageMessage.PAGE_HEIGHT) {
95
- setNewHeightMessage(message);
96
- } else if (message.type == UnitMessage.UNIT_REQUEST_RENDERING) {
97
- const {
98
- data
99
- } = message.details;
100
-
101
- if (data != renderingRequest) {
102
- setHeight(0);
103
- setRenderingRequest(data);
104
- setWaitForLoadingNewComponent(true);
105
- setTimeout(() => setWaitForLoadingNewComponent(false), 400);
106
- }
107
- } else if (message.type == CardMessage.CARD_STATUS_CHANGE) {
108
- EventBus.Instance.event(BusEvent.CARD_STATUS_CHANGED, message.details.card);
109
- } else if (message.type == UnitMessage.UNIT_REQUEST_CLOSE_FLOW) {
110
- setIsActive(false);
111
- } else if (message.type == UnitMessage.UNIT_REQUEST_OPEN_LINK) {
112
- const href = message.details.href;
113
- Linking.openURL(href);
114
- }
115
- }
116
- })))));
117
- };
118
- //# sourceMappingURL=BottomSheetComponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","WebComponent","WebComponentType","Dimensions","Linking","View","BottomSheet","EventBus","BusEvent","PageMessage","UnitMessage","CardMessage","UNBottomSheetComponent","isActive","setIsActive","height","setHeight","renderingRequest","setRenderingRequest","waitForLoadingNewComponent","setWaitForLoadingNewComponent","newHeightMessage","setNewHeightMessage","webRef","_listener","data","current","injectJavaScript","setNewHeight","Instance","addListener","REQUEST_RENDERING","removeListener","getBottomSheetScript","message","nativePlace","JSON","parse","windowHeight","get","details","undefined","position","top","bottom","left","right","paddingTop","slot","type","PAGE_HEIGHT","UNIT_REQUEST_RENDERING","setTimeout","CARD_STATUS_CHANGE","event","CARD_STATUS_CHANGED","card","UNIT_REQUEST_CLOSE_FLOW","UNIT_REQUEST_OPEN_LINK","href","openURL"],"sources":["BottomSheetComponent.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\"\nimport type WebView from \"react-native-webview\"\nimport { WebComponent, WebComponentType, WebViewMessage } from \"../../webComponent/WebComponent\"\nimport { Dimensions, Linking, View } from \"react-native\"\nimport BottomSheet from \"../../helpers/BottomSheet\"\nimport EventBus, { BusEvent } from \"../../helpers/EventBus\"\nimport { HeightEvent, PageMessage } from \"../../webComponent/webMessages/pageMessage\"\nimport { RequestOpenLinkEvent, RequestRenderingData, RequestRenderingEvent, UnitMessage } from \"../../webComponent/webMessages/unitMessages\"\nimport { CardMessage, CardStatusChangedEvent } from \"../../webComponent/webMessages/cardMessage\"\n\nexport const UNBottomSheetComponent = () => {\n const [isActive, setIsActive] = useState(false)\n const [height, setHeight] = useState(0)\n\n const [renderingRequest, setRenderingRequest] = useState<string | null>(null)\n\n const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false)\n const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null)\n\n const webRef = useRef<WebView>(null)\n\n const _listener = (data: string) => {\n setRenderingRequest(data)\n setIsActive(true)\n }\n\n useEffect(() => {\n if (!webRef.current) return\n if (renderingRequest) {\n webRef.current?.injectJavaScript(`dispatchRenderingEvent('${renderingRequest}')`)\n }\n }, [webRef.current, renderingRequest])\n\n useEffect(() => {\n if (!isActive) {\n setHeight(0)\n setRenderingRequest(null)\n }\n }, [isActive])\n\n useEffect(() => {\n if (!waitForLoadingNewComponent && newHeightMessage) {\n setWaitForLoadingNewComponent(false)\n setNewHeight(newHeightMessage)\n }\n }, [waitForLoadingNewComponent, newHeightMessage])\n\n useEffect(() => {\n EventBus.Instance.addListener(BusEvent.REQUEST_RENDERING, _listener)\n\n return (() => {\n EventBus.Instance.removeListener(_listener)\n })\n }, [])\n\n const getBottomSheetScript = () => {\n return `\n window.addEventListener(\"unitRequestRefresh\", (e) => {\n postMessageToSDK({ type: \"unitRequestRefresh\", details: e.detail })\n });\n `\n }\n\n const setNewHeight = (message: WebViewMessage) => {\n if (renderingRequest) {\n const nativePlace = (JSON.parse(renderingRequest) as RequestRenderingData).nativePlace;\n if (nativePlace == 'overFullScreen') {\n const windowHeight = Dimensions.get('window').height * 0.94;\n setHeight(windowHeight)\n } else {\n setHeight((message.details as HeightEvent).height)\n }\n }\n }\n\n return (\n <>\n <View\n pointerEvents={isActive ? undefined : 'none'}\n style={{ position: 'absolute', top: 0, bottom: 0, left: 0, right: 0 }}\n >\n <BottomSheet\n isOpen={isActive}\n onClose={() => setIsActive(false)}\n onOpen={() => setIsActive(true)}\n >\n <View style={{ height, paddingTop: height === 0 ? 0 : 10 }}>\n <WebComponent ref={webRef} type={WebComponentType.slot} script={getBottomSheetScript()} onMessage={message => {\n if (renderingRequest && message.type == PageMessage.PAGE_HEIGHT) {\n setNewHeightMessage(message)\n } else if (message.type == UnitMessage.UNIT_REQUEST_RENDERING) {\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 } else if (message.type == CardMessage.CARD_STATUS_CHANGE) {\n EventBus.Instance.event(BusEvent.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card)\n } else if (message.type == UnitMessage.UNIT_REQUEST_CLOSE_FLOW) {\n setIsActive(false)\n } else if (message.type == UnitMessage.UNIT_REQUEST_OPEN_LINK) {\n const href = (message.details as RequestOpenLinkEvent).href\n Linking.openURL(href)\n }\n }} />\n </View>\n </BottomSheet>\n </View>\n </>\n )\n}\n"],"mappings":"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"}
@@ -1,75 +0,0 @@
1
- import React, { useEffect, useRef, useState } from "react";
2
- import { View } from "react-native";
3
- import { PageMessage } from "../../webComponent/webMessages/pageMessage";
4
- import { UnitMessage } from "../../webComponent/webMessages/unitMessages";
5
- import EventBus, { BusEvent } from "../../helpers/EventBus";
6
- import { WebComponent, WebComponentType } from "../../webComponent/WebComponent";
7
- export const UNCardComponent = props => {
8
- const [height, setHeight] = useState(0);
9
- const [requestRefreshEvent, setRequestRefreshEvent] = useState(null);
10
- const webRef = useRef(null);
11
- useEffect(() => {
12
- EventBus.Instance.addListener(BusEvent.CARD_STATUS_CHANGED, _cardStatusChanged);
13
- EventBus.Instance.addListener(BusEvent.REQUEST_REFRESH, _requestRefresh);
14
- return () => {
15
- EventBus.Instance.removeListener(_cardStatusChanged);
16
- EventBus.Instance.removeListener(_requestRefresh);
17
- };
18
- }, []);
19
-
20
- const _cardStatusChanged = card => {
21
- if (props.onStatusChanged) {
22
- props.onStatusChanged(card);
23
- }
24
- };
25
-
26
- const _requestRefresh = data => {
27
- setRequestRefreshEvent(data);
28
- };
29
-
30
- useEffect(() => {
31
- if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == props.cardId) {
32
- var _webRef$current;
33
-
34
- (_webRef$current = webRef.current) === null || _webRef$current === void 0 ? void 0 : _webRef$current.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`);
35
- }
36
- }, [requestRefreshEvent]);
37
-
38
- const getCardParams = () => {
39
- return `
40
- cardId="${props.cardId}"
41
- customerToken="${props.customerToken}"
42
- src="https://d1xlopvhx2cz8k.cloudfront.net/resources/outlay.json"
43
- `;
44
- };
45
-
46
- const getCardScript = () => {
47
- return `
48
- const dispatchRefreshEvent = (details) => {
49
- const event = new CustomEvent("unitRequestRefresh",{ detail: JSON.parse(details) })
50
- window.dispatchEvent(event)
51
- }
52
- `;
53
- };
54
-
55
- return /*#__PURE__*/React.createElement(View, {
56
- style: {
57
- height
58
- }
59
- }, /*#__PURE__*/React.createElement(WebComponent, {
60
- ref: webRef,
61
- type: WebComponentType.card,
62
- params: getCardParams(),
63
- script: getCardScript(),
64
- onMessage: message => {
65
- if (message.type === UnitMessage.UNIT_REQUEST_RENDERING) {
66
- EventBus.Instance.event(BusEvent.REQUEST_RENDERING, message.details.data);
67
- }
68
-
69
- if (message.type == PageMessage.PAGE_HEIGHT) {
70
- setHeight(message.details.height);
71
- }
72
- }
73
- }));
74
- };
75
- //# sourceMappingURL=CardComponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","View","PageMessage","UnitMessage","EventBus","BusEvent","WebComponent","WebComponentType","UNCardComponent","props","height","setHeight","requestRefreshEvent","setRequestRefreshEvent","webRef","Instance","addListener","CARD_STATUS_CHANGED","_cardStatusChanged","REQUEST_REFRESH","_requestRefresh","removeListener","card","onStatusChanged","data","dependencies","includes","valueOf","resourceId","cardId","current","injectJavaScript","JSON","stringify","getCardParams","customerToken","getCardScript","message","type","UNIT_REQUEST_RENDERING","event","REQUEST_RENDERING","details","PAGE_HEIGHT"],"sources":["CardComponent.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from \"react\"\nimport { View } from \"react-native\";\nimport type WebView from \"react-native-webview\";\nimport { HeightEvent, PageMessage } from \"../../webComponent/webMessages/pageMessage\";\nimport { RequestRefreshEvent, RequestRenderingEvent, UnitMessage } from \"../../webComponent/webMessages/unitMessages\";\nimport EventBus, { BusEvent } from \"../../helpers/EventBus\"\nimport { WebComponent, WebComponentType } from \"../../webComponent/WebComponent\"\n\nexport interface UNCardComponentProps {\n cardId: string;\n customerToken: string;\n onStatusChanged?: (card: any) => void; // TODO - UNCard\n}\n\nexport const UNCardComponent = (props: UNCardComponentProps) => {\n const [height, setHeight] = useState(0)\n const [requestRefreshEvent, setRequestRefreshEvent] = useState<RequestRefreshEvent | null>(null)\n\n const webRef = useRef<WebView>(null)\n\n useEffect(() => {\n EventBus.Instance.addListener(BusEvent.CARD_STATUS_CHANGED, _cardStatusChanged)\n EventBus.Instance.addListener(BusEvent.REQUEST_REFRESH, _requestRefresh)\n return (() => {\n EventBus.Instance.removeListener(_cardStatusChanged)\n EventBus.Instance.removeListener(_requestRefresh)\n })\n }, [])\n\n const _cardStatusChanged = (card: any) => {\n if (props.onStatusChanged) {\n props.onStatusChanged(card)\n }\n }\n\n const _requestRefresh = (data: RequestRefreshEvent) => {\n setRequestRefreshEvent(data)\n }\n\n useEffect(() => {\n if (requestRefreshEvent && requestRefreshEvent.dependencies.includes(WebComponentType.card.valueOf()) && requestRefreshEvent.resourceId == props.cardId) {\n webRef.current?.injectJavaScript(`dispatchRefreshEvent('${JSON.stringify(requestRefreshEvent)}')`)\n }\n }, [requestRefreshEvent])\n\n const getCardParams = () => {\n return `\n cardId=\"${props.cardId}\"\n customerToken=\"${props.customerToken}\"\n src=\"https://d1xlopvhx2cz8k.cloudfront.net/resources/outlay.json\"\n `\n }\n\n const getCardScript = () => {\n return `\n const dispatchRefreshEvent = (details) => {\n const event = new CustomEvent(\"unitRequestRefresh\",{ detail: JSON.parse(details) })\n window.dispatchEvent(event)\n }\n `\n }\n\n return (\n <View style={{ height }}>\n <WebComponent ref={webRef} type={WebComponentType.card} params={getCardParams()} script={getCardScript()} onMessage={message => {\n if (message.type === UnitMessage.UNIT_REQUEST_RENDERING) {\n EventBus.Instance.event(BusEvent.REQUEST_RENDERING, (message.details as RequestRenderingEvent).data)\n }\n if (message.type == PageMessage.PAGE_HEIGHT) {\n setHeight((message.details as HeightEvent).height)\n }\n }} />\n </View>\n )\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","Animated","BackHandler","Dimensions","Easing","PanResponder","StyleSheet","TouchableOpacity","View","PropTypes","BottomSheet","props","panelHeightValue","Value","sliderMaxHeight","current","fadeAnim","isPanelOpened","setIsPanelOpened","isOpen","contentHeight","setContentHeight","undefined","currentHeight","setCurrentHeight","dy","setDy","_parentPanResponder","create","onMoveShouldSetPanResponderCapture","_","gestureState","Math","abs","onPanResponderMove","expandToMaxHeightEnabled","setValue","onPanResponderRelease","collapse","setToContentHeight","expand","fadeIn","_dismiss","addEventListener","_onBackPress","id","addListener","e","value","removeEventListener","removeListener","timing","toValue","duration","useNativeDriver","start","fadeOut","onClose","animationDuration","easing","quad","_setSize","newContentHeight","nativeEvent","layout","height","children","position","top","bottom","right","left","backgroundColor","flex","opacity","panHandlers","styles","container","transform","translateY","outerContent","lineContainer","line","innerContent","propTypes","oneOfType","node","bool","number","animation","func","onOpen","defaultProps","get","marginTop","paddingHorizontal","shadowColor","shadowOffset","width","shadowOpacity","shadowRadius","elevation","borderTopLeftRadius","borderTopRightRadius","alignItems","borderRadius"],"sources":["BottomSheet.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n BackHandler,\n Dimensions,\n Easing,\n // Keyboard,\n LayoutChangeEvent,\n PanResponder,\n StyleSheet,\n TouchableOpacity,\n View,\n} from 'react-native';\nimport PropTypes from 'prop-types';\n\nexport interface BottomSheetProps {\n isOpen: boolean\n children: ReactNode\n sliderMaxHeight: number\n onOpen: () => void\n onClose: () => void\n animationDuration: number,\n expandToMaxHeightEnabled: boolean\n}\n\nconst BottomSheet = (props: BottomSheetProps) => {\n const panelHeightValue = useRef(new Animated.Value(props.sliderMaxHeight)).current;\n const fadeAnim = useRef(new Animated.Value(0)).current;\n\n const [isPanelOpened, setIsPanelOpened] = useState(props.isOpen)\n const [contentHeight, setContentHeight] = useState<number | undefined>(undefined)\n\n const [currentHeight, setCurrentHeight] = useState<number>(props.sliderMaxHeight)\n\n const [dy, setDy] = useState(0)\n\n const _parentPanResponder = PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, gestureState) => {\n return Math.abs(gestureState.dy) > 10\n },\n onPanResponderMove(_, gestureState) {\n if (currentHeight + gestureState.dy < 0) return\n if (!props.expandToMaxHeightEnabled && currentHeight + gestureState.dy < sliderMaxHeight - contentHeight!) return\n panelHeightValue.setValue(currentHeight + gestureState.dy)\n setDy(gestureState.dy)\n },\n onPanResponderRelease: () => {\n if (dy > 0) {\n collapse()\n } else if (!props.expandToMaxHeightEnabled) {\n setToContentHeight(contentHeight!)\n } else if (dy < 0) {\n expand()\n } else {\n expand()\n }\n }\n });\n\n useEffect(() => {\n if (props.isOpen && !isPanelOpened) {\n fadeIn()\n } else if (isPanelOpened) {\n setContentHeight(0)\n _dismiss()\n }\n }, [props.isOpen])\n\n useEffect(() => {\n BackHandler.addEventListener('hardwareBackPress', _onBackPress);\n const id = panelHeightValue.addListener(e => setCurrentHeight(e.value))\n\n return (() => {\n BackHandler.removeEventListener('hardwareBackPress', _onBackPress);\n panelHeightValue.removeListener(id)\n })\n }, [])\n\n const fadeIn = () => {\n Animated.timing(fadeAnim, {\n toValue: 0.3,\n duration: 500,\n useNativeDriver: false\n }).start(() => { setIsPanelOpened(true) });\n };\n\n const fadeOut = () => {\n Animated.timing(fadeAnim, {\n toValue: 0,\n duration: 500,\n useNativeDriver: false\n }).start(() => {\n setIsPanelOpened(false)\n props.onClose()\n });\n };\n\n const setToContentHeight = (contentHeight: number) => {\n Animated.timing(panelHeightValue, {\n duration: props.animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight - contentHeight!,\n useNativeDriver: false,\n }).start()\n }\n\n const expand = () => {\n const { animationDuration } = props;\n\n if (currentHeight > (sliderMaxHeight - contentHeight!)) {\n setToContentHeight(contentHeight!)\n return\n }\n\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: 0,\n useNativeDriver: false,\n }).start()\n }\n\n const collapse = () => {\n if (currentHeight > (sliderMaxHeight - contentHeight!)) {\n _dismiss()\n return\n }\n\n setToContentHeight(contentHeight!)\n\n // Animated.timing(panelHeightValue, {\n // duration: animationDuration,\n // easing: Easing.quad,\n // toValue: sliderMaxHeight - contentHeight!,\n // useNativeDriver: false,\n // }).start(() => {\n // const isPanelOpenedNewValue = !isPanelOpened\n // setIsPanelOpened(isPanelOpenedNewValue)\n // if (isPanelOpenedNewValue) {\n // // onOpen();\n // } else {\n // // onClose();\n // Keyboard.dismiss();\n // }\n // });\n };\n\n const _onBackPress = () => {\n isPanelOpened && collapse();\n return isPanelOpened;\n };\n\n const _setSize = (e: LayoutChangeEvent) => {\n let newContentHeight = e.nativeEvent.layout.height\n if (newContentHeight !== 0) newContentHeight += 42;\n\n setContentHeight(newContentHeight)\n setToContentHeight(newContentHeight)\n };\n\n const _dismiss = () => {\n const { animationDuration } = props\n Animated.timing(panelHeightValue, {\n duration: animationDuration,\n easing: Easing.quad,\n toValue: sliderMaxHeight,\n useNativeDriver: false,\n }).start(() => {\n })\n fadeOut()\n }\n\n const {\n sliderMaxHeight,\n children,\n } = props;\n\n return (\n <>\n <TouchableOpacity\n style={{ position: 'absolute', top: 0, bottom: 0, right: 0, left: 0 }} activeOpacity={1}\n onPress={_dismiss}\n >\n <Animated.View\n style={{ backgroundColor: 'black', flex: 1, opacity: fadeAnim }}\n >\n </Animated.View>\n </TouchableOpacity>\n <Animated.View\n {..._parentPanResponder.panHandlers}\n style={{\n ...styles.container,\n height: sliderMaxHeight,\n transform: [\n { translateY: panelHeightValue },\n ],\n }}\n >\n <View\n style={styles.outerContent}\n >\n <TouchableOpacity activeOpacity={1}>\n <View style={styles.lineContainer}>\n <View style={styles.line} />\n </View>\n </TouchableOpacity>\n <View\n onLayout={_setSize}\n style={[styles.innerContent]}\n >\n {children}\n </View>\n </View>\n </Animated.View>\n </>\n );\n}\n\nBottomSheet.propTypes = {\n children: PropTypes.oneOfType([PropTypes.node]),\n isOpen: PropTypes.bool,\n sliderMaxHeight: PropTypes.number,\n animation: PropTypes.func,\n animationDuration: PropTypes.number,\n onOpen: PropTypes.func,\n onClose: PropTypes.func,\n expandToMaxHeightEnabled: PropTypes.bool\n};\n\nBottomSheet.defaultProps = {\n children: <View />,\n isOpen: true,\n sliderMaxHeight: Dimensions.get('window').height * 0.95,\n animationDuration: 200,\n onOpen: () => null,\n onClose: () => null,\n expandToMaxHeightEnabled: false\n};\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n marginTop: 60,\n paddingHorizontal: 12,\n shadowColor: '#000000',\n shadowOffset: {\n width: 0,\n height: 6,\n },\n shadowOpacity: 0.37,\n shadowRadius: 7.49,\n elevation: 12,\n borderTopLeftRadius: 15,\n borderTopRightRadius: 15,\n backgroundColor: '#ffffff',\n },\n lineContainer: {\n borderTopLeftRadius: 30,\n borderTopRightRadius: 30,\n alignItems: 'center'\n },\n line: {\n width: 35,\n height: 4,\n borderRadius: 2,\n marginTop: 18,\n backgroundColor: '#D5DDE0',\n },\n outerContent: {\n flex: -1,\n },\n innerContent: {\n flex: -1,\n },\n});\n\nexport default BottomSheet;\n"],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- export let CardMessage;
2
-
3
- (function (CardMessage) {
4
- CardMessage["CARD_STATUS_CHANGE"] = "cardStatusChanged";
5
- })(CardMessage || (CardMessage = {}));
6
- //# sourceMappingURL=cardMessage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["CardMessage"],"sources":["cardMessage.ts"],"sourcesContent":["export enum CardMessage {\n CARD_STATUS_CHANGE = 'cardStatusChanged'\n}\n\nexport interface CardStatusChangedEvent {\n card: any;\n}\n\nexport type CardEvent =\n | CardStatusChangedEvent\n"],"mappings":"AAAA,WAAYA,WAAZ;;WAAYA,W;EAAAA,W;GAAAA,W,KAAAA,W"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["UnitMessage"],"sources":["unitMessages.ts"],"sourcesContent":["export enum UnitMessage {\n UNIT_REQUEST_RENDERING = 'unitRequestRendering',\n UNIT_REQUEST_REFRESH = 'unitRequestRefresh',\n UNIT_REQUEST_CLOSE_FLOW = 'unitRequestCloseFlow',\n UNIT_REQUEST_OPEN_LINK = 'unitRequestOpenLink',\n UNIT_ON_LOAD = 'unitOnLoad'\n}\n\nexport interface RequestRenderingData {\n nativePlace: string;\n nativeComponent: string;\n}\nexport interface RequestRenderingEvent {\n data: string;\n}\n\nexport interface RequestRefreshEvent {\n refEvent: string;\n dependencies: string[];\n resourceId: string;\n}\n\nexport interface RequestOpenLinkEvent {\n href: string;\n target: string\n}\n\nexport type UnitEvent =\n | RequestRenderingEvent\n | RequestRefreshEvent\n | RequestOpenLinkEvent\n"],"mappings":"AAAA,WAAYA,WAAZ;;WAAYA,W;EAAAA,W;EAAAA,W;EAAAA,W;EAAAA,W;EAAAA,W;GAAAA,W,KAAAA,W"}
@@ -1,113 +0,0 @@
1
- import React, { useEffect, useRef, useState } from "react"
2
- import type WebView from "react-native-webview"
3
- import { WebComponent, WebComponentType, WebViewMessage } from "../../webComponent/WebComponent"
4
- import { Dimensions, Linking, View } from "react-native"
5
- import BottomSheet from "../../helpers/BottomSheet"
6
- import EventBus, { BusEvent } from "../../helpers/EventBus"
7
- import { HeightEvent, PageMessage } from "../../webComponent/webMessages/pageMessage"
8
- import { RequestOpenLinkEvent, RequestRenderingData, RequestRenderingEvent, UnitMessage } from "../../webComponent/webMessages/unitMessages"
9
- import { CardMessage, CardStatusChangedEvent } from "../../webComponent/webMessages/cardMessage"
10
-
11
- export const UNBottomSheetComponent = () => {
12
- const [isActive, setIsActive] = useState(false)
13
- const [height, setHeight] = useState(0)
14
-
15
- const [renderingRequest, setRenderingRequest] = useState<string | null>(null)
16
-
17
- const [waitForLoadingNewComponent, setWaitForLoadingNewComponent] = useState(false)
18
- const [newHeightMessage, setNewHeightMessage] = useState<WebViewMessage | null>(null)
19
-
20
- const webRef = useRef<WebView>(null)
21
-
22
- const _listener = (data: string) => {
23
- setRenderingRequest(data)
24
- setIsActive(true)
25
- }
26
-
27
- useEffect(() => {
28
- if (!webRef.current) return
29
- if (renderingRequest) {
30
- webRef.current?.injectJavaScript(`dispatchRenderingEvent('${renderingRequest}')`)
31
- }
32
- }, [webRef.current, renderingRequest])
33
-
34
- useEffect(() => {
35
- if (!isActive) {
36
- setHeight(0)
37
- setRenderingRequest(null)
38
- }
39
- }, [isActive])
40
-
41
- useEffect(() => {
42
- if (!waitForLoadingNewComponent && newHeightMessage) {
43
- setWaitForLoadingNewComponent(false)
44
- setNewHeight(newHeightMessage)
45
- }
46
- }, [waitForLoadingNewComponent, newHeightMessage])
47
-
48
- useEffect(() => {
49
- EventBus.Instance.addListener(BusEvent.REQUEST_RENDERING, _listener)
50
-
51
- return (() => {
52
- EventBus.Instance.removeListener(_listener)
53
- })
54
- }, [])
55
-
56
- const getBottomSheetScript = () => {
57
- return `
58
- window.addEventListener("unitRequestRefresh", (e) => {
59
- postMessageToSDK({ type: "unitRequestRefresh", details: e.detail })
60
- });
61
- `
62
- }
63
-
64
- const setNewHeight = (message: WebViewMessage) => {
65
- if (renderingRequest) {
66
- const nativePlace = (JSON.parse(renderingRequest) as RequestRenderingData).nativePlace;
67
- if (nativePlace == 'overFullScreen') {
68
- const windowHeight = Dimensions.get('window').height * 0.94;
69
- setHeight(windowHeight)
70
- } else {
71
- setHeight((message.details as HeightEvent).height)
72
- }
73
- }
74
- }
75
-
76
- return (
77
- <>
78
- <View
79
- pointerEvents={isActive ? undefined : 'none'}
80
- style={{ position: 'absolute', top: 0, bottom: 0, left: 0, right: 0 }}
81
- >
82
- <BottomSheet
83
- isOpen={isActive}
84
- onClose={() => setIsActive(false)}
85
- onOpen={() => setIsActive(true)}
86
- >
87
- <View style={{ height, paddingTop: height === 0 ? 0 : 10 }}>
88
- <WebComponent ref={webRef} type={WebComponentType.slot} script={getBottomSheetScript()} onMessage={message => {
89
- if (renderingRequest && message.type == PageMessage.PAGE_HEIGHT) {
90
- setNewHeightMessage(message)
91
- } else if (message.type == UnitMessage.UNIT_REQUEST_RENDERING) {
92
- const { data } = (message.details! as RequestRenderingEvent)
93
- if (data != renderingRequest) {
94
- setHeight(0)
95
- setRenderingRequest(data)
96
- setWaitForLoadingNewComponent(true)
97
- setTimeout(() => setWaitForLoadingNewComponent(false), 400)
98
- }
99
- } else if (message.type == CardMessage.CARD_STATUS_CHANGE) {
100
- EventBus.Instance.event(BusEvent.CARD_STATUS_CHANGED, (message.details as CardStatusChangedEvent).card)
101
- } else if (message.type == UnitMessage.UNIT_REQUEST_CLOSE_FLOW) {
102
- setIsActive(false)
103
- } else if (message.type == UnitMessage.UNIT_REQUEST_OPEN_LINK) {
104
- const href = (message.details as RequestOpenLinkEvent).href
105
- Linking.openURL(href)
106
- }
107
- }} />
108
- </View>
109
- </BottomSheet>
110
- </View>
111
- </>
112
- )
113
- }