@solucx/react-native-solucx-widget 0.2.5 → 2.0.7

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 (256) hide show
  1. package/README.md +526 -182
  2. package/lib/SoluCXWidget.d.ts +50 -7
  3. package/lib/SoluCXWidget.d.ts.map +1 -1
  4. package/lib/SoluCXWidget.js +105 -101
  5. package/lib/SoluCXWidget.js.map +1 -1
  6. package/lib/SoluCXWidgetHost.d.ts +3 -0
  7. package/lib/SoluCXWidgetHost.d.ts.map +1 -0
  8. package/lib/SoluCXWidgetHost.js +34 -0
  9. package/lib/SoluCXWidgetHost.js.map +1 -0
  10. package/lib/SoluCXWidgetView.d.ts +12 -0
  11. package/lib/SoluCXWidgetView.d.ts.map +1 -0
  12. package/lib/SoluCXWidgetView.js +61 -0
  13. package/lib/SoluCXWidgetView.js.map +1 -0
  14. package/lib/components/CloseButton.d.ts +1 -1
  15. package/lib/components/CloseButton.d.ts.map +1 -1
  16. package/lib/components/CloseButton.js +4 -1
  17. package/lib/components/CloseButton.js.map +1 -1
  18. package/lib/components/InlineWidget.d.ts.map +1 -1
  19. package/lib/components/InlineWidget.js +2 -7
  20. package/lib/components/InlineWidget.js.map +1 -1
  21. package/lib/components/ModalWidget.d.ts +1 -1
  22. package/lib/components/ModalWidget.d.ts.map +1 -1
  23. package/lib/components/ModalWidget.js +3 -16
  24. package/lib/components/ModalWidget.js.map +1 -1
  25. package/lib/components/OverlayWidget.d.ts.map +1 -1
  26. package/lib/components/OverlayWidget.js +5 -15
  27. package/lib/components/OverlayWidget.js.map +1 -1
  28. package/lib/components/index.d.ts +5 -0
  29. package/lib/components/index.d.ts.map +1 -0
  30. package/lib/components/index.js +12 -0
  31. package/lib/components/index.js.map +1 -0
  32. package/lib/constants/Constants.d.ts +11 -0
  33. package/lib/constants/Constants.d.ts.map +1 -1
  34. package/lib/constants/Constants.js +16 -1
  35. package/lib/constants/Constants.js.map +1 -1
  36. package/lib/{interfaces → domain}/WidgetCallbacks.d.ts +2 -2
  37. package/lib/domain/WidgetCallbacks.d.ts.map +1 -0
  38. package/lib/domain/WidgetCallbacks.js.map +1 -0
  39. package/{src/interfaces/WidgetData.ts → lib/domain/WidgetData.d.ts} +5 -2
  40. package/lib/domain/WidgetData.d.ts.map +1 -0
  41. package/lib/{interfaces → domain}/WidgetData.js.map +1 -1
  42. package/lib/domain/WidgetDisplayResult.d.ts +6 -0
  43. package/lib/domain/WidgetDisplayResult.d.ts.map +1 -0
  44. package/lib/domain/WidgetDisplayResult.js +3 -0
  45. package/lib/domain/WidgetDisplayResult.js.map +1 -0
  46. package/lib/domain/WidgetOptions.d.ts +27 -0
  47. package/lib/domain/WidgetOptions.d.ts.map +1 -0
  48. package/lib/domain/WidgetOptions.js +30 -0
  49. package/lib/domain/WidgetOptions.js.map +1 -0
  50. package/lib/domain/WidgetResponse.d.ts +5 -0
  51. package/lib/domain/WidgetResponse.d.ts.map +1 -0
  52. package/lib/{interfaces/WidgetOptions.js → domain/WidgetResponse.js} +1 -1
  53. package/lib/domain/WidgetResponse.js.map +1 -0
  54. package/lib/domain/WidgetSamplerLog.d.ts +12 -0
  55. package/lib/domain/WidgetSamplerLog.d.ts.map +1 -0
  56. package/lib/domain/WidgetSamplerLog.js.map +1 -0
  57. package/lib/{interfaces → domain}/index.d.ts +1 -2
  58. package/lib/domain/index.d.ts.map +1 -0
  59. package/lib/{interfaces → domain}/index.js.map +1 -1
  60. package/lib/hooks/index.d.ts +2 -2
  61. package/lib/hooks/index.d.ts.map +1 -1
  62. package/lib/hooks/index.js +5 -5
  63. package/lib/hooks/index.js.map +1 -1
  64. package/lib/hooks/useClientVersionCollector.d.ts +3 -0
  65. package/lib/hooks/useClientVersionCollector.d.ts.map +1 -0
  66. package/lib/{services/ClientVersionCollector.js → hooks/useClientVersionCollector.js} +7 -2
  67. package/lib/hooks/useClientVersionCollector.js.map +1 -0
  68. package/lib/hooks/useHeightAnimation.d.ts +0 -1
  69. package/lib/hooks/useHeightAnimation.d.ts.map +1 -1
  70. package/lib/hooks/useHeightAnimation.js +4 -2
  71. package/lib/hooks/useHeightAnimation.js.map +1 -1
  72. package/lib/hooks/useWidget.d.ts +13 -0
  73. package/lib/hooks/useWidget.d.ts.map +1 -0
  74. package/lib/hooks/useWidget.js +44 -0
  75. package/lib/hooks/useWidget.js.map +1 -0
  76. package/lib/hooks/useWidgetBootstrap.d.ts +21 -0
  77. package/lib/hooks/useWidgetBootstrap.d.ts.map +1 -0
  78. package/lib/hooks/useWidgetBootstrap.js +87 -0
  79. package/lib/hooks/useWidgetBootstrap.js.map +1 -0
  80. package/lib/hooks/useWidgetServices.d.ts +19 -0
  81. package/lib/hooks/useWidgetServices.d.ts.map +1 -0
  82. package/lib/hooks/useWidgetServices.js +34 -0
  83. package/lib/hooks/useWidgetServices.js.map +1 -0
  84. package/lib/hooks/useWidgetUI.d.ts +9 -0
  85. package/lib/hooks/useWidgetUI.d.ts.map +1 -0
  86. package/lib/hooks/useWidgetUI.js +33 -0
  87. package/lib/hooks/useWidgetUI.js.map +1 -0
  88. package/lib/index.d.ts +10 -11
  89. package/lib/index.d.ts.map +1 -1
  90. package/lib/index.js +13 -38
  91. package/lib/index.js.map +1 -1
  92. package/lib/services/UserIdentificationService.d.ts +3 -0
  93. package/lib/services/UserIdentificationService.d.ts.map +1 -0
  94. package/lib/services/UserIdentificationService.js +17 -0
  95. package/lib/services/UserIdentificationService.js.map +1 -0
  96. package/lib/services/WidgetBootstrapService.d.ts +12 -0
  97. package/lib/services/WidgetBootstrapService.d.ts.map +1 -0
  98. package/lib/services/{widgetBootstrapService.js → WidgetBootstrapService.js} +36 -15
  99. package/lib/services/WidgetBootstrapService.js.map +1 -0
  100. package/lib/services/WidgetEventService.d.ts +8 -0
  101. package/lib/services/WidgetEventService.d.ts.map +1 -0
  102. package/lib/services/WidgetEventService.js +14 -0
  103. package/lib/services/WidgetEventService.js.map +1 -0
  104. package/lib/services/WidgetStateManager.d.ts +20 -0
  105. package/lib/services/WidgetStateManager.d.ts.map +1 -0
  106. package/lib/services/WidgetStateManager.js +93 -0
  107. package/lib/services/WidgetStateManager.js.map +1 -0
  108. package/lib/services/WidgetValidationService.d.ts +17 -0
  109. package/lib/services/WidgetValidationService.d.ts.map +1 -0
  110. package/lib/services/WidgetValidationService.js +132 -0
  111. package/lib/services/WidgetValidationService.js.map +1 -0
  112. package/lib/services/events/EventHandlerFactory.d.ts +18 -0
  113. package/lib/services/events/EventHandlerFactory.d.ts.map +1 -0
  114. package/lib/services/events/EventHandlerFactory.js +67 -0
  115. package/lib/services/events/EventHandlerFactory.js.map +1 -0
  116. package/lib/services/events/EventHandlers.d.ts +10 -0
  117. package/lib/services/events/EventHandlers.d.ts.map +1 -0
  118. package/lib/services/events/EventHandlers.js +72 -0
  119. package/lib/services/events/EventHandlers.js.map +1 -0
  120. package/lib/services/events/index.d.ts +3 -0
  121. package/lib/services/events/index.d.ts.map +1 -0
  122. package/lib/services/events/index.js +21 -0
  123. package/lib/services/events/index.js.map +1 -0
  124. package/lib/services/height/HeightStrategies.d.ts +3 -0
  125. package/lib/services/height/HeightStrategies.d.ts.map +1 -0
  126. package/lib/services/height/HeightStrategies.js +14 -0
  127. package/lib/services/height/HeightStrategies.js.map +1 -0
  128. package/lib/services/storage/AsyncStorageService.d.ts +13 -0
  129. package/lib/services/storage/AsyncStorageService.d.ts.map +1 -0
  130. package/lib/services/storage/AsyncStorageService.js +73 -0
  131. package/lib/services/storage/AsyncStorageService.js.map +1 -0
  132. package/lib/services/storage/IStorageService.d.ts +30 -0
  133. package/lib/services/storage/IStorageService.d.ts.map +1 -0
  134. package/lib/services/storage/IStorageService.js +3 -0
  135. package/lib/services/storage/IStorageService.js.map +1 -0
  136. package/lib/services/storage/StorageIdBuilder.d.ts +11 -0
  137. package/lib/services/storage/StorageIdBuilder.d.ts.map +1 -0
  138. package/lib/services/storage/StorageIdBuilder.js +17 -0
  139. package/lib/services/storage/StorageIdBuilder.js.map +1 -0
  140. package/lib/services/storage/index.d.ts +3 -0
  141. package/lib/services/storage/index.d.ts.map +1 -0
  142. package/lib/services/storage/index.js +6 -0
  143. package/lib/services/storage/index.js.map +1 -0
  144. package/lib/styles/widgetStyles.d.ts +1 -1
  145. package/lib/styles/widgetStyles.d.ts.map +1 -1
  146. package/package.json +8 -2
  147. package/src/SoluCXWidget.ts +144 -0
  148. package/src/SoluCXWidgetHost.tsx +44 -0
  149. package/src/SoluCXWidgetView.tsx +97 -0
  150. package/src/__tests__/ClientVersionCollector.test.ts +5 -5
  151. package/src/__tests__/OverlayWidget.rendering.test.tsx +12 -14
  152. package/src/__tests__/SoluCXWidget.rendering.test.tsx +103 -60
  153. package/src/__tests__/SoluCXWidget.test.ts +448 -0
  154. package/src/__tests__/WidgetValidationService.test.ts +408 -0
  155. package/src/__tests__/e2e/widget-lifecycle.test.tsx +14 -23
  156. package/src/__tests__/index.test.tsx +39 -0
  157. package/src/__tests__/integration/webview-communication-simple.test.tsx +8 -6
  158. package/src/__tests__/integration/webview-communication.test.tsx +127 -130
  159. package/src/__tests__/normalizeWidgetOptions.test.ts +80 -0
  160. package/src/__tests__/useWidgetBootstrap.test.ts +634 -0
  161. package/src/__tests__/useWidgetState.test.ts +56 -13
  162. package/src/__tests__/widgetBootstrapService.test.ts +15 -17
  163. package/src/components/CloseButton.tsx +6 -2
  164. package/src/components/InlineWidget.tsx +4 -9
  165. package/src/components/ModalWidget.tsx +15 -45
  166. package/src/components/OverlayWidget.tsx +5 -15
  167. package/src/components/index.ts +4 -0
  168. package/src/constants/Constants.ts +15 -0
  169. package/src/{interfaces → domain}/WidgetCallbacks.ts +2 -2
  170. package/{lib/interfaces/WidgetData.d.ts → src/domain/WidgetData.ts} +3 -2
  171. package/src/domain/WidgetDisplayResult.ts +16 -0
  172. package/src/domain/WidgetOptions.ts +53 -0
  173. package/src/domain/WidgetResponse.ts +5 -0
  174. package/src/domain/WidgetSamplerLog.ts +11 -0
  175. package/src/{interfaces → domain}/index.ts +1 -2
  176. package/src/hooks/index.ts +2 -2
  177. package/src/{services/ClientVersionCollector.ts → hooks/useClientVersionCollector.ts} +6 -0
  178. package/src/hooks/useHeightAnimation.ts +6 -3
  179. package/src/hooks/useWidget.ts +46 -0
  180. package/src/hooks/useWidgetBootstrap.ts +117 -0
  181. package/src/hooks/useWidgetServices.ts +44 -0
  182. package/src/hooks/useWidgetUI.ts +38 -0
  183. package/src/index.ts +16 -11
  184. package/src/services/UserIdentificationService.ts +14 -0
  185. package/src/services/{widgetBootstrapService.ts → WidgetBootstrapService.ts} +43 -19
  186. package/src/services/WidgetEventService.ts +15 -0
  187. package/src/services/WidgetStateManager.ts +115 -0
  188. package/src/services/WidgetValidationService.ts +149 -0
  189. package/src/services/events/EventHandlerFactory.ts +70 -0
  190. package/src/services/events/EventHandlers.ts +67 -0
  191. package/src/services/events/index.ts +2 -0
  192. package/src/services/height/HeightStrategies.ts +15 -0
  193. package/src/services/storage/AsyncStorageService.ts +74 -0
  194. package/src/services/storage/IStorageService.ts +32 -0
  195. package/src/services/storage/StorageIdBuilder.ts +15 -0
  196. package/src/services/storage/index.ts +2 -0
  197. package/src/styles/widgetStyles.ts +1 -1
  198. package/README.intern.md +0 -490
  199. package/lib/constants/webViewConstants.d.ts +0 -12
  200. package/lib/constants/webViewConstants.d.ts.map +0 -1
  201. package/lib/constants/webViewConstants.js +0 -19
  202. package/lib/constants/webViewConstants.js.map +0 -1
  203. package/lib/hooks/useWidgetHeight.d.ts +0 -13
  204. package/lib/hooks/useWidgetHeight.d.ts.map +0 -1
  205. package/lib/hooks/useWidgetHeight.js +0 -21
  206. package/lib/hooks/useWidgetHeight.js.map +0 -1
  207. package/lib/hooks/useWidgetState.d.ts +0 -15
  208. package/lib/hooks/useWidgetState.d.ts.map +0 -1
  209. package/lib/hooks/useWidgetState.js +0 -79
  210. package/lib/hooks/useWidgetState.js.map +0 -1
  211. package/lib/interfaces/WidgetCallbacks.d.ts.map +0 -1
  212. package/lib/interfaces/WidgetCallbacks.js.map +0 -1
  213. package/lib/interfaces/WidgetData.d.ts.map +0 -1
  214. package/lib/interfaces/WidgetOptions.d.ts +0 -9
  215. package/lib/interfaces/WidgetOptions.d.ts.map +0 -1
  216. package/lib/interfaces/WidgetOptions.js.map +0 -1
  217. package/lib/interfaces/WidgetResponse.d.ts +0 -10
  218. package/lib/interfaces/WidgetResponse.d.ts.map +0 -1
  219. package/lib/interfaces/WidgetResponse.js +0 -12
  220. package/lib/interfaces/WidgetResponse.js.map +0 -1
  221. package/lib/interfaces/WidgetSamplerLog.d.ts +0 -7
  222. package/lib/interfaces/WidgetSamplerLog.d.ts.map +0 -1
  223. package/lib/interfaces/WidgetSamplerLog.js.map +0 -1
  224. package/lib/interfaces/index.d.ts.map +0 -1
  225. package/lib/services/ClientVersionCollector.d.ts +0 -2
  226. package/lib/services/ClientVersionCollector.d.ts.map +0 -1
  227. package/lib/services/ClientVersionCollector.js.map +0 -1
  228. package/lib/services/storage.d.ts +0 -8
  229. package/lib/services/storage.d.ts.map +0 -1
  230. package/lib/services/storage.js +0 -23
  231. package/lib/services/storage.js.map +0 -1
  232. package/lib/services/widgetBootstrapService.d.ts +0 -6
  233. package/lib/services/widgetBootstrapService.d.ts.map +0 -1
  234. package/lib/services/widgetBootstrapService.js.map +0 -1
  235. package/lib/services/widgetEventService.d.ts +0 -19
  236. package/lib/services/widgetEventService.d.ts.map +0 -1
  237. package/lib/services/widgetEventService.js +0 -79
  238. package/lib/services/widgetEventService.js.map +0 -1
  239. package/lib/services/widgetValidationService.d.ts +0 -18
  240. package/lib/services/widgetValidationService.d.ts.map +0 -1
  241. package/lib/services/widgetValidationService.js +0 -71
  242. package/lib/services/widgetValidationService.js.map +0 -1
  243. package/src/SoluCXWidget.tsx +0 -179
  244. package/src/constants/webViewConstants.ts +0 -15
  245. package/src/hooks/useWidgetHeight.ts +0 -38
  246. package/src/hooks/useWidgetState.ts +0 -101
  247. package/src/interfaces/WidgetOptions.ts +0 -8
  248. package/src/interfaces/WidgetResponse.ts +0 -15
  249. package/src/interfaces/WidgetSamplerLog.ts +0 -6
  250. package/src/services/storage.ts +0 -21
  251. package/src/services/widgetEventService.ts +0 -110
  252. package/src/services/widgetValidationService.ts +0 -102
  253. /package/lib/{interfaces → domain}/WidgetCallbacks.js +0 -0
  254. /package/lib/{interfaces → domain}/WidgetData.js +0 -0
  255. /package/lib/{interfaces → domain}/WidgetSamplerLog.js +0 -0
  256. /package/lib/{interfaces → domain}/index.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetData.d.ts","sourceRoot":"","sources":["../../src/interfaces/WidgetData.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CAC9C"}
