@opexa/portal-components 0.0.824 → 0.0.825

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 (289) hide show
  1. package/dist/components/DepositWithdrawal/Deposit/Deposit.js +1 -2
  2. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/Confirmed.d.ts +1 -0
  3. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/Confirmed.js +11 -0
  4. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/Failed.d.ts +1 -0
  5. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/Failed.js +11 -0
  6. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/Form.d.ts +1 -0
  7. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/Form.js +126 -0
  8. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/GeneratingQrCode.d.ts +1 -0
  9. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/GeneratingQrCode.js +10 -0
  10. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDeposit.js +6 -4
  11. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositContext.d.ts +8 -16
  12. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QrCodeGenerated.d.ts +1 -0
  13. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QrCodeGenerated.js +41 -0
  14. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/useQRPHDeposit.d.ts +8 -8
  15. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/useQRPHDeposit.js +47 -41
  16. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDeposit.d.ts +1 -0
  17. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDeposit.js +10 -0
  18. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositAlert.d.ts +1 -0
  19. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositAlert.js +99 -0
  20. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositContext.d.ts +25 -0
  21. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositContext.js +2 -0
  22. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositDetails.d.ts +1 -0
  23. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositDetails.js +17 -0
  24. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositForm.d.ts +1 -0
  25. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositForm.js +116 -0
  26. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHQRCode.d.ts +3 -0
  27. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHQRCode.js +69 -0
  28. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/useQRPHDeposit.d.ts +13 -0
  29. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/useQRPHDeposit.js +85 -0
  30. package/dist/components/Jackpots/Jackpots.module.css +221 -221
  31. package/dist/components/KYC/KYCDefault/KYCVerificationStatus.lazy.js +2 -2
  32. package/dist/components/Tournaments/TournamentsCarousel/TournamentsCarouselItem.module.css +184 -184
  33. package/dist/components/Tournaments/TournamentsList/TournamentItem.module.css +184 -184
  34. package/dist/services/queries.js +3151 -3151
  35. package/dist/styles/theme.css +776 -776
  36. package/dist/ui/AlertDialog/AlertDialog.d.ts +55 -55
  37. package/dist/ui/AlertDialog/alertDialog.recipe.d.ts +5 -5
  38. package/dist/ui/Badge/Badge.d.ts +12 -12
  39. package/dist/ui/Badge/badge.anatomy.d.ts +1 -1
  40. package/dist/ui/Badge/badge.recipe.d.ts +3 -3
  41. package/dist/ui/Carousel/Carousel.d.ts +45 -45
  42. package/dist/ui/Carousel/carousel.recipe.d.ts +5 -5
  43. package/dist/ui/Checkbox/Checkbox.d.ts +23 -23
  44. package/dist/ui/Checkbox/checkbox.recipe.d.ts +3 -3
  45. package/dist/ui/Clipboard/Clipboard.d.ts +18 -18
  46. package/dist/ui/Clipboard/clipboard.recipe.d.ts +3 -3
  47. package/dist/ui/Combobox/Combobox.d.ts +42 -42
  48. package/dist/ui/Combobox/combobox.recipe.d.ts +3 -3
  49. package/dist/ui/DatePicker/DatePicker.d.ts +72 -72
  50. package/dist/ui/DatePicker/datePicker.recipe.d.ts +3 -3
  51. package/dist/ui/Dialog/Dialog.d.ts +33 -33
  52. package/dist/ui/Dialog/dialog.recipe.d.ts +3 -3
  53. package/dist/ui/Drawer/Drawer.d.ts +33 -33
  54. package/dist/ui/Drawer/drawer.recipe.d.ts +3 -3
  55. package/dist/ui/Menu/Menu.d.ts +198 -198
  56. package/dist/ui/Menu/menu.recipe.d.ts +11 -11
  57. package/dist/ui/PasswordInput/PasswordInput.d.ts +18 -18
  58. package/dist/ui/PasswordInput/passwordInput.recipe.d.ts +3 -3
  59. package/dist/ui/Popover/Popover.d.ts +55 -55
  60. package/dist/ui/Popover/popover.recipe.d.ts +5 -5
  61. package/dist/ui/Progress/Progress.d.ts +27 -27
  62. package/dist/ui/Progress/progress.recipe.d.ts +3 -3
  63. package/dist/ui/Select/Select.d.ts +45 -45
  64. package/dist/ui/Select/select.recipe.d.ts +3 -3
  65. package/dist/ui/Table/Table.d.ts +21 -21
  66. package/dist/ui/Table/table.anatomy.d.ts +1 -1
  67. package/dist/ui/Table/table.recipe.d.ts +3 -3
  68. package/dist/ui/Tabs/Tabs.d.ts +15 -15
  69. package/dist/ui/Tabs/tabs.recipe.d.ts +3 -3
  70. package/package.json +176 -176
  71. package/dist/assets/providers/alize.png +0 -0
  72. package/dist/assets/providers/bigtime-gaming.png +0 -0
  73. package/dist/assets/providers/bng.png +0 -0
  74. package/dist/assets/providers/boongo.png +0 -0
  75. package/dist/assets/providers/btg.png +0 -0
  76. package/dist/assets/providers/cq9.png +0 -0
  77. package/dist/assets/providers/darwin.png +0 -0
  78. package/dist/assets/providers/digitain.png +0 -0
  79. package/dist/assets/providers/evolution.png +0 -0
  80. package/dist/assets/providers/fantasma-games.png +0 -0
  81. package/dist/assets/providers/fc.png +0 -0
  82. package/dist/assets/providers/fp.png +0 -0
  83. package/dist/assets/providers/habanero.png +0 -0
  84. package/dist/assets/providers/hacksaw.png +0 -0
  85. package/dist/assets/providers/jdb.png +0 -0
  86. package/dist/assets/providers/jili.png +0 -0
  87. package/dist/assets/providers/leap.png +0 -0
  88. package/dist/assets/providers/live-22-metaverse.png +0 -0
  89. package/dist/assets/providers/netent.png +0 -0
  90. package/dist/assets/providers/no-limit.png +0 -0
  91. package/dist/assets/providers/pg.png +0 -0
  92. package/dist/assets/providers/pgsoft.png +0 -0
  93. package/dist/assets/providers/pragmatic-play.png +0 -0
  94. package/dist/assets/providers/realtime-gaming.png +0 -0
  95. package/dist/assets/providers/redtiger.png +0 -0
  96. package/dist/assets/providers/rtg.png +0 -0
  97. package/dist/assets/providers/sagaming.png +0 -0
  98. package/dist/components/DepositWithdrawal/AiOPaymentMethods.d.ts +0 -11
  99. package/dist/components/DepositWithdrawal/AiOPaymentMethods.js +0 -55
  100. package/dist/components/DigitainLauncher/Loading.d.ts +0 -1
  101. package/dist/components/DigitainLauncher/Loading.js +0 -5
  102. package/dist/components/Disclaimer/ResponsibleGaming.d.ts +0 -10
  103. package/dist/components/Disclaimer/ResponsibleGaming.js +0 -13
  104. package/dist/components/Disclaimer/TermsOfUse.d.ts +0 -11
  105. package/dist/components/Disclaimer/TermsOfUse.js +0 -13
  106. package/dist/components/FeatureFlag/FeatureFlag.d.ts +0 -1
  107. package/dist/components/FeatureFlag/FeatureFlag.js +0 -29
  108. package/dist/components/FeatureFlag/index.d.ts +0 -1
  109. package/dist/components/FeatureFlag/index.js +0 -1
  110. package/dist/components/Jackpots/JackpotsCarousel/JackpotsCarouselItem.module.css +0 -184
  111. package/dist/components/Jackpots/JackpotsList/JackpotsListItem.module.css +0 -184
  112. package/dist/components/KYC/AutoOpen.d.ts +0 -1
  113. package/dist/components/KYC/AutoOpen.js +0 -40
  114. package/dist/components/KYC/BasicInformation.d.ts +0 -1
  115. package/dist/components/KYC/BasicInformation.js +0 -101
  116. package/dist/components/KYC/CaptureIdDocument.d.ts +0 -1
  117. package/dist/components/KYC/CaptureIdDocument.js +0 -219
  118. package/dist/components/KYC/CaptureSelfie.d.ts +0 -1
  119. package/dist/components/KYC/CaptureSelfie.js +0 -285
  120. package/dist/components/KYC/DisplayImage.d.ts +0 -5
  121. package/dist/components/KYC/DisplayImage.js +0 -8
  122. package/dist/components/KYC/FileUpload.d.ts +0 -10
  123. package/dist/components/KYC/FileUpload.js +0 -72
  124. package/dist/components/KYC/IdentityVerification.d.ts +0 -1
  125. package/dist/components/KYC/IdentityVerification.js +0 -120
  126. package/dist/components/KYC/Indicator.d.ts +0 -1
  127. package/dist/components/KYC/Indicator.js +0 -8
  128. package/dist/components/KYC/KYC.lazy.d.ts +0 -6
  129. package/dist/components/KYC/KYC.lazy.js +0 -45
  130. package/dist/components/KYC/KYCContext.d.ts +0 -6
  131. package/dist/components/KYC/KYCContext.js +0 -2
  132. package/dist/components/KYC/KYCDefault/BasicInformation.d.ts +0 -1
  133. package/dist/components/KYC/KYCDefault/BasicInformation.js +0 -101
  134. package/dist/components/KYC/KYCVerificationStatus.d.ts +0 -1
  135. package/dist/components/KYC/KYCVerificationStatus.js +0 -10
  136. package/dist/components/KYC/KYCVerificationStatus.lazy.d.ts +0 -1
  137. package/dist/components/KYC/KYCVerificationStatus.lazy.js +0 -39
  138. package/dist/components/KYC/NoCameraError.d.ts +0 -7
  139. package/dist/components/KYC/NoCameraError.js +0 -6
  140. package/dist/components/KYC/PersonOverlayDesktop.d.ts +0 -7
  141. package/dist/components/KYC/PersonOverlayDesktop.js +0 -9
  142. package/dist/components/KYC/PersonalInformation.d.ts +0 -1
  143. package/dist/components/KYC/PersonalInformation.js +0 -122
  144. package/dist/components/KYC/backup/Header.d.ts +0 -1
  145. package/dist/components/KYC/backup/Header.js +0 -8
  146. package/dist/components/KYC/backup/Indicator.d.ts +0 -1
  147. package/dist/components/KYC/backup/Indicator.js +0 -9
  148. package/dist/components/KYC/backup/KYC.d.ts +0 -1
  149. package/dist/components/KYC/backup/KYC.js +0 -14
  150. package/dist/components/KYC/backup/KYC.lazy.d.ts +0 -1
  151. package/dist/components/KYC/backup/KYC.lazy.js +0 -26
  152. package/dist/components/KYC/backup/KYCContext.d.ts +0 -6
  153. package/dist/components/KYC/backup/KYCContext.js +0 -2
  154. package/dist/components/KYC/backup/Step1.d.ts +0 -1
  155. package/dist/components/KYC/backup/Step1.js +0 -13
  156. package/dist/components/KYC/backup/Step2.d.ts +0 -1
  157. package/dist/components/KYC/backup/Step2.js +0 -13
  158. package/dist/components/KYC/backup/Step3.d.ts +0 -1
  159. package/dist/components/KYC/backup/Step3.js +0 -13
  160. package/dist/components/KYC/backup/Step4.d.ts +0 -1
  161. package/dist/components/KYC/backup/Step4.js +0 -7
  162. package/dist/components/KYC/backup/useKYC.d.ts +0 -10
  163. package/dist/components/KYC/backup/useKYC.js +0 -8
  164. package/dist/components/KYC/loadModels.d.ts +0 -1
  165. package/dist/components/KYC/loadModels.js +0 -9
  166. package/dist/components/KYC/useKYC.d.ts +0 -25
  167. package/dist/components/KYC/useKYC.js +0 -38
  168. package/dist/components/KYC/utils.d.ts +0 -9
  169. package/dist/components/KYC/utils.js +0 -79
  170. package/dist/components/KYCNotRequired/KYCNotRequired.d.ts +0 -0
  171. package/dist/components/KYCNotRequired/KYCNotRequired.js +0 -1
  172. package/dist/components/Messages/Message.d.ts +0 -1
  173. package/dist/components/Messages/Message.js +0 -35
  174. package/dist/components/Messages/MessageContext.d.ts +0 -6
  175. package/dist/components/Messages/MessageContext.js +0 -2
  176. package/dist/components/Messages/MessagePopup.d.ts +0 -1
  177. package/dist/components/Messages/MessagePopup.js +0 -20
  178. package/dist/components/Messages/MessageTrigger.d.ts +0 -8
  179. package/dist/components/Messages/MessageTrigger.js +0 -19
  180. package/dist/components/PortalProvider/CXDTokenObserver.d.ts +0 -1
  181. package/dist/components/PortalProvider/CXDTokenObserver.js +0 -30
  182. package/dist/components/PortalProvider/LinkGoogleAccountObserver.d.ts +0 -1
  183. package/dist/components/PortalProvider/LinkGoogleAccountObserver.js +0 -29
  184. package/dist/components/Quests/CountdownTimer.d.ts +0 -15
  185. package/dist/components/Quests/CountdownTimer.js +0 -33
  186. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.d.ts +0 -4
  187. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuest.js +0 -78
  188. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.d.ts +0 -8
  189. package/dist/components/Quests/DailyCheckInQuest/DailyCheckInQuestModal.js +0 -9
  190. package/dist/components/Quests/MultiWageringQuest.d.ts +0 -1
  191. package/dist/components/Quests/MultiWageringQuest.js +0 -111
  192. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.d.ts +0 -4
  193. package/dist/components/Quests/OnboardingQuest/OnboardingQuest.js +0 -4
  194. package/dist/components/Quests/WageringQuest/WageringQuest.d.ts +0 -4
  195. package/dist/components/Quests/WageringQuest/WageringQuest.js +0 -20
  196. package/dist/components/Quests/WageringQuest/WageringQuestModal.d.ts +0 -9
  197. package/dist/components/Quests/WageringQuest/WageringQuestModal.js +0 -9
  198. package/dist/components/SessionWatcher/SessionWatcher.d.ts +0 -1
  199. package/dist/components/SessionWatcher/SessionWatcher.js +0 -20
  200. package/dist/components/SessionWatcher/index.d.ts +0 -1
  201. package/dist/components/SessionWatcher/index.js +0 -1
  202. package/dist/components/SignIn/utils.d.ts +0 -8
  203. package/dist/components/SignIn/utils.js +0 -26
  204. package/dist/components/SignUp/SignUp.lazy.d.ts +0 -12
  205. package/dist/components/SignUp/SignUp.lazy.js +0 -18
  206. package/dist/components/SignUp/SignUpContext.d.ts +0 -6
  207. package/dist/components/SignUp/SignUpContext.js +0 -2
  208. package/dist/components/SignUp/SignUpDefault/SignUp.lazy.d.ts +0 -17
  209. package/dist/components/SignUp/SignUpDefault/SignUp.lazy.js +0 -18
  210. package/dist/components/SignUp/SignUpDefault/SignUpContext.d.ts +0 -6
  211. package/dist/components/SignUp/SignUpDefault/SignUpContext.js +0 -2
  212. package/dist/components/SignUp/SignUpDefault/SignUpForm.d.ts +0 -1
  213. package/dist/components/SignUp/SignUpDefault/SignUpForm.js +0 -310
  214. package/dist/components/SignUp/SignUpForm.d.ts +0 -1
  215. package/dist/components/SignUp/SignUpForm.js +0 -284
  216. package/dist/components/SignUp/SignUpKYC/CaptureIdDocument.d.ts +0 -1
  217. package/dist/components/SignUp/SignUpKYC/CaptureIdDocument.js +0 -198
  218. package/dist/components/SignUp/SignUpKYC/CaptureSelfie.d.ts +0 -1
  219. package/dist/components/SignUp/SignUpKYC/CaptureSelfie.js +0 -251
  220. package/dist/components/SignUp/SignUpKYC/ImageUploader.d.ts +0 -10
  221. package/dist/components/SignUp/SignUpKYC/ImageUploader.js +0 -42
  222. package/dist/components/SignUp/SignUpKYC/PersonOverlayDesktop.d.ts +0 -7
  223. package/dist/components/SignUp/SignUpKYC/PersonOverlayDesktop.js +0 -9
  224. package/dist/components/SignUp/SignUpKYC/SignUpFormKYC.d.ts +0 -1
  225. package/dist/components/SignUp/SignUpKYC/SignUpFormKYC.js +0 -464
  226. package/dist/components/SignUp/SignUpKYC/useImageUploader.d.ts +0 -11
  227. package/dist/components/SignUp/SignUpKYC/useImageUploader.js +0 -20
  228. package/dist/components/SignUp/SignUpKYC/utils.d.ts +0 -9
  229. package/dist/components/SignUp/SignUpKYC/utils.js +0 -79
  230. package/dist/components/SignUp/SignUpPagcor/CaptureIdDocument.d.ts +0 -1
  231. package/dist/components/SignUp/SignUpPagcor/CaptureIdDocument.js +0 -198
  232. package/dist/components/SignUp/SignUpPagcor/CaptureSelfie.d.ts +0 -1
  233. package/dist/components/SignUp/SignUpPagcor/CaptureSelfie.js +0 -251
  234. package/dist/components/SignUp/SignUpPagcor/ImageUploader.d.ts +0 -10
  235. package/dist/components/SignUp/SignUpPagcor/ImageUploader.js +0 -41
  236. package/dist/components/SignUp/SignUpPagcor/SignUpFormPagcor.d.ts +0 -1
  237. package/dist/components/SignUp/SignUpPagcor/SignUpFormPagcor.js +0 -429
  238. package/dist/components/SignUp/SignUpPagcor/SignUpPagcor.lazy.d.ts +0 -13
  239. package/dist/components/SignUp/SignUpPagcor/SignUpPagcor.lazy.js +0 -26
  240. package/dist/components/SignUp/SignUpPagcor/SignUpPagcorContext.d.ts +0 -7
  241. package/dist/components/SignUp/SignUpPagcor/SignUpPagcorContext.js +0 -2
  242. package/dist/components/SignUp/SignUpPagcor/useImageUploader.d.ts +0 -11
  243. package/dist/components/SignUp/SignUpPagcor/useImageUploader.js +0 -20
  244. package/dist/components/shared/IdDocumentField.client.d.ts +0 -25
  245. package/dist/components/shared/IdDocumentField.client.js +0 -204
  246. package/dist/components/shared/IdDocumentField.d.ts +0 -2
  247. package/dist/components/shared/IdDocumentField.js +0 -11
  248. package/dist/components/shared/SelfieField.client.d.ts +0 -20
  249. package/dist/components/shared/SelfieField.client.js +0 -327
  250. package/dist/components/shared/SelfieField.d.ts +0 -2
  251. package/dist/components/shared/SelfieField.js +0 -11
  252. package/dist/constants/BranchCode.d.ts +0 -4
  253. package/dist/constants/BranchCode.js +0 -42
  254. package/dist/constants/Branches.d.ts +0 -2
  255. package/dist/constants/Branches.js +0 -42
  256. package/dist/handlers/postTransformIdFrontImage.d.ts +0 -3
  257. package/dist/handlers/postTransformIdFrontImage.js +0 -67
  258. package/dist/handlers/postTransformSelfieImage.d.ts +0 -3
  259. package/dist/handlers/postTransformSelfieImage.js +0 -71
  260. package/dist/handlers.d.ts +0 -43
  261. package/dist/handlers.js +0 -297
  262. package/dist/icons/BellRingIcon.d.ts +0 -2
  263. package/dist/icons/BellRingIcon.js +0 -4
  264. package/dist/images/game-providers/ALPHACHINKO.png +0 -0
  265. package/dist/images/responsible-gaming-yellow.png +0 -0
  266. package/dist/third-parties/FacebookPixel/FacebookPixel.d.ts +0 -4
  267. package/dist/third-parties/FacebookPixel/FacebookPixel.js +0 -4
  268. package/dist/third-parties/FacebookPixel/api.d.ts +0 -0
  269. package/dist/third-parties/FacebookPixel/api.js +0 -1
  270. package/dist/third-parties/FacebookPixel/index.d.ts +0 -1
  271. package/dist/third-parties/FacebookPixel/index.js +0 -1
  272. package/dist/third-parties/GoogleRecaptcha/GoogleRecaptcha.d.ts +0 -4
  273. package/dist/third-parties/GoogleRecaptcha/GoogleRecaptcha.js +0 -4
  274. package/dist/third-parties/GoogleRecaptcha/api.d.ts +0 -0
  275. package/dist/third-parties/GoogleRecaptcha/api.js +0 -1
  276. package/dist/third-parties/GoogleRecaptcha/index.d.ts +0 -1
  277. package/dist/third-parties/GoogleRecaptcha/index.js +0 -1
  278. package/dist/third-parties/index.d.ts +0 -2
  279. package/dist/third-parties/index.js +0 -2
  280. package/dist/utils/dataUrlToBlob.d.ts +0 -1
  281. package/dist/utils/dataUrlToBlob.js +0 -11
  282. package/dist/utils/gamesAvailable3pmTo3am.d.ts +0 -1
  283. package/dist/utils/gamesAvailable3pmTo3am.js +0 -1
  284. package/dist/utils/getGameName.d.ts +0 -1
  285. package/dist/utils/getGameName.js +0 -6
  286. package/dist/utils/isBetween3amAnd3pm.d.ts +0 -1
  287. package/dist/utils/isBetween3amAnd3pm.js +0 -5
  288. package/dist/utils/resizeImageSize.d.ts +0 -2
  289. package/dist/utils/resizeImageSize.js +0 -11