@@ -1,9 +0,0 @@
1
- export interface WidgetOptions {
2
- height?: number;
3
- retry?: {
4
- attempts?: number;
5
- interval?: number;
6
- };
7
- waitDelayAfterRating?: number;
8
- }
9
- //# sourceMappingURL=WidgetOptions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetOptions.d.ts","sourceRoot":"","sources":["../../src/interfaces/WidgetOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE;QACJ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetOptions.js","sourceRoot":"","sources":["../../src/interfaces/WidgetOptions.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- export interface WidgetResponse {
2
- status?: "success" | "error";
3
- message?: string;
4
- }
5
- export declare class WidgetError extends Error implements WidgetResponse {
6
- status: "error";
7
- message: string;
8
- constructor(message: string);
9
- }
10
- //# sourceMappingURL=WidgetResponse.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetResponse.d.ts","sourceRoot":"","sources":["../../src/interfaces/WidgetResponse.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,MAAM,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,WAAY,SAAQ,KAAM,YAAW,cAAc;IAC5D,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;gBAEJ,OAAO,EAAE,MAAM;CAK9B"}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WidgetError = void 0;
4
- class WidgetError extends Error {
5
- constructor(message) {
6
- super(message);
7
- this.status = "error";
8
- this.message = message;
9
- }
10
- }
11
- exports.WidgetError = WidgetError;
12
- //# sourceMappingURL=WidgetResponse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetResponse.js","sourceRoot":"","sources":["../../src/interfaces/WidgetResponse.ts"],"names":[],"mappings":";;;AAKA,MAAa,WAAY,SAAQ,KAAK;IAIlC,YAAY,OAAe;QACvB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AATD,kCASC"}
@@ -1,7 +0,0 @@
1
- export interface WidgetSamplerLog {
2
- attempts: number;
3
- lastAttempt: number;
4
- lastRating: number;
5
- lastParcial: number;
6
- }
7
- //# sourceMappingURL=WidgetSamplerLog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetSamplerLog.d.ts","sourceRoot":"","sources":["../../src/interfaces/WidgetSamplerLog.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACvB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"WidgetSamplerLog.js","sourceRoot":"","sources":["../../src/interfaces/WidgetSamplerLog.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,QAAQ,GACd,YAAY,GACZ,YAAY,GACZ,kBAAkB,GAClB,mBAAmB,GACnB,gBAAgB,GAChB,uBAAuB,GACvB,aAAa,CAAC;AACpB,MAAM,MAAM,cAAc,GACpB,mBAAmB,GACnB,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,GACrB,oBAAoB,GACpB,kBAAkB,GAClB,mBAAmB,CAAC;AAC1B,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const getClientVersion: () => string;
2
- //# sourceMappingURL=ClientVersionCollector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClientVersionCollector.d.ts","sourceRoot":"","sources":["../../src/services/ClientVersionCollector.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,QAAO,MAcnC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ClientVersionCollector.js","sourceRoot":"","sources":["../../src/services/ClientVersionCollector.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,GAAW,EAAE;IACzC,IAAI,CAAC;QACD,MAAM,UAAU,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACvD,IAAI,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;YAClC,OAAO,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC3C,CAAC;QACD,IAAI,UAAU,EAAE,UAAU,EAAE,CAAC;YACzB,OAAO,UAAU,CAAC,UAAU,EAAE,CAAC;QACnC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,0CAA0C;IAC9C,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAdW,QAAA,gBAAgB,oBAc3B"}
@@ -1,8 +0,0 @@
1
- import type { WidgetSamplerLog } from '../interfaces';
2
- export declare class StorageService {
3
- private key;
4
- constructor(key: string);
5
- write(data: WidgetSamplerLog): Promise<void>;
6
- read(): Promise<WidgetSamplerLog>;
7
- }
8
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/services/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGtD,qBAAa,cAAc;IACvB,OAAO,CAAC,GAAG,CAAS;gBAER,GAAG,EAAE,MAAM;IAIjB,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C,IAAI,IAAI,OAAO,CAAC,gBAAgB,CAAC;CAI1C"}
@@ -1,23 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.StorageService = void 0;
7
- const async_storage_1 = __importDefault(require("@react-native-async-storage/async-storage"));
8
- const webViewConstants_1 = require("../constants/webViewConstants");
9
- class StorageService {
10
- constructor(key) {
11
- this.key = `${webViewConstants_1.STORAGE_KEY}_${key}`;
12
- }
13
- async write(data) {
14
- const json = JSON.stringify(data);
15
- await async_storage_1.default.setItem(this.key, json);
16
- }
17
- async read() {
18
- const json = await async_storage_1.default.getItem(this.key);
19
- return json ? JSON.parse(json) : {};
20
- }
21
- }
22
- exports.StorageService = StorageService;
23
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/services/storage.ts"],"names":[],"mappings":";;;;;;AAAA,8FAAqE;AAErE,oEAA4D;AAE5D,MAAa,cAAc;IAGvB,YAAY,GAAW;QACnB,IAAI,CAAC,GAAG,GAAG,GAAG,8BAAW,IAAI,GAAG,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAsB;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,uBAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,IAAI;QACN,MAAM,IAAI,GAAG,MAAM,uBAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC,CAAC,CAAC,EAAsB,CAAC;IAChF,CAAC;CACJ;AAhBD,wCAgBC"}
@@ -1,6 +0,0 @@
1
- import type { SoluCXKey, WidgetData } from "../interfaces";
2
- import { URLSearchParams } from 'react-native-url-polyfill';
3
- declare const buildRequestParams: (requestParams: WidgetData) => URLSearchParams;
4
- export declare function requestWidgetUrl(instanceKey: SoluCXKey, requestParams: WidgetData, userId: string): Promise<string>;
5
- export { buildRequestParams };
6
- //# sourceMappingURL=widgetBootstrapService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widgetBootstrapService.d.ts","sourceRoot":"","sources":["../../src/services/widgetBootstrapService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAM5D,QAAA,MAAM,kBAAkB,GAAI,eAAe,UAAU,KAAG,eAYvD,CAAC;AA0BF,wBAAsB,gBAAgB,CAClC,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,UAAU,EACzB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"widgetBootstrapService.js","sourceRoot":"","sources":["../../src/services/widgetBootstrapService.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- import type { WidgetResponse, WidgetCallbacks } from "../interfaces";
2
- export declare class WidgetEventService {
3
- private setIsWidgetVisible;
4
- private resize;
5
- private userId;
6
- private callbacks?;
7
- constructor(setIsWidgetVisible: (visible: boolean) => void, resize: (value: string) => void, userId: string, callbacks?: WidgetCallbacks);
8
- handleMessage(message: string, isForm: boolean): Promise<WidgetResponse>;
9
- private executeEvent;
10
- private handleFormClose;
11
- private handleFormError;
12
- private handlePageChanged;
13
- private handleQuestionAnswered;
14
- private handleFormCompleted;
15
- private handlePartialCompleted;
16
- private handleResize;
17
- private adaptSurveyKeyToWidgetKey;
18
- }
19
- //# sourceMappingURL=widgetEventService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widgetEventService.d.ts","sourceRoot":"","sources":["../../src/services/widgetEventService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EACd,eAAe,EAChB,MAAM,eAAe,CAAC;AAEvB,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAC,CAAkB;gBAGlC,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,EAC9C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAC/B,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,eAAe;IAQvB,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,cAAc,CAAC;YASZ,YAAY;IAqB1B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,yBAAyB;CAalC"}
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WidgetEventService = void 0;
4
- class WidgetEventService {
5
- constructor(setIsWidgetVisible, resize, userId, callbacks) {
6
- this.setIsWidgetVisible = setIsWidgetVisible;
7
- this.resize = resize;
8
- this.userId = userId;
9
- this.callbacks = callbacks;
10
- }
11
- async handleMessage(message, isForm) {
12
- const [eventKey, value = ""] = message.split("-");
13
- const processedKey = isForm
14
- ? eventKey
15
- : this.adaptSurveyKeyToWidgetKey(eventKey);
16
- return await this.executeEvent(processedKey, value);
17
- }
18
- async executeEvent(eventKey, value) {
19
- const eventHandlers = {
20
- FORM_CLOSE: () => this.handleFormClose(),
21
- FORM_ERROR: (value) => this.handleFormError(value),
22
- FORM_PAGECHANGED: (value) => this.handlePageChanged(value),
23
- QUESTION_ANSWERED: () => this.handleQuestionAnswered(),
24
- FORM_COMPLETED: () => this.handleFormCompleted(),
25
- FORM_PARTIALCOMPLETED: () => this.handlePartialCompleted(),
26
- FORM_RESIZE: (value) => this.handleResize(value),
27
- };
28
- const handler = eventHandlers[eventKey];
29
- return await (handler?.(value) || {
30
- status: "error",
31
- message: "Unknown event",
32
- });
33
- }
34
- handleFormClose() {
35
- this.setIsWidgetVisible(false);
36
- this.callbacks?.onClosed?.();
37
- return { status: "success" };
38
- }
39
- handleFormError(value) {
40
- this.setIsWidgetVisible(false);
41
- this.callbacks?.onError?.(value);
42
- return { status: "error", message: value };
43
- }
44
- handlePageChanged(value) {
45
- this.callbacks?.onPageChanged?.(value);
46
- return { status: "success" };
47
- }
48
- handleQuestionAnswered() {
49
- this.callbacks?.onQuestionAnswered?.();
50
- return { status: "success" };
51
- }
52
- handleFormCompleted() {
53
- this.callbacks?.onCompleted?.(this.userId);
54
- return { status: "success" };
55
- }
56
- handlePartialCompleted() {
57
- this.callbacks?.onPartialCompleted?.(this.userId);
58
- return { status: "success" };
59
- }
60
- handleResize(value) {
61
- this.resize(value);
62
- this.callbacks?.onResize?.(value);
63
- return { status: "success" };
64
- }
65
- adaptSurveyKeyToWidgetKey(key) {
66
- const keyMapping = {
67
- closeSoluCXWidget: "FORM_CLOSE",
68
- dismissSoluCXWidget: "FORM_CLOSE",
69
- completeSoluCXWidget: "FORM_COMPLETED",
70
- partialSoluCXWidget: "FORM_PARTIALCOMPLETED",
71
- resizeSoluCXWidget: "FORM_RESIZE",
72
- openSoluCXWidget: "FORM_OPENED",
73
- errorSoluCXWidget: "FORM_ERROR",
74
- };
75
- return keyMapping[key];
76
- }
77
- }
78
- exports.WidgetEventService = WidgetEventService;
79
- //# sourceMappingURL=widgetEventService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widgetEventService.js","sourceRoot":"","sources":["../../src/services/widgetEventService.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import type { WidgetOptions } from "../interfaces";
2
- export type BlockReason = "BLOCKED_BY_RATING_INTERVAL" | "BLOCKED_BY_PARTIAL_INTERVAL" | "BLOCKED_BY_MAX_RETRY_ATTEMPTS";
3
- export interface WidgetDisplayResult {
4
- canDisplay: boolean;
5
- blockReason?: BlockReason;
6
- }
7
- export declare class WidgetValidationService {
8
- private storageService;
9
- constructor(userId: string);
10
- shouldDisplayWidget(widgetOptions: WidgetOptions): Promise<WidgetDisplayResult>;
11
- private getLog;
12
- private setLog;
13
- private isWithinCollectInterval;
14
- private isWithinCollectPartialInterval;
15
- private isWithinRetryInterval;
16
- private resetAttemptsIfNeeded;
17
- }
18
- //# sourceMappingURL=widgetValidationService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widgetValidationService.d.ts","sourceRoot":"","sources":["../../src/services/widgetValidationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAoB,MAAM,eAAe,CAAC;AAGrE,MAAM,MAAM,WAAW,GACjB,4BAA4B,GAC5B,6BAA6B,GAC7B,+BAA+B,CAAC;AAEtC,MAAM,WAAW,mBAAmB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED,qBAAa,uBAAuB;IAChC,OAAO,CAAC,cAAc,CAAiB;gBAE3B,MAAM,EAAE,MAAM;IAIpB,mBAAmB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAsBvE,MAAM;YAcN,MAAM;IAQpB,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,8BAA8B;IAUtC,OAAO,CAAC,qBAAqB;YAYf,qBAAqB;CAKtC"}
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WidgetValidationService = void 0;
4
- const storage_1 = require("./storage");
5
- class WidgetValidationService {
6
- constructor(userId) {
7
- this.storageService = new storage_1.StorageService(userId);
8
- }
9
- async shouldDisplayWidget(widgetOptions) {
10
- const { retry, waitDelayAfterRating = 60 } = widgetOptions;
11
- const { attempts = 5, interval = 1 } = retry || {};
12
- const userLog = await this.getLog();
13
- const now = Date.now();
14
- const dayInMilliseconds = 86400000;
15
- if (this.isWithinCollectInterval(userLog, waitDelayAfterRating, now, dayInMilliseconds)) {
16
- return { canDisplay: false, blockReason: "BLOCKED_BY_RATING_INTERVAL" };
17
- }
18
- if (this.isWithinCollectPartialInterval(userLog, waitDelayAfterRating, now, dayInMilliseconds)) {
19
- return { canDisplay: false, blockReason: "BLOCKED_BY_PARTIAL_INTERVAL" };
20
- }
21
- if (this.isWithinRetryInterval(userLog, interval, attempts, now, dayInMilliseconds)) {
22
- return { canDisplay: false, blockReason: "BLOCKED_BY_MAX_RETRY_ATTEMPTS" };
23
- }
24
- await this.resetAttemptsIfNeeded(userLog, attempts);
25
- await this.setLog(userLog);
26
- return { canDisplay: true };
27
- }
28
- async getLog() {
29
- try {
30
- return await this.storageService.read();
31
- }
32
- catch (error) {
33
- console.error("Error reading widget log:", error);
34
- return {
35
- attempts: 0,
36
- lastAttempt: 0,
37
- lastRating: 0,
38
- lastParcial: 0,
39
- };
40
- }
41
- }
42
- async setLog(userLog) {
43
- try {
44
- await this.storageService.write(userLog);
45
- }
46
- catch (error) {
47
- console.error("Error writing widget log:", error);
48
- }
49
- }
50
- isWithinCollectInterval(userLog, waitDelayAfterRating, now, dayInMilliseconds) {
51
- const timeSinceLastRating = now - userLog.lastRating;
52
- return userLog.lastRating > 0 && timeSinceLastRating < waitDelayAfterRating * dayInMilliseconds;
53
- }
54
- isWithinCollectPartialInterval(userLog, waitDelayAfterRating, now, dayInMilliseconds) {
55
- const timeSinceLastPartial = now - userLog.lastParcial;
56
- return userLog.lastParcial > 0 && timeSinceLastPartial < waitDelayAfterRating * dayInMilliseconds;
57
- }
58
- isWithinRetryInterval(userLog, interval, attempts, now, dayInMilliseconds) {
59
- if (userLog.attempts < attempts)
60
- return false;
61
- const timeSinceLastAttempt = now - userLog.lastAttempt;
62
- return timeSinceLastAttempt < interval * dayInMilliseconds;
63
- }
64
- async resetAttemptsIfNeeded(userLog, maxAttempts) {
65
- if (userLog.attempts >= maxAttempts) {
66
- userLog.attempts = 0;
67
- }
68
- }
69
- }
70
- exports.WidgetValidationService = WidgetValidationService;
71
- //# sourceMappingURL=widgetValidationService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widgetValidationService.js","sourceRoot":"","sources":["../../src/services/widgetValidationService.ts"],"names":[],"mappings":"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"}
@@ -1,179 +0,0 @@
1
- import React, { useEffect, useRef, useCallback, useState, useMemo } from "react";
2
- import { Dimensions } from "react-native";
3
- import { WebView } from "react-native-webview";
4
-
5
- import type { SoluCXKey, WidgetData, WidgetOptions, WidgetType, WidgetCallbacks } from "./interfaces";
6
- import { useWidgetState } from "./hooks/useWidgetState";
7
- import { WidgetEventService } from "./services/widgetEventService";
8
- import { WidgetValidationService } from "./services/widgetValidationService";
9
- import { WEB_VIEW_MESSAGE_LISTENER } from "./constants/webViewConstants";
10
- import { ModalWidget } from "./components/ModalWidget";
11
- import { InlineWidget } from "./components/InlineWidget";
12
- import { OverlayWidget } from "./components/OverlayWidget";
13
- import { requestWidgetUrl } from "./services/widgetBootstrapService";
14
-
15
- interface SoluCXWidgetProps {
16
- soluCXKey: SoluCXKey;
17
- type: WidgetType;
18
- data: WidgetData;
19
- options: WidgetOptions;
20
- callbacks?: WidgetCallbacks;
21
- }
22
-
23
- export const SoluCXWidget: React.FC<SoluCXWidgetProps> = ({ soluCXKey, type, data, options, callbacks }) => {
24
- const webviewRef = useRef<WebView>(null);
25
- const { width } = Dimensions.get("window");
26
-
27
- const callbacksRef = useRef(callbacks);
28
- callbacksRef.current = callbacks;
29
-
30
- const serializedData = JSON.stringify(data);
31
- const normalizedData = useMemo(() => data, [serializedData]);
32
-
33
- const { widgetHeight, isWidgetVisible, setIsWidgetVisible, loadSavedData, resize, open, close, userId } =
34
- useWidgetState(normalizedData, options, type);
35
-
36
- const eventService = useMemo(
37
- () => new WidgetEventService(setIsWidgetVisible, resize, userId, callbacksRef.current),
38
- [setIsWidgetVisible, resize],
39
- );
40
-
41
- const validationService = useMemo(() => new WidgetValidationService(userId), [userId]);
42
- const isForm = Boolean(normalizedData?.form_id);
43
- const [widgetUri, setWidgetUri] = useState<string | null>(null);
44
-
45
- useEffect(() => {
46
- loadSavedData();
47
- }, [loadSavedData]);
48
-
49
- useEffect(() => {
50
- let isActive = true;
51
-
52
- const prepareWidgetURL = async () => {
53
- if (!data) return;
54
- setWidgetUri(null);
55
-
56
- try {
57
- const widgetUrl = await requestWidgetUrl(soluCXKey, normalizedData, userId);
58
- if (!isActive || !widgetUrl) return;
59
-
60
- const result = await validationService.shouldDisplayWidget(options);
61
- if (!isActive) return;
62
-
63
- if (!result.canDisplay) {
64
- const blockReason = result?.blockReason;
65
- callbacksRef.current?.onBlock?.(blockReason);
66
- setIsWidgetVisible(false);
67
- return;
68
- }
69
-
70
- callbacksRef.current?.onPreOpen?.(userId);
71
- open();
72
- setWidgetUri(widgetUrl);
73
- callbacksRef.current?.onOpened?.(userId);
74
- } catch (error) {
75
- if (isActive) {
76
- let errorMessage = "Unknown error";
77
-
78
- if (error instanceof Error) errorMessage = error.message;
79
- else if (typeof error === "string") errorMessage = error;
80
- else if (error !== null && typeof error === "object") errorMessage = JSON.stringify(error);
81
-
82
- callbacksRef.current?.onError?.(errorMessage);
83
- setIsWidgetVisible(false);
84
- }
85
- }
86
- };
87
-
88
- prepareWidgetURL();
89
-
90
- return () => {
91
- isActive = false;
92
- };
93
- }, [validationService, soluCXKey, normalizedData, isForm, setIsWidgetVisible, options, open, userId]);
94
-
95
- const handleWebViewMessage = useCallback(
96
- async (message: string) => {
97
- if (message && message.length > 0) {
98
- try {
99
- await eventService.handleMessage(message, isForm);
100
- } catch (error) {
101
- console.error("Error handling widget message:", error);
102
- }
103
- }
104
- },
105
- [eventService, isForm],
106
- );
107
-
108
- const handleWebViewLoad = useCallback(() => {
109
- webviewRef.current?.injectJavaScript(WEB_VIEW_MESSAGE_LISTENER);
110
- }, []);
111
-
112
- const handleClose = useCallback(() => {
113
- if (type === "inline" || type === "modal") {
114
- close();
115
- }
116
- setIsWidgetVisible(false);
117
- callbacksRef.current?.onClosed?.();
118
- }, [setIsWidgetVisible, close, type]);
119
-
120
- const webViewStyle = [{ height: widgetHeight }, { width }];
121
-
122
- if (!data) {
123
- callbacksRef.current?.onError?.("Widget data is required but was not provided");
124
- return null;
125
- }
126
-
127
- if (!widgetUri) {
128
- return null;
129
- }
130
-
131
- if (type === "modal") {
132
- return (
133
- <ModalWidget visible={isWidgetVisible} height={widgetHeight} onClose={handleClose}>
134
- <WebView
135
- ref={webviewRef}
136
- style={webViewStyle}
137
- source={{ uri: widgetUri }}
138
- onLoadEnd={handleWebViewLoad}
139
- onMessage={(event) => handleWebViewMessage(event.nativeEvent.data)}
140
- originWhitelist={["*"]}
141
- />
142
- </ModalWidget>
143
- );
144
- }
145
-
146
- if (type === "inline") {
147
- return (
148
- <InlineWidget visible={isWidgetVisible} height={widgetHeight} onClose={handleClose}>
149
- <WebView
150
- ref={webviewRef}
151
- style={webViewStyle}
152
- source={{ uri: widgetUri }}
153
- onLoadEnd={handleWebViewLoad}
154
- onMessage={(event) => handleWebViewMessage(event.nativeEvent.data)}
155
- originWhitelist={["*"]}
156
- />
157
- </InlineWidget>
158
- );
159
- }
160
-
161
- return (
162
- <OverlayWidget
163
- visible={isWidgetVisible}
164
- width={width}
165
- height={widgetHeight}
166
- position={type}
167
- onClose={handleClose}
168
- >
169
- <WebView
170
- ref={webviewRef}
171
- style={webViewStyle}
172
- source={{ uri: widgetUri }}
173
- onLoadEnd={handleWebViewLoad}
174
- onMessage={(event) => handleWebViewMessage(event.nativeEvent.data)}
175
- originWhitelist={["*"]}
176
- />
177
- </OverlayWidget>
178
- );
179
- };
@@ -1,15 +0,0 @@
1
- export const BASE_URL = 'https://survey-link.solucx.com.br/link';
2
- export const RATING_FORM_ENDPOINT = 'https://widget-api.solucx.com.br/widget/preflight';
3
- export const STORAGE_KEY = '@solucxWidgetLog';
4
- export const DEFAULT_CHANNEL_NUMBER = 1;
5
- export const DEFAULT_CHANNEL = 'widget';
6
- export const DEFAULT_WIDTH = 380;
7
- export const MIN_HEIGHT = 200;
8
- export const FIXED_Z_INDEX = 9999;
9
- export const MODAL_Z_INDEX = 10000;
10
- export const DESIGN_HEIGHT = 700;
11
- export const WEB_VIEW_MESSAGE_LISTENER = `
12
- window.addEventListener('message', function(event) {
13
- window.ReactNativeWebView.postMessage(event.data);
14
- });
15
- `;
@@ -1,38 +0,0 @@
1
- import { useState, useCallback } from 'react';
2
- import type { WidgetOptions } from '../interfaces';
3
-
4
- interface UseWidgetHeightProps {
5
- options?: WidgetOptions;
6
- initialHeight?: number;
7
- }
8
-
9
- interface UseWidgetHeightReturn {
10
- height: number;
11
- isFixedHeight: boolean;
12
- handleResize: (newHeight: number) => void;
13
- }
14
-
15
- export const useWidgetHeight = ({
16
- options,
17
- initialHeight = 300
18
- }: UseWidgetHeightProps): UseWidgetHeightReturn => {
19
- const [dynamicHeight, setDynamicHeight] = useState<number>(initialHeight);
20
- const hasFixedHeight = typeof options?.height === 'number';
21
-
22
- const height = hasFixedHeight ? options!.height! : dynamicHeight;
23
-
24
- const handleResize = useCallback(
25
- (newHeight: number) => {
26
- if (!hasFixedHeight && newHeight > 0) {
27
- setDynamicHeight(newHeight);
28
- }
29
- },
30
- [hasFixedHeight]
31
- );
32
-
33
- return {
34
- height,
35
- isFixedHeight: hasFixedHeight,
36
- handleResize
37
- };
38
- };