@@ -21,7 +21,6 @@ import { MayaWebpayDeposit } from './MayaWebpayDeposit/MayaWebpayDeposit.js';
21
21
  import { OnlineBankDeposit } from './OnlineBankDeposit/OnlineBankDeposit.js';
22
22
  import { PisoPayDeposit } from './PisoPayDeposit/PisoPayDeposit.js';
23
23
  import { QRPHDeposit } from './QRPHDeposit/QRPHDeposit.js';
24
- import { QRPHDeposit as QRPHDeposit__next } from './QRPHDeposit__next/QRPHDeposit.js';
25
24
  export function Deposit() {
26
25
  const { onMaya } = useMayaAuth();
27
26
  const paymentSettingsQuery = usePaymentSettingsQuery();
@@ -111,7 +110,7 @@ export function Deposit() {
111
110
  if (enabledPaymentMethods.length <= 0) {
112
111
  return _jsx(NoAvailablePaymentMethods, {});
113
112
  }
114
- return (_jsxs(_Fragment, { children: [_jsx(PaymentMethods, { value: paymentMethod, onChange: setPaymentMethod, options: enabledPaymentMethods }), paymentMethod === 'QRPH' && !featureFlag.enabled && _jsx(QRPHDeposit, {}), paymentMethod === 'QRPH' && featureFlag.enabled && _jsx(QRPHDeposit__next, {}), paymentMethod === 'GCASH' && _jsx(GCashDeposit, {}), paymentMethod === 'MAYA' && _jsx(MayaDeposit, {}), paymentMethod === 'MAYA_APP' && _jsx(MayaAppDeposit, {}), paymentMethod === 'ONLINE_BANK' && _jsx(OnlineBankDeposit, {}), paymentMethod === 'LIBANGAN_PAY_IN' && _jsx(LibanganDeposit, {}), paymentMethod === 'PISO_PAY' && _jsx(PisoPayDeposit, {}), paymentMethod === 'AIO_GCASH' && _jsx(AiOGCashDeposit, {}), paymentMethod === 'AIO_PAY_MAYA' && _jsx(AiOPayMayaDeposit, {}), paymentMethod === 'AIO_GRAB_PAY' && _jsx(AiOGrabPayDeposit, {}), paymentMethod === 'AIO_PALAWAN_PAY' && _jsx(AiOPalawanPayDeposit, {}), paymentMethod === 'GCASH_WEBPAY' && _jsx(GCashWebpayDeposit, {}), paymentMethod === 'MAYA_WEBPAY' && _jsx(MayaWebpayDeposit, {})] }));
113
+ return (_jsxs(_Fragment, { children: [_jsx(PaymentMethods, { value: paymentMethod, onChange: setPaymentMethod, options: enabledPaymentMethods }), paymentMethod === 'QRPH' && _jsx(QRPHDeposit, {}), paymentMethod === 'GCASH' && _jsx(GCashDeposit, {}), paymentMethod === 'MAYA' && _jsx(MayaDeposit, {}), paymentMethod === 'MAYA_APP' && _jsx(MayaAppDeposit, {}), paymentMethod === 'ONLINE_BANK' && _jsx(OnlineBankDeposit, {}), paymentMethod === 'LIBANGAN_PAY_IN' && _jsx(LibanganDeposit, {}), paymentMethod === 'PISO_PAY' && _jsx(PisoPayDeposit, {}), paymentMethod === 'AIO_GCASH' && _jsx(AiOGCashDeposit, {}), paymentMethod === 'AIO_PAY_MAYA' && _jsx(AiOPayMayaDeposit, {}), paymentMethod === 'AIO_GRAB_PAY' && _jsx(AiOGrabPayDeposit, {}), paymentMethod === 'AIO_PALAWAN_PAY' && _jsx(AiOPalawanPayDeposit, {}), paymentMethod === 'GCASH_WEBPAY' && _jsx(GCashWebpayDeposit, {}), paymentMethod === 'MAYA_WEBPAY' && _jsx(MayaWebpayDeposit, {})] }));
115
114
  }
116
115
  function MayaSessionSessionExpired() {
117
116
  return (_jsxs("div", { className: "py-xl", children: [_jsx("div", { className: "mx-auto flex size-12 items-center justify-center rounded-full bg-bg-warning-secondary", children: _jsx(AlertCircleIcon, { className: "size-6 text-text-featured-icon-light-warning" }) }), _jsx("h2", { className: "mt-lg text-center font-semibold text-lg", children: "Session Expired" }), _jsx("p", { className: "mx-auto mt-xs max-w-[25rem] text-center text-sm text-text-tertiary-600", children: "Your session has timed out. To continue with deposits or withdrawals, Please try reloading the app." })] }));
@@ -0,0 +1 @@
1
+ export declare function Confirmed(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CheckCircleIcon } from '../../../../icons/CheckCircleIcon.js';
3
+ import { XIcon } from '../../../../icons/XIcon.js';
4
+ import { AlertDialog } from '../../../../ui/AlertDialog/index.js';
5
+ import { Button } from '../../../../ui/Button/index.js';
6
+ import { Portal } from '../../../../ui/Portal/index.js';
7
+ import { useQRPHDepositContext } from './QRPHDepositContext.js';
8
+ export function Confirmed() {
9
+ const context = useQRPHDepositContext();
10
+ return (_jsx(AlertDialog.Root, { open: context.status === 'confirmed', lazyMount: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(AlertDialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+3)]" }), _jsx(AlertDialog.Positioner, { className: "!z-[calc(var(--z-dialog)+4)]", children: _jsxs(AlertDialog.Content, { children: [_jsx("button", { type: "button", className: "absolute top-4 right-4 icon:size-6 p-md text-text-quinary disabled:cursor-not-allowed disabled:opacity-50", onClick: context.reset, children: _jsx(XIcon, {}) }), _jsx("div", { className: "mx-auto flex size-12 items-center justify-center rounded-full bg-bg-success-secondary", children: _jsx(CheckCircleIcon, { className: "size-6 text-text-featured-icon-light-success" }) }), _jsx(AlertDialog.Title, { className: "mt-xl", children: "Your deposit was successful!" }), _jsx(AlertDialog.Description, { className: "mt-xl px-3", children: "The funds have been added to your account." }), _jsx(Button, { className: "mt-4xl w-full", onClick: context.reset, children: "Ok" })] }) })] }) }));
11
+ }
@@ -0,0 +1 @@
1
+ export declare function Failed(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AlertCircleIcon } from '../../../../icons/AlertCircleIcon.js';
3
+ import { XIcon } from '../../../../icons/XIcon.js';
4
+ import { AlertDialog } from '../../../../ui/AlertDialog/index.js';
5
+ import { Button } from '../../../../ui/Button/index.js';
6
+ import { Portal } from '../../../../ui/Portal/index.js';
7
+ import { useQRPHDepositContext } from './QRPHDepositContext.js';
8
+ export function Failed() {
9
+ const context = useQRPHDepositContext();
10
+ return (_jsx(AlertDialog.Root, { open: context.status === 'failed', lazyMount: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(AlertDialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+3)]" }), _jsx(AlertDialog.Positioner, { className: "!z-[calc(var(--z-dialog)+4)]", children: _jsxs(AlertDialog.Content, { children: [_jsx("button", { type: "button", className: "absolute top-4 right-4 icon:size-6 p-md text-text-quinary disabled:cursor-not-allowed disabled:opacity-50", onClick: context.reset, children: _jsx(XIcon, {}) }), _jsx("div", { className: "mx-auto flex size-12 items-center justify-center rounded-full bg-bg-error-secondary", children: _jsx(AlertCircleIcon, { className: "size-6 text-text-featured-icon-light-error" }) }), _jsx(AlertDialog.Title, { className: "mt-xl", children: "Your deposit failed or was cancelled." }), _jsx(AlertDialog.Description, { className: "mt-xl px-3", children: "Your deposit was not completed or has been cancelled. You can try again by generating a\u00A0new\u00A0QR code." }), _jsx(Button, { className: "mt-4xl w-full", variant: "outline", onClick: context.regenerateQRCode, children: "Generate New QR Code" })] }) })] }) }));
11
+ }
@@ -0,0 +1 @@
1
+ export declare function Form(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,126 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { zodResolver } from '@hookform/resolvers/zod';
3
+ import Link from 'next/link';
4
+ import { useEffect } from 'react';
5
+ import { Controller, useForm } from 'react-hook-form';
6
+ import { useBoolean } from 'usehooks-ts';
7
+ import { z } from 'zod';
8
+ import { useShallow } from 'zustand/shallow';
9
+ import { useAvailablePromosQuery } from '../../../../client/hooks/useAvailablePromosQuery.js';
10
+ import { useDepositsCountQuery } from '../../../../client/hooks/useDepositsCountQuery.js';
11
+ import { useGlobalStore } from '../../../../client/hooks/useGlobalStore.js';
12
+ import { usePaymentSettingsQuery } from '../../../../client/hooks/usePaymentSettingsQuery.js';
13
+ import { QrCode02Icon } from '../../../../icons/QrCode02Icon.js';
14
+ import { XIcon } from '../../../../icons/XIcon.js';
15
+ import { AlertDialog } from '../../../../ui/AlertDialog/index.js';
16
+ import { Button } from '../../../../ui/Button/index.js';
17
+ import { Field } from '../../../../ui/Field/index.js';
18
+ import { Portal } from '../../../../ui/Portal/index.js';
19
+ import { parseDecimal } from '../../../../utils/parseDecimal.js';
20
+ import { AmountChoices } from '../../AmountChoices.js';
21
+ import { useDepositWithdrawalPropsContext } from '../../DepositWithdrawalContext.js';
22
+ import { AvailablePromos } from '../AvailablePromos.js';
23
+ import { useQRPHDepositContext } from './QRPHDepositContext.js';
24
+ export function Form() {
25
+ const depositWithdrawalProps = useDepositWithdrawalPropsContext();
26
+ const globalStore = useGlobalStore(useShallow((ctx) => ({
27
+ depositWithdrawal: ctx.depositWithdrawal,
28
+ })));
29
+ const context = useQRPHDepositContext();
30
+ const depositsCountQuery = useDepositsCountQuery();
31
+ const depositsCount = depositsCountQuery.data ?? 0;
32
+ const paymentSettingsQuery = usePaymentSettingsQuery();
33
+ const paymentSettings = paymentSettingsQuery.data;
34
+ const gatewaySettings = paymentSettings?.qrphDepositGatewaySettings;
35
+ const maximumAmount = parseDecimal(gatewaySettings?.maximumAmount, 0);
36
+ const minimumAmount = depositsCount <= 0
37
+ ? parseDecimal(paymentSettingsQuery.data?.minimumFirstDepositAmount, 0)
38
+ : parseDecimal(gatewaySettings?.minimumAmount, 0);
39
+ const promosQuery = useAvailablePromosQuery();
40
+ const promos = promosQuery.data ?? [];
41
+ const definition = z
42
+ .object({
43
+ amount: z.string().superRefine((val, ctx) => {
44
+ const n = parseDecimal(val, 0);
45
+ if (val.includes('.')) {
46
+ ctx.addIssue({
47
+ code: z.ZodIssueCode.custom,
48
+ message: 'Amount must be a whole number',
49
+ });
50
+ return;
51
+ }
52
+ if (n < minimumAmount) {
53
+ ctx.addIssue({
54
+ type: 'number',
55
+ code: z.ZodIssueCode.too_small,
56
+ inclusive: true,
57
+ minimum: minimumAmount,
58
+ message: `Minimum amount is ${minimumAmount.toLocaleString()}`,
59
+ });
60
+ }
61
+ if (n > maximumAmount) {
62
+ ctx.addIssue({
63
+ type: 'number',
64
+ code: z.ZodIssueCode.too_big,
65
+ inclusive: true,
66
+ maximum: maximumAmount,
67
+ message: `Maximum amount is ${maximumAmount.toLocaleString()}`,
68
+ });
69
+ }
70
+ }),
71
+ promo: z.string().optional().nullable(),
72
+ })
73
+ .superRefine((value, ctx) => {
74
+ const promo = promos.find((o) => o.id === value.promo);
75
+ const promoMinAmount = parseDecimal(promo?.minimumDepositAmount, 0);
76
+ const promoMaxAmount = parseDecimal(promo?.maximumDepositAmount, 0);
77
+ const amount = parseDecimal(value.amount, 0);
78
+ if (promo && amount < promoMinAmount) {
79
+ ctx.addIssue({
80
+ path: ['amount'],
81
+ code: z.ZodIssueCode.custom,
82
+ message: `Minimum amount for this promo is ${promoMinAmount.toLocaleString()}`,
83
+ });
84
+ }
85
+ if (promo && amount > promoMaxAmount) {
86
+ ctx.addIssue({
87
+ path: ['amount'],
88
+ code: z.ZodIssueCode.custom,
89
+ message: `Maximum amount for this promo is ${promoMaxAmount}`,
90
+ });
91
+ }
92
+ });
93
+ const form = useForm({
94
+ mode: 'all',
95
+ resolver: zodResolver(definition),
96
+ defaultValues: {
97
+ amount: '0',
98
+ promo: globalStore.depositWithdrawal.promo ?? null,
99
+ },
100
+ });
101
+ useEffect(() => {
102
+ if (minimumAmount) {
103
+ form.reset({
104
+ amount: minimumAmount.toString(),
105
+ promo: form.getValues('promo') ?? null,
106
+ });
107
+ }
108
+ }, [form, minimumAmount]);
109
+ const confirm = useBoolean();
110
+ return (_jsxs("form", { onSubmit: (e) => {
111
+ e.preventDefault();
112
+ confirm.setTrue();
113
+ }, noValidate: true, children: [_jsxs(Field.Root, { invalid: !!form.formState.errors.amount, className: "mt-3xl", children: [_jsx(Field.Label, { children: "Enter the amount you want to deposit" }), _jsx(Field.Input, { type: "number", ...form.register('amount') }), _jsx(Field.ErrorText, { children: form.formState.errors.amount?.message })] }), _jsx(AmountChoices, { value: parseDecimal(form.watch('amount'), 0), onChange: (value) => {
114
+ form.setValue('amount', value.toString(), {
115
+ shouldTouch: true,
116
+ shouldDirty: true,
117
+ shouldValidate: true,
118
+ });
119
+ }, min: minimumAmount, max: maximumAmount, className: "mt-lg" }), _jsx(Controller, { control: form.control, name: "promo", render: (o) => (_jsx(AvailablePromos, { value: o.field.value, onChange: (value) => {
120
+ o.field.onChange(value);
121
+ globalStore.depositWithdrawal.setPromo(null);
122
+ }, className: "mt-3xl" })) }), _jsx(Button, { type: "submit", className: "mt-3xl", children: "Deposit" }), depositWithdrawalProps.hasPrivacyPolicyAndTermsOfUse && (_jsxs("p", { className: "mt-lg text-text-tertiary-600 text-xs", children: ["By depositing, you agree to our", ' ', _jsx(Link, { href: depositWithdrawalProps.termsOfUseUrl ?? '/terms-of-use', onClick: () => globalStore.depositWithdrawal.setOpen(false), className: "text-text-warning-primary-600 underline underline-offset-2", children: "Terms of Use" }), ' ', "and", ' ', _jsx(Link, { href: depositWithdrawalProps.privacyPolicyUrl ?? '/privacy-policy', onClick: () => globalStore.depositWithdrawal.setOpen(false), className: "text-text-warning-primary-600 underline underline-offset-2", children: "Privacy Policy" }), "."] })), _jsx(AlertDialog.Root, { open: confirm.value, lazyMount: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(AlertDialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+2)]" }), _jsx(AlertDialog.Positioner, { className: "!z-[calc(var(--z-dialog)+3)]", children: _jsxs(AlertDialog.Content, { children: [_jsx(AlertDialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsx("div", { className: "mx-auto flex size-12 items-center justify-center rounded-full bg-bg-brand-secondary", children: _jsx(QrCode02Icon, { className: "size-6 text-text-featured-icon-light-brand" }) }), _jsx(AlertDialog.Title, { className: "mt-xl", children: "Generate Single Use QR Code" }), _jsx(AlertDialog.Description, { className: "mt-xs px-2", children: "To proceed with your QRPH deposit, please generate a QR code first." }), _jsx(Button, { className: "mt-4xl", variant: "outline", colorScheme: "gray", onClick: form.handleSubmit(async (data) => {
123
+ confirm.setFalse();
124
+ await context.generateQRCode(data);
125
+ }), children: "Generate QR code" })] }) })] }) })] }));
126
+ }
@@ -0,0 +1 @@
1
+ export declare function GeneratingQrCode(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Spinner02Icon } from '../../../../icons/Spinner02Icon.js';
3
+ import { XIcon } from '../../../../icons/XIcon.js';
4
+ import { AlertDialog } from '../../../../ui/AlertDialog/index.js';
5
+ import { Portal } from '../../../../ui/Portal/index.js';
6
+ import { useQRPHDepositContext } from './QRPHDepositContext.js';
7
+ export function GeneratingQrCode() {
8
+ const context = useQRPHDepositContext();
9
+ return (_jsx(AlertDialog.Root, { open: context.status === 'generating-qr-code', lazyMount: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(AlertDialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+2)]" }), _jsx(AlertDialog.Positioner, { className: "!z-[calc(var(--z-dialog)+3)]", children: _jsxs(AlertDialog.Content, { children: [_jsx(AlertDialog.CloseTrigger, { disabled: true, children: _jsx(XIcon, {}) }), _jsx(Spinner02Icon, { className: "mx-auto size-12 text-text-featured-icon-light-brand" }), _jsx(AlertDialog.Title, { className: "mt-xl", children: "Generating Single Use QR Code" }), _jsxs(AlertDialog.Description, { className: "mt-xs px-3", children: [_jsx("span", { className: "block", children: "Please hold tight as we verify the account details and amount. Once verified, a QRPH code will be displayed for you to scan and complete the transaction." }), _jsxs("span", { className: "mt-3 block", children: ["Please wait ", _jsx("span", { className: "font-bold", children: "60" }), " seconds..."] })] })] }) })] }) }));
10
+ }
@@ -1,10 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { QRPHDepositAlert } from './QRPHDepositAlert.js';
2
+ import { Confirmed } from './Confirmed.js';
3
+ import { Failed } from './Failed.js';
4
+ import { Form } from './Form.js';
5
+ import { GeneratingQrCode } from './GeneratingQrCode.js';
3
6
  import { QRPHDepositContext } from './QRPHDepositContext.js';
4
- import { QRPHDepositDetails } from './QRPHDepositDetails.js';
5
- import { QRPHDepositForm } from './QRPHDepositForm.js';
7
+ import { QrCodeGenerated } from './QrCodeGenerated.js';
6
8
  import { useQRPHDeposit } from './useQRPHDeposit.js';
7
9
  export function QRPHDeposit() {
8
10
  const context = useQRPHDeposit();
9
- return (_jsxs(QRPHDepositContext, { value: context, children: [_jsx(QRPHDepositForm, {}), _jsx(QRPHDepositDetails, {}), _jsx(QRPHDepositAlert, {})] }));
11
+ return (_jsxs(QRPHDepositContext, { value: context, children: [_jsx(Form, {}), _jsx(GeneratingQrCode, {}), _jsx(QrCodeGenerated, {}), _jsx(Failed, {}), _jsx(Confirmed, {})] }));
10
12
  }
@@ -1,25 +1,17 @@
1
1
  export declare const QRPHDepositContext: (props: {
2
2
  value: {
3
- view: "form" | "qrCode";
4
- status: "waiting" | "processing" | "failed" | "verification-waiting" | "verification-processing" | "verification-failed" | "verification-success";
5
- verify: () => void;
6
- reset: () => void;
3
+ status: "idle" | "generating-qr-code" | "qr-code-generated" | "failed" | "confirmed";
7
4
  deposit: import("../../../../types").Deposit | null;
8
- generateQRCode: (input: {
9
- amount: string;
10
- promo?: string | null;
11
- }) => void;
5
+ generateQRCode: (input: import("./useQRPHDeposit").GenerateQRCodeInput) => Promise<void>;
6
+ regenerateQRCode: () => Promise<void>;
7
+ reset: () => void;
12
8
  };
13
9
  } & {
14
10
  children?: import("react").ReactNode | undefined;
15
11
  }) => React.ReactNode, useQRPHDepositContext: () => {
16
- view: "form" | "qrCode";
17
- status: "waiting" | "processing" | "failed" | "verification-waiting" | "verification-processing" | "verification-failed" | "verification-success";
18
- verify: () => void;
19
- reset: () => void;
12
+ status: "idle" | "generating-qr-code" | "qr-code-generated" | "failed" | "confirmed";
20
13
  deposit: import("../../../../types").Deposit | null;
21
- generateQRCode: (input: {
22
- amount: string;
23
- promo?: string | null;
24
- }) => void;
14
+ generateQRCode: (input: import("./useQRPHDeposit").GenerateQRCodeInput) => Promise<void>;
15
+ regenerateQRCode: () => Promise<void>;
16
+ reset: () => void;
25
17
  };
@@ -0,0 +1 @@
1
+ export declare function QrCodeGenerated(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,41 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Image from 'next/image';
3
+ import { useBoolean } from 'usehooks-ts';
4
+ import { AlertCircleIcon } from '../../../../icons/AlertCircleIcon.js';
5
+ import { ArrowCircleDownIcon } from '../../../../icons/ArrowCircleDownIcon.js';
6
+ import { QrCode02Icon } from '../../../../icons/QrCode02Icon.js';
7
+ import { XIcon } from '../../../../icons/XIcon.js';
8
+ import qrphIcon from '../../../../images/qrph-icon.png';
9
+ import { AlertDialog } from '../../../../ui/AlertDialog/index.js';
10
+ import { Button } from '../../../../ui/Button/index.js';
11
+ import { Portal } from '../../../../ui/Portal/index.js';
12
+ import { QrCode } from '../../../../ui/QrCode/index.js';
13
+ import { useQRPHDepositContext } from './QRPHDepositContext.js';
14
+ export function QrCodeGenerated() {
15
+ const context = useQRPHDepositContext();
16
+ const confirm = useBoolean(false);
17
+ return (_jsx(AlertDialog.Root, { open: context.status === 'qr-code-generated', lazyMount: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(AlertDialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+2)]" }), _jsx(AlertDialog.Positioner, { className: "!z-[calc(var(--z-dialog)+3)]", children: _jsxs(AlertDialog.Content, { children: [_jsx("button", { type: "button", className: "absolute top-4 right-4 icon:size-6 p-md text-text-quinary disabled:cursor-not-allowed disabled:opacity-50", onClick: () => {
18
+ if (!confirm.value) {
19
+ confirm.setTrue();
20
+ return;
21
+ }
22
+ confirm.setFalse();
23
+ }, children: _jsx(XIcon, {}) }), !confirm.value ? (_jsx("div", { className: "mx-auto flex size-12 items-center justify-center rounded-full bg-bg-brand-secondary", children: _jsx(QrCode02Icon, { className: "size-6 text-text-featured-icon-light-brand" }) })) : (_jsx("div", { className: "mx-auto flex size-12 items-center justify-center rounded-full bg-bg-error-secondary", children: _jsx(AlertCircleIcon, { className: "size-6 text-text-featured-icon-light-error" }) })), _jsx(AlertDialog.Title, { className: "mt-xl", dangerouslySetInnerHTML: {
24
+ __html: confirm.value
25
+ ? 'Are you sure you want to close this&nbsp;window?'
26
+ : 'Single Use QR Code',
27
+ } }), _jsx(AlertDialog.Description, { className: "mt-xs px-3", children: confirm.value
28
+ ? 'Closing this window will cancel your current deposit. Do you want to continue?'
29
+ : 'Scan the QR code below with your banking app, or upload it to complete your deposit.' }), !confirm.value && (_jsx("div", { className: "mx-auto mt-xl w-[14.125rem] rounded-xl bg-bg-primary-alt p-6", children: _jsxs(QrCode.Root, { value: context.deposit?.qrCode ?? '', encoding: {
30
+ ecc: 'H',
31
+ boostEcc: true,
32
+ }, children: [_jsxs("div", { className: "relative", children: [_jsx(QrCode.Frame, { className: "mx-auto size-[10rem] rounded-[0.25rem] border border-border-primary bg-white", children: _jsx(QrCode.Pattern, {}) }), _jsx(QrCode.Overlay, { className: "bg-white p-0.5", children: _jsx(Image, { src: qrphIcon, alt: "", className: "size-8", width: 40, height: 40 }) })] }), _jsxs(QrCode.DownloadTrigger, { type: "button", fileName: `QRPH-${Date.now()}.jpg`, mimeType: "image/jpeg", className: "mx-auto mt-5 flex w-fit items-center gap-1 font-semibold text-button-tertiary-fg", children: [_jsx(ArrowCircleDownIcon, { className: "size-5" }), "Download QR Code"] })] }) })), confirm.value && (_jsxs("div", { className: "mt-4xl flex gap-lg", children: [_jsx(Button, { variant: "outline", onClick: confirm.setFalse, children: "Go back" }), _jsx(Button, { onClick: () => {
33
+ context.reset();
34
+ setTimeout(() => {
35
+ confirm.setFalse();
36
+ }, 2);
37
+ }, children: "Continue" })] })), !confirm.value && _jsx(Instruction, {})] }) })] }) }));
38
+ }
39
+ function Instruction() {
40
+ return (_jsxs(AlertDialog.Root, { lazyMount: true, closeOnEscape: false, closeOnInteractOutside: false, children: [_jsxs("p", { className: "mt-lg text-center text-text-tertiary-600 text-xs", children: ["Need help using the QR Code?", ' ', _jsx(AlertDialog.Trigger, { className: "text-text-brand", children: "See instructions" })] }), _jsxs(Portal, { children: [_jsx(AlertDialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+3)]" }), _jsx(AlertDialog.Positioner, { className: "!z-[calc(var(--z-dialog)+4)]", children: _jsxs(AlertDialog.Content, { children: [_jsx(AlertDialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsx("div", { className: "mx-auto flex size-12 items-center justify-center rounded-full bg-bg-brand-secondary", children: _jsx(QrCode02Icon, { className: "size-6 text-text-featured-icon-light-brand" }) }), _jsx(AlertDialog.Title, { className: "mt-xl", children: "How to Use the QR Code for Payment" }), _jsx(AlertDialog.Description, { className: "mt-xl px-3", children: "Follow these simple steps to complete your\u00A0transaction:" }), _jsx("div", { className: "mt-4 text-sm text-text-tertiary-600", children: _jsxs("ol", { className: "list-decimal pl-4", children: [_jsx("li", { className: "marker:font-mono marker:text-sm", children: "Open your preferred banking or EMI mobile app and select 'Transfer Money' or 'Pay via QR.'" }), _jsx("li", { className: "marker:font-mono marker:text-sm", children: "Scan or upload the generated QR Ph code. If prompted by the app, enter the amount to be sent." }), _jsx("li", { className: "marker:font-mono marker:text-sm", children: "Proceed with the transfer or payment." })] }) })] }) })] })] }));
41
+ }
@@ -1,13 +1,13 @@
1
1
  import type { Deposit } from '../../../../types';
2
2
  export type UseQRPHDepositReturn = ReturnType<typeof useQRPHDeposit>;
3
+ export interface GenerateQRCodeInput {
4
+ amount: string;
5
+ promo?: string | null;
6
+ }
3
7
  export declare function useQRPHDeposit(): {
4
- view: "form" | "qrCode";
5
- status: "waiting" | "processing" | "failed" | "verification-waiting" | "verification-processing" | "verification-failed" | "verification-success";
6
- verify: () => void;
7
- reset: () => void;
8
+ status: "idle" | "generating-qr-code" | "qr-code-generated" | "failed" | "confirmed";
8
9
  deposit: Deposit | null;
9
- generateQRCode: (input: {
10
- amount: string;
11
- promo?: string | null;
12
- }) => void;
10
+ generateQRCode: (input: GenerateQRCodeInput) => Promise<void>;
11
+ regenerateQRCode: () => Promise<void>;
12
+ reset: () => void;
13
13
  };
@@ -1,85 +1,91 @@
1
- import { useEffect, useState } from 'react';
1
+ import { useEffect, useRef, useState } from 'react';
2
2
  import invariant from 'tiny-invariant';
3
3
  import { useShallow } from 'zustand/shallow';
4
4
  import { useCreateQRPHDepositMutation } from '../../../../client/hooks/useCreateQRPHDepositMutation.js';
5
5
  import { useDepositQuery } from '../../../../client/hooks/useDepositQuery.js';
6
6
  import { useGlobalStore } from '../../../../client/hooks/useGlobalStore.js';
7
7
  import { useMemberVerificationQuery } from '../../../../client/hooks/useMemberVerificationQuery.js';
8
- import { getQueryClient } from '../../../../utils/getQueryClient.js';
9
- import { getDepositsCountQueryKey } from '../../../../utils/queryKeys.js';
10
8
  export function useQRPHDeposit() {
11
9
  const globalStore = useGlobalStore(useShallow((ctx) => ({
12
10
  kycVerificationStatus: ctx.kycVerificationStatus,
13
11
  })));
12
+ const inputRef = useRef(null);
14
13
  const [deposit, setDeposit] = useState(null);
14
+ const [status, setStatus] = useState('idle');
15
15
  const verificationQuery = useMemberVerificationQuery();
16
16
  const verificationStatus = verificationQuery.data?.status ?? 'UNVERIFIED';
17
- const [status, setStatus] = useState('waiting');
18
- const view = status === 'verification-failed' ||
19
- status === 'verification-waiting' ||
20
- status === 'verification-success' ||
21
- status === 'verification-processing'
22
- ? 'qrCode'
23
- : 'form';
24
17
  const mutation = useCreateQRPHDepositMutation({
25
18
  onMutate() {
26
- setStatus('processing');
19
+ setStatus('generating-qr-code');
27
20
  },
28
21
  onSuccess(data) {
29
- const queryClient = getQueryClient();
30
22
  invariant(data.qrCode);
31
- setStatus('verification-waiting');
32
- queryClient.invalidateQueries({ queryKey: getDepositsCountQueryKey() });
23
+ setStatus('qr-code-generated');
33
24
  setDeposit(data);
34
25
  },
35
26
  onError() {
36
27
  setStatus('failed');
37
28
  },
38
29
  });
39
- const generateQRCode = (input) => {
40
- //handle new kyc process
41
- if (verificationStatus === 'PENDING' ||
42
- verificationStatus === 'UNVERIFIED' ||
43
- verificationStatus === 'REJECTED' ||
44
- verificationStatus === 'CREATED') {
45
- globalStore.kycVerificationStatus.setOpen(true);
46
- return;
47
- }
48
- else {
49
- mutation.mutate({
50
- amount: input.amount,
51
- promo: input.promo ?? undefined,
52
- });
53
- }
54
- };
55
30
  const query = useDepositQuery(deposit?.id, {
56
- enabled: !!deposit,
57
- refetchInterval: 5000,
31
+ enabled: !!deposit && status === 'qr-code-generated',
32
+ refetchInterval: (ctx) => {
33
+ if (ctx.state.data?.status === 'APPROVED' ||
34
+ ctx.state.data?.status === 'CONFIRMED' ||
35
+ ctx.state.data?.status === 'CANCELLED' ||
36
+ ctx.state.data?.status === 'REJECTED' ||
37
+ ctx.state.data?.status === 'FAILED') {
38
+ return false;
39
+ }
40
+ return 2000;
41
+ },
58
42
  });
59
43
  useEffect(() => {
60
44
  if (query.data?.status === 'APPROVED' ||
61
45
  query.data?.status === 'CONFIRMED') {
62
- setStatus('verification-success');
46
+ setStatus('confirmed');
47
+ return;
63
48
  }
64
49
  if (query.data?.status === 'CANCELLED' ||
65
50
  query.data?.status === 'REJECTED' ||
66
51
  query.data?.status === 'FAILED') {
67
- setStatus('verification-failed');
52
+ setStatus('failed');
53
+ return;
68
54
  }
69
55
  }, [query.data?.status]);
56
+ const generateQRCode = async (input) => {
57
+ if (verificationStatus === 'PENDING' ||
58
+ verificationStatus === 'UNVERIFIED' ||
59
+ verificationStatus === 'REJECTED' ||
60
+ verificationStatus === 'CREATED') {
61
+ globalStore.kycVerificationStatus.setOpen(true);
62
+ return;
63
+ }
64
+ inputRef.current = input;
65
+ mutation.mutate({
66
+ amount: input.amount,
67
+ promo: input.promo ?? undefined,
68
+ });
69
+ };
70
+ const regenerateQRCode = async () => {
71
+ invariant(inputRef.current);
72
+ mutation.reset();
73
+ await new Promise((resolve) => setTimeout(resolve, 1));
74
+ mutation.mutate({
75
+ amount: inputRef.current.amount,
76
+ promo: inputRef.current.promo ?? undefined,
77
+ });
78
+ };
70
79
  const reset = () => {
80
+ setStatus('idle');
71
81
  setDeposit(null);
72
- setStatus('waiting');
73
- };
74
- const verify = () => {
75
- setStatus('verification-processing');
82
+ inputRef.current = null;
76
83
  };
77
84
  return {
78
- view,
79
85
  status,
80
- verify,
81
- reset,
82
86
  deposit,
83
87
  generateQRCode,
88
+ regenerateQRCode,
89
+ reset,
84
90
  };
85
91
  }
@@ -0,0 +1 @@
1
+ export declare function QRPHDeposit(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { QRPHDepositAlert } from './QRPHDepositAlert.js';
3
+ import { QRPHDepositContext } from './QRPHDepositContext.js';
4
+ import { QRPHDepositDetails } from './QRPHDepositDetails.js';
5
+ import { QRPHDepositForm } from './QRPHDepositForm.js';
6
+ import { useQRPHDeposit } from './useQRPHDeposit.js';
7
+ export function QRPHDeposit() {
8
+ const context = useQRPHDeposit();
9
+ return (_jsxs(QRPHDepositContext, { value: context, children: [_jsx(QRPHDepositForm, {}), _jsx(QRPHDepositDetails, {}), _jsx(QRPHDepositAlert, {})] }));
10
+ }
@@ -0,0 +1 @@
1
+ export declare function QRPHDepositAlert(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,99 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { AlertCircleIcon } from '../../../../icons/AlertCircleIcon.js';
3
+ import { SpinnerIcon } from '../../../../icons/SpinnerIcon.js';
4
+ import { XIcon } from '../../../../icons/XIcon.js';
5
+ import { AlertDialog } from '../../../../ui/AlertDialog/index.js';
6
+ import { Button } from '../../../../ui/Button/index.js';
7
+ import { Portal } from '../../../../ui/Portal/index.js';
8
+ import { useQRPHDepositContext } from './QRPHDepositContext.js';
9
+ export function QRPHDepositAlert() {
10
+ const context = useQRPHDepositContext();
11
+ const details = useDetails();
12
+ return (_jsx(AlertDialog.Root, { open: context.status !== 'waiting' &&
13
+ context.status !== 'verification-waiting', onOpenChange: (details) => {
14
+ if (!details.open) {
15
+ context.reset();
16
+ }
17
+ }, lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(AlertDialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+2)]" }), _jsx(AlertDialog.Positioner, { className: "!z-[calc(var(--z-dialog)+3)]", children: _jsxs(AlertDialog.Content, { children: [_jsx(AlertDialog.CloseTrigger, { disabled: details.type === 'loading', children: _jsx(XIcon, {}) }), _jsxs(AlertDialog.Header, { children: [details.type === 'loading' && (_jsx(SpinnerIcon, { className: "size-12 text-text-brand-primary-600" })), details.type === 'success' && (_jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-bg-success-secondary text-text-featured-icon-light-success", children: _jsx(AlertCircleIcon, {}) })), details.type === 'erorr' && (_jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-bg-error-secondary text-text-featured-icon-light-error", children: _jsx(AlertCircleIcon, {}) }))] }), _jsxs(AlertDialog.Body, { children: [_jsx(AlertDialog.Title, { children: details.title }), _jsx(AlertDialog.Description, { children: details.description })] }), (details.type === 'erorr' || details.type === 'success') && (_jsx(AlertDialog.Footer, { children: _jsx(AlertDialog.Context, { children: (api) => (_jsx(Button, { onClick: () => {
18
+ api.setOpen(false);
19
+ }, children: details.type === 'success' ? 'Ok' : 'Try Again' })) }) }))] }) })] }) }));
20
+ }
21
+ function useDetails() {
22
+ const context = useQRPHDepositContext();
23
+ const title = (() => {
24
+ let s = '';
25
+ if (context.status === 'processing') {
26
+ s = 'Processing Deposit';
27
+ }
28
+ else if (context.status === 'failed') {
29
+ s = 'Deposit Failed';
30
+ }
31
+ else if (context.status === 'verification-success') {
32
+ s = 'Deposit Successful';
33
+ }
34
+ else if (context.status === 'verification-processing') {
35
+ s = 'Verifying Deposit';
36
+ }
37
+ else if (context.status === 'verification-failed') {
38
+ if (context.deposit?.status === 'CANCELLED') {
39
+ s = 'Deposit Cancelled';
40
+ }
41
+ else if (context.deposit?.status === 'REJECTED') {
42
+ s = 'Deposit Rejected';
43
+ }
44
+ else {
45
+ s = 'Deposit Failed';
46
+ }
47
+ }
48
+ return s;
49
+ })();
50
+ const description = (() => {
51
+ let d = '';
52
+ if (context.status === 'processing') {
53
+ d = "We're verifying your account and amount. Please hold a moment.";
54
+ }
55
+ else if (context.status === 'failed') {
56
+ d =
57
+ 'Something went wrong while processing your deposit. ' +
58
+ 'Please try again or contact support.';
59
+ }
60
+ else if (context.status === 'verification-success') {
61
+ d = 'Your deposit has been successfully processed.';
62
+ }
63
+ else if (context.status === 'verification-processing') {
64
+ d = 'Your deposit is being processed.';
65
+ }
66
+ else if (context.status === 'verification-failed') {
67
+ if (context.deposit?.status === 'CANCELLED') {
68
+ d = 'Your deposit has been cancelled.';
69
+ }
70
+ else if (context.deposit?.status === 'REJECTED') {
71
+ d = 'Your deposit has been rejected.';
72
+ }
73
+ else if (context.deposit?.status === 'FAILED') {
74
+ d = context.deposit.error ?? 'Your deposit has failed.';
75
+ }
76
+ else {
77
+ d =
78
+ 'Something went wrong while processing your deposit. ' +
79
+ 'Please try again or contact support.';
80
+ }
81
+ }
82
+ return d;
83
+ })();
84
+ const type = (() => {
85
+ if (context.status === 'failed' ||
86
+ context.status === 'verification-failed') {
87
+ return 'erorr';
88
+ }
89
+ if (context.status === 'verification-success') {
90
+ return 'success';
91
+ }
92
+ return 'loading';
93
+ })();
94
+ return {
95
+ type,
96
+ title,
97
+ description,
98
+ };
99
+ }
@@ -0,0 +1,25 @@
1
+ export declare const QRPHDepositContext: (props: {
2
+ value: {
3
+ view: "form" | "qrCode";
4
+ status: "failed" | "waiting" | "processing" | "verification-waiting" | "verification-processing" | "verification-failed" | "verification-success";
5
+ verify: () => void;
6
+ reset: () => void;
7
+ deposit: import("../../../../types").Deposit | null;
8
+ generateQRCode: (input: {
9
+ amount: string;
10
+ promo?: string | null;
11
+ }) => void;
12
+ };
13
+ } & {
14
+ children?: import("react").ReactNode | undefined;
15
+ }) => React.ReactNode, useQRPHDepositContext: () => {
16
+ view: "form" | "qrCode";
17
+ status: "failed" | "waiting" | "processing" | "verification-waiting" | "verification-processing" | "verification-failed" | "verification-success";
18
+ verify: () => void;
19
+ reset: () => void;
20
+ deposit: import("../../../../types").Deposit | null;
21
+ generateQRCode: (input: {
22
+ amount: string;
23
+ promo?: string | null;
24
+ }) => void;
25
+ };
@@ -0,0 +1,2 @@
1
+ import { createContext } from '../../../../client/utils/createContext.js';
2
+ export const [QRPHDepositContext, useQRPHDepositContext] = createContext();
@@ -0,0 +1 @@
1
+ export declare function QRPHDepositDetails(): import("react/jsx-runtime").JSX.Element | null;