@daimo/pay 1.19.0 → 1.19.2

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 (385) hide show
  1. package/build/package.json.js +2 -2
  2. package/build/src/components/DaimoPayModal/index.js +17 -3
  3. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  4. package/build/src/components/Pages/SelectExchange/index.js +20 -5
  5. package/build/src/components/Pages/SelectExchange/index.js.map +1 -1
  6. package/build/src/components/Pages/SelectMethod/index.js +7 -4
  7. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  8. package/build/src/hooks/useConnectors.js +12 -1
  9. package/build/src/hooks/useConnectors.js.map +1 -1
  10. package/build/src/hooks/usePaymentState.js +4 -1
  11. package/build/src/hooks/usePaymentState.js.map +1 -1
  12. package/build/src/wallets/useWallets.js +1 -0
  13. package/build/src/wallets/useWallets.js.map +1 -1
  14. package/package.json +2 -2
  15. package/build/connectkit/package.json.js +0 -117
  16. package/build/connectkit/package.json.js.map +0 -1
  17. package/build/connectkit/src/assets/MobileWithLogos.js +0 -329
  18. package/build/connectkit/src/assets/MobileWithLogos.js.map +0 -1
  19. package/build/connectkit/src/assets/ScanIconWithLogos.js +0 -243
  20. package/build/connectkit/src/assets/ScanIconWithLogos.js.map +0 -1
  21. package/build/connectkit/src/assets/browsers.js +0 -969
  22. package/build/connectkit/src/assets/browsers.js.map +0 -1
  23. package/build/connectkit/src/assets/chains.js +0 -648
  24. package/build/connectkit/src/assets/chains.js.map +0 -1
  25. package/build/connectkit/src/assets/coins.js +0 -43
  26. package/build/connectkit/src/assets/coins.js.map +0 -1
  27. package/build/connectkit/src/assets/icons.js +0 -273
  28. package/build/connectkit/src/assets/icons.js.map +0 -1
  29. package/build/connectkit/src/assets/logos.js +0 -1620
  30. package/build/connectkit/src/assets/logos.js.map +0 -1
  31. package/build/connectkit/src/assets/wave.js +0 -46
  32. package/build/connectkit/src/assets/wave.js.map +0 -1
  33. package/build/connectkit/src/components/Common/Alert/index.js +0 -13
  34. package/build/connectkit/src/components/Common/Alert/index.js.map +0 -1
  35. package/build/connectkit/src/components/Common/Alert/styles.js +0 -55
  36. package/build/connectkit/src/components/Common/Alert/styles.js.map +0 -1
  37. package/build/connectkit/src/components/Common/AmountInput/AmountInputField.js +0 -71
  38. package/build/connectkit/src/components/Common/AmountInput/AmountInputField.js.map +0 -1
  39. package/build/connectkit/src/components/Common/AmountInput/index.js +0 -159
  40. package/build/connectkit/src/components/Common/AmountInput/index.js.map +0 -1
  41. package/build/connectkit/src/components/Common/Avatar/index.js +0 -78
  42. package/build/connectkit/src/components/Common/Avatar/index.js.map +0 -1
  43. package/build/connectkit/src/components/Common/Avatar/styles.js +0 -54
  44. package/build/connectkit/src/components/Common/Avatar/styles.js.map +0 -1
  45. package/build/connectkit/src/components/Common/BrowserIcon/index.js +0 -29
  46. package/build/connectkit/src/components/Common/BrowserIcon/index.js.map +0 -1
  47. package/build/connectkit/src/components/Common/BrowserIcon/styles.js +0 -20
  48. package/build/connectkit/src/components/Common/BrowserIcon/styles.js.map +0 -1
  49. package/build/connectkit/src/components/Common/Button/index.js +0 -144
  50. package/build/connectkit/src/components/Common/Button/index.js.map +0 -1
  51. package/build/connectkit/src/components/Common/Button/styles.js +0 -287
  52. package/build/connectkit/src/components/Common/Button/styles.js.map +0 -1
  53. package/build/connectkit/src/components/Common/Chain/index.js +0 -141
  54. package/build/connectkit/src/components/Common/Chain/index.js.map +0 -1
  55. package/build/connectkit/src/components/Common/Chain/styles.js +0 -90
  56. package/build/connectkit/src/components/Common/Chain/styles.js.map +0 -1
  57. package/build/connectkit/src/components/Common/ChainSelectList/index.js +0 -250
  58. package/build/connectkit/src/components/Common/ChainSelectList/index.js.map +0 -1
  59. package/build/connectkit/src/components/Common/ChainSelectList/styles.js +0 -226
  60. package/build/connectkit/src/components/Common/ChainSelectList/styles.js.map +0 -1
  61. package/build/connectkit/src/components/Common/CircleTimer.js +0 -92
  62. package/build/connectkit/src/components/Common/CircleTimer.js.map +0 -1
  63. package/build/connectkit/src/components/Common/ConnectorList/index.js +0 -120
  64. package/build/connectkit/src/components/Common/ConnectorList/index.js.map +0 -1
  65. package/build/connectkit/src/components/Common/ConnectorList/styles.js +0 -344
  66. package/build/connectkit/src/components/Common/ConnectorList/styles.js.map +0 -1
  67. package/build/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +0 -78
  68. package/build/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +0 -1
  69. package/build/connectkit/src/components/Common/CopyToClipboard/index.js +0 -33
  70. package/build/connectkit/src/components/Common/CopyToClipboard/index.js.map +0 -1
  71. package/build/connectkit/src/components/Common/CustomQRCode/QRCode.js +0 -128
  72. package/build/connectkit/src/components/Common/CustomQRCode/QRCode.js.map +0 -1
  73. package/build/connectkit/src/components/Common/CustomQRCode/index.js +0 -71
  74. package/build/connectkit/src/components/Common/CustomQRCode/index.js.map +0 -1
  75. package/build/connectkit/src/components/Common/CustomQRCode/styles.js +0 -139
  76. package/build/connectkit/src/components/Common/CustomQRCode/styles.js.map +0 -1
  77. package/build/connectkit/src/components/Common/FitText/index.js +0 -34
  78. package/build/connectkit/src/components/Common/FitText/index.js.map +0 -1
  79. package/build/connectkit/src/components/Common/Modal/index.js +0 -523
  80. package/build/connectkit/src/components/Common/Modal/index.js.map +0 -1
  81. package/build/connectkit/src/components/Common/Modal/styles.js +0 -665
  82. package/build/connectkit/src/components/Common/Modal/styles.js.map +0 -1
  83. package/build/connectkit/src/components/Common/OptionsList/index.js +0 -145
  84. package/build/connectkit/src/components/Common/OptionsList/index.js.map +0 -1
  85. package/build/connectkit/src/components/Common/OptionsList/styles.js +0 -138
  86. package/build/connectkit/src/components/Common/OptionsList/styles.js.map +0 -1
  87. package/build/connectkit/src/components/Common/OrderHeader/index.js +0 -192
  88. package/build/connectkit/src/components/Common/OrderHeader/index.js.map +0 -1
  89. package/build/connectkit/src/components/Common/PaymentBreakdown/index.js +0 -70
  90. package/build/connectkit/src/components/Common/PaymentBreakdown/index.js.map +0 -1
  91. package/build/connectkit/src/components/Common/Portal/index.js +0 -30
  92. package/build/connectkit/src/components/Common/Portal/index.js.map +0 -1
  93. package/build/connectkit/src/components/Common/PoweredByFooter/index.js +0 -66
  94. package/build/connectkit/src/components/Common/PoweredByFooter/index.js.map +0 -1
  95. package/build/connectkit/src/components/Common/ScrollArea/index.js +0 -120
  96. package/build/connectkit/src/components/Common/ScrollArea/index.js.map +0 -1
  97. package/build/connectkit/src/components/Common/ScrollArea/styles.js +0 -169
  98. package/build/connectkit/src/components/Common/ScrollArea/styles.js.map +0 -1
  99. package/build/connectkit/src/components/Common/SelectAnotherMethodButton/index.js +0 -96
  100. package/build/connectkit/src/components/Common/SelectAnotherMethodButton/index.js.map +0 -1
  101. package/build/connectkit/src/components/Common/Spinner/index.js +0 -64
  102. package/build/connectkit/src/components/Common/Spinner/index.js.map +0 -1
  103. package/build/connectkit/src/components/Common/Spinner/styles.js +0 -22
  104. package/build/connectkit/src/components/Common/Spinner/styles.js.map +0 -1
  105. package/build/connectkit/src/components/Common/SwitchButton/index.js +0 -43
  106. package/build/connectkit/src/components/Common/SwitchButton/index.js.map +0 -1
  107. package/build/connectkit/src/components/Common/ThemedButton/index.js +0 -46
  108. package/build/connectkit/src/components/Common/ThemedButton/index.js.map +0 -1
  109. package/build/connectkit/src/components/Common/ThemedButton/styles.js +0 -152
  110. package/build/connectkit/src/components/Common/ThemedButton/styles.js.map +0 -1
  111. package/build/connectkit/src/components/Common/TokenChainLogo/index.js +0 -62
  112. package/build/connectkit/src/components/Common/TokenChainLogo/index.js.map +0 -1
  113. package/build/connectkit/src/components/Common/Tooltip/index.js +0 -129
  114. package/build/connectkit/src/components/Common/Tooltip/index.js.map +0 -1
  115. package/build/connectkit/src/components/Common/Tooltip/styles.js +0 -81
  116. package/build/connectkit/src/components/Common/Tooltip/styles.js.map +0 -1
  117. package/build/connectkit/src/components/Common/WalletChainLogo/index.js +0 -31
  118. package/build/connectkit/src/components/Common/WalletChainLogo/index.js.map +0 -1
  119. package/build/connectkit/src/components/DaimoPayButton/index.js +0 -197
  120. package/build/connectkit/src/components/DaimoPayButton/index.js.map +0 -1
  121. package/build/connectkit/src/components/DaimoPayButton/styles.js +0 -50
  122. package/build/connectkit/src/components/DaimoPayButton/styles.js.map +0 -1
  123. package/build/connectkit/src/components/DaimoPayModal/ConnectUsing.js +0 -68
  124. package/build/connectkit/src/components/DaimoPayModal/ConnectUsing.js.map +0 -1
  125. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js +0 -335
  126. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +0 -1
  127. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js +0 -131
  128. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +0 -1
  129. package/build/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js +0 -99
  130. package/build/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js.map +0 -1
  131. package/build/connectkit/src/components/DaimoPayModal/index.js +0 -462
  132. package/build/connectkit/src/components/DaimoPayModal/index.js.map +0 -1
  133. package/build/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +0 -25
  134. package/build/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +0 -1
  135. package/build/connectkit/src/components/Pages/About/graphics.js +0 -853
  136. package/build/connectkit/src/components/Pages/About/graphics.js.map +0 -1
  137. package/build/connectkit/src/components/Pages/About/index.js +0 -222
  138. package/build/connectkit/src/components/Pages/About/index.js.map +0 -1
  139. package/build/connectkit/src/components/Pages/About/styles.js +0 -140
  140. package/build/connectkit/src/components/Pages/About/styles.js.map +0 -1
  141. package/build/connectkit/src/components/Pages/Confirmation/index.js +0 -128
  142. package/build/connectkit/src/components/Pages/Confirmation/index.js.map +0 -1
  143. package/build/connectkit/src/components/Pages/Connectors/index.js +0 -28
  144. package/build/connectkit/src/components/Pages/Connectors/index.js.map +0 -1
  145. package/build/connectkit/src/components/Pages/DownloadApp/index.js +0 -35
  146. package/build/connectkit/src/components/Pages/DownloadApp/index.js.map +0 -1
  147. package/build/connectkit/src/components/Pages/Error/index.js +0 -57
  148. package/build/connectkit/src/components/Pages/Error/index.js.map +0 -1
  149. package/build/connectkit/src/components/Pages/MobileConnectors/index.js +0 -65
  150. package/build/connectkit/src/components/Pages/MobileConnectors/index.js.map +0 -1
  151. package/build/connectkit/src/components/Pages/MobileConnectors/styles.js +0 -64
  152. package/build/connectkit/src/components/Pages/MobileConnectors/styles.js.map +0 -1
  153. package/build/connectkit/src/components/Pages/Onboarding/index.js +0 -34
  154. package/build/connectkit/src/components/Pages/Onboarding/index.js.map +0 -1
  155. package/build/connectkit/src/components/Pages/Onboarding/styles.js +0 -229
  156. package/build/connectkit/src/components/Pages/Onboarding/styles.js.map +0 -1
  157. package/build/connectkit/src/components/Pages/PayWithToken/index.js +0 -157
  158. package/build/connectkit/src/components/Pages/PayWithToken/index.js.map +0 -1
  159. package/build/connectkit/src/components/Pages/SelectAmount/index.js +0 -24
  160. package/build/connectkit/src/components/Pages/SelectAmount/index.js.map +0 -1
  161. package/build/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js +0 -79
  162. package/build/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js.map +0 -1
  163. package/build/connectkit/src/components/Pages/SelectDepositAddressChain/index.js +0 -72
  164. package/build/connectkit/src/components/Pages/SelectDepositAddressChain/index.js.map +0 -1
  165. package/build/connectkit/src/components/Pages/SelectExchange/index.js +0 -41
  166. package/build/connectkit/src/components/Pages/SelectExchange/index.js.map +0 -1
  167. package/build/connectkit/src/components/Pages/SelectExternalAmount/index.js +0 -80
  168. package/build/connectkit/src/components/Pages/SelectExternalAmount/index.js.map +0 -1
  169. package/build/connectkit/src/components/Pages/SelectMethod/index.js +0 -230
  170. package/build/connectkit/src/components/Pages/SelectMethod/index.js.map +0 -1
  171. package/build/connectkit/src/components/Pages/SelectToken/index.js +0 -97
  172. package/build/connectkit/src/components/Pages/SelectToken/index.js.map +0 -1
  173. package/build/connectkit/src/components/Pages/SelectWalletAmount/index.js +0 -66
  174. package/build/connectkit/src/components/Pages/SelectWalletAmount/index.js.map +0 -1
  175. package/build/connectkit/src/components/Pages/SelectWalletChain/index.js +0 -55
  176. package/build/connectkit/src/components/Pages/SelectWalletChain/index.js.map +0 -1
  177. package/build/connectkit/src/components/Pages/SelectZKP/index.js +0 -41
  178. package/build/connectkit/src/components/Pages/SelectZKP/index.js.map +0 -1
  179. package/build/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js +0 -94
  180. package/build/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js.map +0 -1
  181. package/build/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js +0 -92
  182. package/build/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +0 -1
  183. package/build/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js +0 -24
  184. package/build/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +0 -1
  185. package/build/connectkit/src/components/Pages/SwitchNetworks/index.js +0 -45
  186. package/build/connectkit/src/components/Pages/SwitchNetworks/index.js.map +0 -1
  187. package/build/connectkit/src/components/Pages/WaitingDepositAddress/index.js +0 -503
  188. package/build/connectkit/src/components/Pages/WaitingDepositAddress/index.js.map +0 -1
  189. package/build/connectkit/src/components/Pages/WaitingExternal/index.js +0 -89
  190. package/build/connectkit/src/components/Pages/WaitingExternal/index.js.map +0 -1
  191. package/build/connectkit/src/components/Pages/WaitingWallet/index.js +0 -49
  192. package/build/connectkit/src/components/Pages/WaitingWallet/index.js.map +0 -1
  193. package/build/connectkit/src/components/Spinners/CircleSpinner/index.js +0 -104
  194. package/build/connectkit/src/components/Spinners/CircleSpinner/index.js.map +0 -1
  195. package/build/connectkit/src/components/Spinners/CircleSpinner/styles.js +0 -117
  196. package/build/connectkit/src/components/Spinners/CircleSpinner/styles.js.map +0 -1
  197. package/build/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js +0 -29
  198. package/build/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js.map +0 -1
  199. package/build/connectkit/src/components/Spinners/SquircleSpinner/index.js +0 -68
  200. package/build/connectkit/src/components/Spinners/SquircleSpinner/index.js.map +0 -1
  201. package/build/connectkit/src/components/Spinners/SquircleSpinner/styles.js +0 -66
  202. package/build/connectkit/src/components/Spinners/SquircleSpinner/styles.js.map +0 -1
  203. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/index.js +0 -24
  204. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/index.js.map +0 -1
  205. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js +0 -40
  206. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js.map +0 -1
  207. package/build/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js +0 -37
  208. package/build/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js.map +0 -1
  209. package/build/connectkit/src/components/Spinners/styles.js +0 -32
  210. package/build/connectkit/src/components/Spinners/styles.js.map +0 -1
  211. package/build/connectkit/src/constants/defaultTheme.js +0 -6
  212. package/build/connectkit/src/constants/defaultTheme.js.map +0 -1
  213. package/build/connectkit/src/constants/routes.js +0 -32
  214. package/build/connectkit/src/constants/routes.js.map +0 -1
  215. package/build/connectkit/src/defaultConfig.js +0 -63
  216. package/build/connectkit/src/defaultConfig.js.map +0 -1
  217. package/build/connectkit/src/defaultConnectors.js +0 -37
  218. package/build/connectkit/src/defaultConnectors.js.map +0 -1
  219. package/build/connectkit/src/hooks/useChainIsSupported.js +0 -10
  220. package/build/connectkit/src/hooks/useChainIsSupported.js.map +0 -1
  221. package/build/connectkit/src/hooks/useChains.js +0 -10
  222. package/build/connectkit/src/hooks/useChains.js.map +0 -1
  223. package/build/connectkit/src/hooks/useConnect.js +0 -61
  224. package/build/connectkit/src/hooks/useConnect.js.map +0 -1
  225. package/build/connectkit/src/hooks/useConnectCallback.js +0 -21
  226. package/build/connectkit/src/hooks/useConnectCallback.js.map +0 -1
  227. package/build/connectkit/src/hooks/useConnectors.js +0 -9
  228. package/build/connectkit/src/hooks/useConnectors.js.map +0 -1
  229. package/build/connectkit/src/hooks/useDaimoPay.js +0 -107
  230. package/build/connectkit/src/hooks/useDaimoPay.js.map +0 -1
  231. package/build/connectkit/src/hooks/useDaimoPayStatus.js +0 -12
  232. package/build/connectkit/src/hooks/useDaimoPayStatus.js.map +0 -1
  233. package/build/connectkit/src/hooks/useDaimoPayUI.js +0 -15
  234. package/build/connectkit/src/hooks/useDaimoPayUI.js.map +0 -1
  235. package/build/connectkit/src/hooks/useDepositAddressOptions.js +0 -35
  236. package/build/connectkit/src/hooks/useDepositAddressOptions.js.map +0 -1
  237. package/build/connectkit/src/hooks/useEnsFallbackConfig.js +0 -16
  238. package/build/connectkit/src/hooks/useEnsFallbackConfig.js.map +0 -1
  239. package/build/connectkit/src/hooks/useExternalPaymentOptions.js +0 -64
  240. package/build/connectkit/src/hooks/useExternalPaymentOptions.js.map +0 -1
  241. package/build/connectkit/src/hooks/useFitText.js +0 -133
  242. package/build/connectkit/src/hooks/useFitText.js.map +0 -1
  243. package/build/connectkit/src/hooks/useFocusTrap.js +0 -53
  244. package/build/connectkit/src/hooks/useFocusTrap.js.map +0 -1
  245. package/build/connectkit/src/hooks/useIsMobile.js +0 -11
  246. package/build/connectkit/src/hooks/useIsMobile.js.map +0 -1
  247. package/build/connectkit/src/hooks/useIsMounted.js +0 -10
  248. package/build/connectkit/src/hooks/useIsMounted.js.map +0 -1
  249. package/build/connectkit/src/hooks/useLastConnector.js +0 -24
  250. package/build/connectkit/src/hooks/useLastConnector.js.map +0 -1
  251. package/build/connectkit/src/hooks/useLocales.js +0 -60
  252. package/build/connectkit/src/hooks/useLocales.js.map +0 -1
  253. package/build/connectkit/src/hooks/useLockBodyScroll.js +0 -47
  254. package/build/connectkit/src/hooks/useLockBodyScroll.js.map +0 -1
  255. package/build/connectkit/src/hooks/useOrderUsdLimits.js +0 -24
  256. package/build/connectkit/src/hooks/useOrderUsdLimits.js.map +0 -1
  257. package/build/connectkit/src/hooks/usePayContext.js +0 -11
  258. package/build/connectkit/src/hooks/usePayContext.js.map +0 -1
  259. package/build/connectkit/src/hooks/usePaymentState.js +0 -376
  260. package/build/connectkit/src/hooks/usePaymentState.js.map +0 -1
  261. package/build/connectkit/src/hooks/usePrevious.js +0 -13
  262. package/build/connectkit/src/hooks/usePrevious.js.map +0 -1
  263. package/build/connectkit/src/hooks/useSolanaPaymentOptions.js +0 -40
  264. package/build/connectkit/src/hooks/useSolanaPaymentOptions.js.map +0 -1
  265. package/build/connectkit/src/hooks/useTokenOptions.js +0 -152
  266. package/build/connectkit/src/hooks/useTokenOptions.js.map +0 -1
  267. package/build/connectkit/src/hooks/useUntronAvailability.js +0 -32
  268. package/build/connectkit/src/hooks/useUntronAvailability.js.map +0 -1
  269. package/build/connectkit/src/hooks/useWalletPaymentOptions.js +0 -97
  270. package/build/connectkit/src/hooks/useWalletPaymentOptions.js.map +0 -1
  271. package/build/connectkit/src/hooks/useWindowSize.js +0 -23
  272. package/build/connectkit/src/hooks/useWindowSize.js.map +0 -1
  273. package/build/connectkit/src/index.js +0 -14
  274. package/build/connectkit/src/index.js.map +0 -1
  275. package/build/connectkit/src/localizations/index.js +0 -48
  276. package/build/connectkit/src/localizations/index.js.map +0 -1
  277. package/build/connectkit/src/localizations/locales/ar-AE.js +0 -95
  278. package/build/connectkit/src/localizations/locales/ar-AE.js.map +0 -1
  279. package/build/connectkit/src/localizations/locales/ca-AD.js +0 -93
  280. package/build/connectkit/src/localizations/locales/ca-AD.js.map +0 -1
  281. package/build/connectkit/src/localizations/locales/ee-EE.js +0 -101
  282. package/build/connectkit/src/localizations/locales/ee-EE.js.map +0 -1
  283. package/build/connectkit/src/localizations/locales/en-US.js +0 -139
  284. package/build/connectkit/src/localizations/locales/en-US.js.map +0 -1
  285. package/build/connectkit/src/localizations/locales/es-ES.js +0 -131
  286. package/build/connectkit/src/localizations/locales/es-ES.js.map +0 -1
  287. package/build/connectkit/src/localizations/locales/fa-IR.js +0 -93
  288. package/build/connectkit/src/localizations/locales/fa-IR.js.map +0 -1
  289. package/build/connectkit/src/localizations/locales/fr-FR.js +0 -93
  290. package/build/connectkit/src/localizations/locales/fr-FR.js.map +0 -1
  291. package/build/connectkit/src/localizations/locales/ja-JP.js +0 -93
  292. package/build/connectkit/src/localizations/locales/ja-JP.js.map +0 -1
  293. package/build/connectkit/src/localizations/locales/pt-BR.js +0 -101
  294. package/build/connectkit/src/localizations/locales/pt-BR.js.map +0 -1
  295. package/build/connectkit/src/localizations/locales/ru-RU.js +0 -97
  296. package/build/connectkit/src/localizations/locales/ru-RU.js.map +0 -1
  297. package/build/connectkit/src/localizations/locales/tr-TR.js +0 -101
  298. package/build/connectkit/src/localizations/locales/tr-TR.js.map +0 -1
  299. package/build/connectkit/src/localizations/locales/vi-VN.js +0 -101
  300. package/build/connectkit/src/localizations/locales/vi-VN.js.map +0 -1
  301. package/build/connectkit/src/localizations/locales/zh-CN.js +0 -93
  302. package/build/connectkit/src/localizations/locales/zh-CN.js.map +0 -1
  303. package/build/connectkit/src/payment/paymentEffects.js +0 -269
  304. package/build/connectkit/src/payment/paymentEffects.js.map +0 -1
  305. package/build/connectkit/src/payment/paymentFsm.js +0 -194
  306. package/build/connectkit/src/payment/paymentFsm.js.map +0 -1
  307. package/build/connectkit/src/payment/paymentStore.js +0 -18
  308. package/build/connectkit/src/payment/paymentStore.js.map +0 -1
  309. package/build/connectkit/src/payment/paymentUtils.js +0 -10
  310. package/build/connectkit/src/payment/paymentUtils.js.map +0 -1
  311. package/build/connectkit/src/provider/DaimoPayProvider.js +0 -293
  312. package/build/connectkit/src/provider/DaimoPayProvider.js.map +0 -1
  313. package/build/connectkit/src/provider/PayContext.js +0 -6
  314. package/build/connectkit/src/provider/PayContext.js.map +0 -1
  315. package/build/connectkit/src/provider/PaymentProvider.js +0 -29
  316. package/build/connectkit/src/provider/PaymentProvider.js.map +0 -1
  317. package/build/connectkit/src/provider/SolanaContextProvider.js +0 -14
  318. package/build/connectkit/src/provider/SolanaContextProvider.js.map +0 -1
  319. package/build/connectkit/src/provider/Web3ContextProvider.js +0 -36
  320. package/build/connectkit/src/provider/Web3ContextProvider.js.map +0 -1
  321. package/build/connectkit/src/stateStore.js +0 -36
  322. package/build/connectkit/src/stateStore.js.map +0 -1
  323. package/build/connectkit/src/styles/defaultTheme.js +0 -80
  324. package/build/connectkit/src/styles/defaultTheme.js.map +0 -1
  325. package/build/connectkit/src/styles/index.js +0 -313
  326. package/build/connectkit/src/styles/index.js.map +0 -1
  327. package/build/connectkit/src/styles/styled/index.js +0 -6
  328. package/build/connectkit/src/styles/styled/index.js.map +0 -1
  329. package/build/connectkit/src/styles/themes/base.js +0 -141
  330. package/build/connectkit/src/styles/themes/base.js.map +0 -1
  331. package/build/connectkit/src/styles/themes/index.js +0 -13
  332. package/build/connectkit/src/styles/themes/index.js.map +0 -1
  333. package/build/connectkit/src/styles/themes/midnight.js +0 -76
  334. package/build/connectkit/src/styles/themes/midnight.js.map +0 -1
  335. package/build/connectkit/src/styles/themes/minimal.js +0 -96
  336. package/build/connectkit/src/styles/themes/minimal.js.map +0 -1
  337. package/build/connectkit/src/styles/themes/nouns.js +0 -81
  338. package/build/connectkit/src/styles/themes/nouns.js.map +0 -1
  339. package/build/connectkit/src/styles/themes/retro.js +0 -106
  340. package/build/connectkit/src/styles/themes/retro.js.map +0 -1
  341. package/build/connectkit/src/styles/themes/rounded.js +0 -106
  342. package/build/connectkit/src/styles/themes/rounded.js.map +0 -1
  343. package/build/connectkit/src/styles/themes/soft.js +0 -71
  344. package/build/connectkit/src/styles/themes/soft.js.map +0 -1
  345. package/build/connectkit/src/styles/themes/web95.js +0 -132
  346. package/build/connectkit/src/styles/themes/web95.js.map +0 -1
  347. package/build/connectkit/src/utils/exports.js +0 -6
  348. package/build/connectkit/src/utils/exports.js.map +0 -1
  349. package/build/connectkit/src/utils/format.js +0 -45
  350. package/build/connectkit/src/utils/format.js.map +0 -1
  351. package/build/connectkit/src/utils/index.js +0 -42
  352. package/build/connectkit/src/utils/index.js.map +0 -1
  353. package/build/connectkit/src/utils/p3.js +0 -15
  354. package/build/connectkit/src/utils/p3.js.map +0 -1
  355. package/build/connectkit/src/utils/platform.js +0 -11
  356. package/build/connectkit/src/utils/platform.js.map +0 -1
  357. package/build/connectkit/src/utils/polling.js +0 -35
  358. package/build/connectkit/src/utils/polling.js.map +0 -1
  359. package/build/connectkit/src/utils/supportUrl.js +0 -16
  360. package/build/connectkit/src/utils/supportUrl.js.map +0 -1
  361. package/build/connectkit/src/utils/trpc.js +0 -19
  362. package/build/connectkit/src/utils/trpc.js.map +0 -1
  363. package/build/connectkit/src/utils/validateInput.js +0 -16
  364. package/build/connectkit/src/utils/validateInput.js.map +0 -1
  365. package/build/connectkit/src/wallets/index.js +0 -21
  366. package/build/connectkit/src/wallets/index.js.map +0 -1
  367. package/build/connectkit/src/wallets/useWallets.js +0 -207
  368. package/build/connectkit/src/wallets/useWallets.js.map +0 -1
  369. package/build/connectkit/src/wallets/walletConfigs.js +0 -277
  370. package/build/connectkit/src/wallets/walletConfigs.js.map +0 -1
  371. package/build/connectkit/src/world-mini-app/WorldPayButton.js +0 -148
  372. package/build/connectkit/src/world-mini-app/WorldPayButton.js.map +0 -1
  373. package/build/connectkit/src/world-mini-app/promptWorldPayment.js +0 -59
  374. package/build/connectkit/src/world-mini-app/promptWorldPayment.js.map +0 -1
  375. package/build/connectkit/src/world.js +0 -2
  376. package/build/connectkit/src/world.js.map +0 -1
  377. package/build/pay-common/src/chain.js +0 -9
  378. package/build/pay-common/src/chain.js.map +0 -1
  379. package/build/src/assets/coins.js +0 -43
  380. package/build/src/assets/coins.js.map +0 -1
  381. package/build/src/components/Common/CopyToClipboard/index.js +0 -33
  382. package/build/src/components/Common/CopyToClipboard/index.js.map +0 -1
  383. package/build/src/components/Pages/DownloadApp/index.js +0 -35
  384. package/build/src/components/Pages/DownloadApp/index.js.map +0 -1
  385. package/build/types-20835014.d.ts +0 -68
@@ -1,503 +0,0 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { isHydrated, getChainName, DepositAddressPaymentOptions, ethereumUSDC, polygonUSDC, baseUSDC, arbitrumUSDC, optimismUSDC, getAddressContraction } from '@daimo/pay-common';
3
- import { useState, useEffect, useMemo } from 'react';
4
- import { keyframes } from 'styled-components';
5
- import { AlertIcon, WarningIcon } from '../../../assets/icons.js';
6
- import { useDaimoPay } from '../../../hooks/useDaimoPay.js';
7
- import useIsMobile from '../../../hooks/useIsMobile.js';
8
- import useLocales from '../../../hooks/useLocales.js';
9
- import { usePayContext } from '../../../hooks/usePayContext.js';
10
- import styled from '../../../styles/styled/index.js';
11
- import Button from '../../Common/Button/index.js';
12
- import CircleTimer from '../../Common/CircleTimer.js';
13
- import CopyToClipboardIcon from '../../Common/CopyToClipboard/CopyToClipboardIcon.js';
14
- import CustomQRCode from '../../Common/CustomQRCode/index.js';
15
- import { ModalBody, PageContent, ModalContent, ModalH1 } from '../../Common/Modal/styles.js';
16
- import SelectAnotherMethodButton from '../../Common/SelectAnotherMethodButton/index.js';
17
- import TokenChainLogo from '../../Common/TokenChainLogo/index.js';
18
-
19
- const CenterContainer = styled.div`
20
- display: flex;
21
- flex-direction: column;
22
- align-items: center;
23
- padding: 16px;
24
- max-width: 100%;
25
- `;
26
- function WaitingDepositAddress() {
27
- const context = usePayContext();
28
- const { triggerResize, paymentState } = context;
29
- const { payWithDepositAddress, selectedDepositAddressOption } = paymentState;
30
- const { order } = useDaimoPay();
31
- const tronUnderpay = order != null && isHydrated(order) && order.sourceTokenAmount != null && order.sourceTokenAmount.token.chainId === 10 && order.sourceTokenAmount.token.symbol.toUpperCase() === "USDT0" && Number(order.sourceTokenAmount.usd) < order.usdValue;
32
- const [depAddr, setDepAddr] = useState();
33
- const [failed, setFailed] = useState(false);
34
- const generateDepositAddress = () => {
35
- if (selectedDepositAddressOption == null) {
36
- if (order == null || !isHydrated(order)) return;
37
- if (order.sourceTokenAmount == null) return;
38
- const taPaid = order.sourceTokenAmount;
39
- const usdPaid = taPaid.usd;
40
- const usdToPay = Math.max(order.usdValue - usdPaid, 0.01);
41
- const dispDecimals = taPaid.token.displayDecimals;
42
- const unitsToPay = (usdToPay / taPaid.token.usd).toFixed(dispDecimals);
43
- const unitsPaid = (Number(taPaid.amount) / 10 ** taPaid.token.decimals).toFixed(dispDecimals);
44
- let expirationS = (order.createdAt ?? 0) + 59.5 * 60;
45
- if (order.expirationTs != null && Number(order.expirationTs) < expirationS) {
46
- expirationS = Number(order.expirationTs);
47
- }
48
- setDepAddr({
49
- address: order.intentAddr,
50
- amount: unitsToPay,
51
- underpayment: { unitsPaid, coin: taPaid.token.symbol },
52
- coins: `${taPaid.token.symbol} on ${getChainName(taPaid.token.chainId)}`,
53
- expirationS,
54
- uri: order.intentAddr,
55
- displayToken: taPaid.token,
56
- logoURI: ""
57
- // Not needed for underpaid orders
58
- });
59
- } else {
60
- const displayToken = getDisplayToken(selectedDepositAddressOption);
61
- const logoURI = selectedDepositAddressOption.logoURI;
62
- setDepAddr({
63
- displayToken,
64
- logoURI
65
- });
66
- payWithDepositAddress(selectedDepositAddressOption.id).then((details) => {
67
- if (details) {
68
- setDepAddr({
69
- address: details.address,
70
- amount: details.amount,
71
- coins: details.suffix,
72
- expirationS: details.expirationS,
73
- uri: details.uri,
74
- displayToken,
75
- logoURI
76
- });
77
- } else {
78
- setFailed(true);
79
- }
80
- });
81
- }
82
- };
83
- useEffect(generateDepositAddress, [selectedDepositAddressOption]);
84
- useEffect(triggerResize, [depAddr, failed]);
85
- return /* @__PURE__ */ jsx(PageContent, { children: tronUnderpay ? /* @__PURE__ */ jsx(TronUnderpayContent, { orderId: order?.id?.toString() }) : failed ? selectedDepositAddressOption && /* @__PURE__ */ jsx(DepositFailed, { name: selectedDepositAddressOption.id }) : depAddr && /* @__PURE__ */ jsx(
86
- DepositAddressInfo,
87
- {
88
- depAddr,
89
- refresh: generateDepositAddress,
90
- triggerResize
91
- }
92
- ) });
93
- }
94
- function TronUnderpayContent({ orderId }) {
95
- const locales = useLocales();
96
- return /* @__PURE__ */ jsx(
97
- ModalContent,
98
- {
99
- style: {
100
- display: "flex",
101
- justifyContent: "center",
102
- alignItems: "center",
103
- paddingBottom: 0,
104
- position: "relative"
105
- },
106
- children: /* @__PURE__ */ jsxs(CenterContainer, { children: [
107
- /* @__PURE__ */ jsx(FailIcon, {}),
108
- /* @__PURE__ */ jsx(ModalH1, { style: { textAlign: "center", marginTop: 16 }, children: "USDT Tron Payment Was Too Low" }),
109
- /* @__PURE__ */ jsx("div", { style: { height: 16 } }),
110
- /* @__PURE__ */ jsxs(ModalBody, { style: { textAlign: "center" }, children: [
111
- "Your funds are safe.",
112
- /* @__PURE__ */ jsx("br", {}),
113
- "Email support@daimo.com for a refund."
114
- ] }),
115
- /* @__PURE__ */ jsx(
116
- Button,
117
- {
118
- onClick: () => window.open(
119
- `mailto:support@daimo.com?subject=Underpaid%20USDT%20Tron%20payment%20for%20order%20${orderId}`,
120
- "_blank"
121
- ),
122
- style: { marginTop: 16, width: 200 },
123
- children: locales.contactSupport
124
- }
125
- )
126
- ] })
127
- }
128
- );
129
- }
130
- function DepositAddressInfo({
131
- depAddr,
132
- refresh,
133
- triggerResize
134
- }) {
135
- const { isMobile } = useIsMobile();
136
- const locales = useLocales();
137
- const [remainingS, totalS] = useCountdown(depAddr?.expirationS);
138
- const isExpired = depAddr?.expirationS != null && remainingS === 0;
139
- const [showQR, setShowQR] = useState(!isMobile);
140
- useEffect(triggerResize, [isExpired, showQR]);
141
- const logoOffset = isMobile ? 4 : 0;
142
- const logoElement = depAddr.displayToken ? /* @__PURE__ */ jsx(
143
- TokenChainLogo,
144
- {
145
- token: depAddr.displayToken,
146
- size: 64,
147
- offset: logoOffset
148
- }
149
- ) : /* @__PURE__ */ jsx("img", { src: depAddr.logoURI, width: "64px", height: "64px" });
150
- return /* @__PURE__ */ jsxs(ModalContent, { children: [
151
- isExpired ? /* @__PURE__ */ jsx(LogoRow, { children: /* @__PURE__ */ jsx(Button, { onClick: refresh, style: { width: 128 }, children: locales.refresh }) }) : showQR ? /* @__PURE__ */ jsx(QRWrap, { children: /* @__PURE__ */ jsx(
152
- CustomQRCode,
153
- {
154
- value: depAddr?.uri,
155
- contentPadding: 24,
156
- size: 200,
157
- image: logoElement
158
- }
159
- ) }) : /* @__PURE__ */ jsx(LogoRow, { children: /* @__PURE__ */ jsx(LogoWrap, { children: logoElement }) }),
160
- /* @__PURE__ */ jsx("div", { style: { height: 8 } }),
161
- isMobile && /* @__PURE__ */ jsx(ShowHideQRRow, { showQR, setShowQR }),
162
- /* @__PURE__ */ jsx(CopyableInfo, { depAddr, remainingS, totalS })
163
- ] });
164
- }
165
- function getDisplayToken(meta) {
166
- switch (meta.id) {
167
- case DepositAddressPaymentOptions.OP_MAINNET:
168
- return optimismUSDC;
169
- case DepositAddressPaymentOptions.ARBITRUM:
170
- return arbitrumUSDC;
171
- case DepositAddressPaymentOptions.BASE:
172
- return baseUSDC;
173
- case DepositAddressPaymentOptions.POLYGON:
174
- return polygonUSDC;
175
- case DepositAddressPaymentOptions.ETH_L1:
176
- return ethereumUSDC;
177
- default:
178
- return null;
179
- }
180
- }
181
- function ShowHideQRRow({
182
- showQR,
183
- setShowQR
184
- }) {
185
- const toggleQR = () => setShowQR(!showQR);
186
- const locales = useLocales();
187
- return /* @__PURE__ */ jsx(ShowQRWrap, { children: /* @__PURE__ */ jsxs(CopyRow, { onClick: toggleQR, children: [
188
- /* @__PURE__ */ jsx(SmallText, { children: showQR ? locales.hideQR : locales.showQR }),
189
- /* @__PURE__ */ jsx("div", { style: { width: 8 } }),
190
- /* @__PURE__ */ jsx(ShowQRIcon, { children: /* @__PURE__ */ jsxs(
191
- "svg",
192
- {
193
- xmlns: "http://www.w3.org/2000/svg",
194
- fill: "none",
195
- viewBox: "0 0 24 24",
196
- strokeWidth: 1.5,
197
- stroke: "#666",
198
- className: "size-6",
199
- width: 20,
200
- height: 20,
201
- children: [
202
- /* @__PURE__ */ jsx(
203
- "path",
204
- {
205
- strokeLinecap: "round",
206
- strokeLinejoin: "round",
207
- d: "M3.75 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 3.75 9.375v-4.5ZM3.75 14.625c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5a1.125 1.125 0 0 1-1.125-1.125v-4.5ZM13.5 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 13.5 9.375v-4.5Z"
208
- }
209
- ),
210
- /* @__PURE__ */ jsx(
211
- "path",
212
- {
213
- strokeLinecap: "round",
214
- strokeLinejoin: "round",
215
- d: "M6.75 6.75h.75v.75h-.75v-.75ZM6.75 16.5h.75v.75h-.75v-.75ZM16.5 6.75h.75v.75h-.75v-.75ZM13.5 13.5h.75v.75h-.75v-.75ZM13.5 19.5h.75v.75h-.75v-.75ZM19.5 13.5h.75v.75h-.75v-.75ZM19.5 19.5h.75v.75h-.75v-.75ZM16.5 16.5h.75v.75h-.75v-.75Z"
216
- }
217
- )
218
- ]
219
- }
220
- ) })
221
- ] }) });
222
- }
223
- const ShowQRWrap = styled.div`
224
- display: flex;
225
- justify-content: center;
226
- color: var(--ck-primary-button-color);
227
- `;
228
- const ShowQRIcon = styled.div`
229
- width: 20px;
230
- `;
231
- const LogoWrap = styled.div`
232
- position: relative;
233
- width: 64px;
234
- height: 64px;
235
- `;
236
- const LogoRow = styled.div`
237
- padding: 32px 0;
238
- height: 128px;
239
- display: flex;
240
- align-items: center;
241
- gap: 8px;
242
- justify-content: center;
243
- `;
244
- const QRWrap = styled.div`
245
- margin: 0 auto;
246
- width: 280px;
247
- `;
248
- function CopyableInfo({
249
- depAddr,
250
- remainingS,
251
- totalS
252
- }) {
253
- const underpayment = depAddr?.underpayment;
254
- const isExpired = depAddr?.expirationS != null && remainingS === 0;
255
- const locales = useLocales();
256
- return /* @__PURE__ */ jsxs(CopyableInfoWrapper, { children: [
257
- underpayment && /* @__PURE__ */ jsx(UnderpaymentInfo, { underpayment }),
258
- /* @__PURE__ */ jsx(
259
- CopyRowOrThrobber,
260
- {
261
- title: locales.sendExactly,
262
- value: depAddr?.amount,
263
- smallText: depAddr?.coins,
264
- disabled: isExpired
265
- }
266
- ),
267
- /* @__PURE__ */ jsx(
268
- CopyRowOrThrobber,
269
- {
270
- title: locales.receivingAddress,
271
- value: depAddr?.address,
272
- valueText: depAddr?.address && getAddressContraction(depAddr.address),
273
- disabled: isExpired
274
- }
275
- ),
276
- /* @__PURE__ */ jsx(CountdownWrap, { children: /* @__PURE__ */ jsx(CountdownTimer, { remainingS, totalS }) })
277
- ] });
278
- }
279
- function UnderpaymentInfo({ underpayment }) {
280
- return /* @__PURE__ */ jsxs(UnderpaymentWrapper, { children: [
281
- /* @__PURE__ */ jsxs(UnderpaymentHeader, { children: [
282
- /* @__PURE__ */ jsx(WarningIcon, {}),
283
- /* @__PURE__ */ jsxs("span", { children: [
284
- "Received ",
285
- underpayment.unitsPaid,
286
- " ",
287
- underpayment.coin
288
- ] })
289
- ] }),
290
- /* @__PURE__ */ jsx(SmallText, { children: "Finish by sending the extra amount below." })
291
- ] });
292
- }
293
- const UnderpaymentWrapper = styled.div`
294
- background: var(--ck-body-background-tertiary);
295
- border-radius: 8px;
296
- padding: 16px;
297
- margin: 0 4px 16px 4px;
298
- margin-bottom: 16px;
299
- `;
300
- const UnderpaymentHeader = styled.div`
301
- font-weight: 500;
302
- display: flex;
303
- justify-content: center;
304
- align-items: flex-end;
305
- gap: 8px;
306
- margin-bottom: 8px;
307
- `;
308
- const CopyableInfoWrapper = styled.div`
309
- display: flex;
310
- flex-direction: column;
311
- justify-content: stretch;
312
- gap: 0;
313
- `;
314
- const CountdownWrap = styled.div`
315
- margin-top: 24px;
316
- height: 16px;
317
- `;
318
- const FailIcon = styled(AlertIcon)`
319
- color: var(--ck-body-color-alert);
320
- width: 32px;
321
- height: 32px;
322
- margin-top: auto;
323
- margin-bottom: 16px;
324
- `;
325
- function useCountdown(expirationS) {
326
- const initMs = useMemo(() => Date.now(), [expirationS]);
327
- const [ms, setMs] = useState(initMs);
328
- useEffect(() => {
329
- const interval = setInterval(() => setMs(Date.now()), 1e3);
330
- return () => clearInterval(interval);
331
- }, []);
332
- if (expirationS == null) return [0, 0];
333
- const remainingS = Math.max(0, expirationS - ms / 1e3 | 0);
334
- const totalS = Math.max(0, expirationS - initMs / 1e3 | 0);
335
- return [remainingS, totalS];
336
- }
337
- function CountdownTimer({
338
- remainingS,
339
- totalS
340
- }) {
341
- const locales = useLocales();
342
- if (totalS == 0 || remainingS > 3600) {
343
- return /* @__PURE__ */ jsx(SmallText, { children: locales.sendOnlyOnce });
344
- }
345
- const isExpired = remainingS === 0;
346
- return /* @__PURE__ */ jsx(ModalBody, { children: /* @__PURE__ */ jsxs(CountdownRow, { children: [
347
- /* @__PURE__ */ jsx(
348
- CircleTimer,
349
- {
350
- total: totalS,
351
- currentTime: remainingS,
352
- size: 18,
353
- stroke: 3
354
- }
355
- ),
356
- /* @__PURE__ */ jsx("strong", { children: isExpired ? "Expired" : formatTime(remainingS) })
357
- ] }) });
358
- }
359
- const CountdownRow = styled.div`
360
- display: flex;
361
- align-items: center;
362
- justify-content: center;
363
- gap: 8px;
364
- font-variant-numeric: tabular-nums;
365
- `;
366
- const formatTime = (sec) => {
367
- const m = `${Math.floor(sec / 60)}`.padStart(2, "0");
368
- const s = `${sec % 60}`.padStart(2, "0");
369
- return `${m}:${s}`;
370
- };
371
- function DepositFailed({ name }) {
372
- return /* @__PURE__ */ jsxs(ModalContent, { style: { marginLeft: 24, marginRight: 24 }, children: [
373
- /* @__PURE__ */ jsxs(ModalH1, { children: [
374
- name,
375
- " unavailable"
376
- ] }),
377
- /* @__PURE__ */ jsxs(ModalBody, { children: [
378
- "We're unable to process ",
379
- name,
380
- " payments at this time. Please select another payment method."
381
- ] }),
382
- /* @__PURE__ */ jsx(SelectAnotherMethodButton, {})
383
- ] });
384
- }
385
- const CopyRow = styled.button`
386
- display: block;
387
- height: 64px;
388
- border-radius: 8px;
389
- padding: 8px 16px;
390
-
391
- cursor: pointer;
392
- background-color: var(--ck-body-background);
393
- background-color: var(--ck-body-background);
394
-
395
- display: flex;
396
- align-items: center;
397
- justify-content: space-between;
398
-
399
- transition: all 100ms ease;
400
-
401
- &:hover {
402
- opacity: 0.8;
403
- }
404
-
405
- &:active {
406
- transform: scale(0.98);
407
- background-color: var(--ck-body-background-secondary);
408
- }
409
-
410
- &:disabled {
411
- cursor: default;
412
- opacity: 0.5;
413
- transform: scale(0.98);
414
- background-color: var(--ck-body-background-secondary);
415
- }
416
- `;
417
- const LabelRow = styled.div`
418
- margin-bottom: 4px;
419
- `;
420
- const MainRow = styled.div`
421
- display: flex;
422
- align-items: center;
423
- justify-content: space-between;
424
- `;
425
- const ValueContainer = styled.div`
426
- display: flex;
427
- align-items: center;
428
- gap: 8px;
429
- `;
430
- const SmallText = styled.span`
431
- font-size: 14px;
432
- color: var(--ck-primary-button-color);
433
- `;
434
- const ValueText = styled.span`
435
- font-size: 14px;
436
- font-weight: 600;
437
- color: var(--ck-primary-button-color);
438
- `;
439
- const LabelText = styled(ModalBody)`
440
- margin: 0;
441
- text-align: left;
442
- `;
443
- const pulse = keyframes`
444
- 0% {
445
- opacity: 0.6;
446
- }
447
- 50% {
448
- opacity: 1;
449
- }
450
- 100% {
451
- opacity: 0.6;
452
- }
453
- `;
454
- const Skeleton = styled.div`
455
- width: 80px;
456
- height: 16px;
457
- border-radius: 8px;
458
- background-color: rgba(0, 0, 0, 0.1);
459
- animation: ${pulse} 1.5s ease-in-out infinite;
460
- `;
461
- function CopyRowOrThrobber({
462
- title,
463
- value,
464
- valueText,
465
- smallText,
466
- disabled
467
- }) {
468
- const [copied, setCopied] = useState(false);
469
- const handleCopy = () => {
470
- if (disabled) return;
471
- if (!value) return;
472
- const str = value.trim();
473
- if (navigator.clipboard) {
474
- navigator.clipboard.writeText(str);
475
- }
476
- setCopied(true);
477
- setTimeout(() => setCopied(false), 1e3);
478
- };
479
- if (!value) {
480
- return /* @__PURE__ */ jsxs(CopyRow, { children: [
481
- /* @__PURE__ */ jsx(LabelRow, { children: /* @__PURE__ */ jsx(LabelText, { children: title }) }),
482
- /* @__PURE__ */ jsx(MainRow, { children: /* @__PURE__ */ jsx(Skeleton, {}) })
483
- ] });
484
- }
485
- const displayValue = valueText || value;
486
- return /* @__PURE__ */ jsxs(CopyRow, { as: "button", onClick: handleCopy, disabled, children: [
487
- /* @__PURE__ */ jsxs("div", { children: [
488
- /* @__PURE__ */ jsx(LabelRow, { children: /* @__PURE__ */ jsx(LabelText, { children: title }) }),
489
- /* @__PURE__ */ jsx(MainRow, { children: /* @__PURE__ */ jsxs(ValueContainer, { children: [
490
- /* @__PURE__ */ jsx(ValueText, { children: displayValue }),
491
- smallText && /* @__PURE__ */ jsx(SmallText, { children: smallText })
492
- ] }) })
493
- ] }),
494
- /* @__PURE__ */ jsx(CopyIconWrap, { children: /* @__PURE__ */ jsx(CopyToClipboardIcon, { copied, dark: true }) })
495
- ] });
496
- }
497
- const CopyIconWrap = styled.div`
498
- --color: var(--ck-copytoclipboard-stroke);
499
- --bg: var(--ck-body-background);
500
- `;
501
-
502
- export { WaitingDepositAddress as default };
503
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/components/Pages/WaitingDepositAddress/index.tsx"],"sourcesContent":["import {\n arbitrumUSDC,\n baseUSDC,\n DepositAddressPaymentOptionMetadata,\n DepositAddressPaymentOptions,\n ethereumUSDC,\n getAddressContraction,\n getChainName,\n isHydrated,\n optimismUSDC,\n polygonUSDC,\n type Token,\n} from \"@daimo/pay-common\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport { keyframes } from \"styled-components\";\nimport { AlertIcon, WarningIcon } from \"../../../assets/icons\";\nimport { useDaimoPay } from \"../../../hooks/useDaimoPay\";\nimport useIsMobile from \"../../../hooks/useIsMobile\";\nimport useLocales from \"../../../hooks/useLocales\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\nimport styled from \"../../../styles/styled\";\nimport Button from \"../../Common/Button\";\nimport CircleTimer from \"../../Common/CircleTimer\";\nimport CopyToClipboardIcon from \"../../Common/CopyToClipboard/CopyToClipboardIcon\";\nimport CustomQRCode from \"../../Common/CustomQRCode\";\nimport {\n ModalBody,\n ModalContent,\n ModalH1,\n PageContent,\n} from \"../../Common/Modal/styles\";\nimport SelectAnotherMethodButton from \"../../Common/SelectAnotherMethodButton\";\nimport TokenChainLogo from \"../../Common/TokenChainLogo\";\n\n// Centered container for icon + text in Tron underpay screen\nconst CenterContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 16px;\n max-width: 100%;\n`;\n\ntype DepositAddr = {\n displayToken: Token | null;\n logoURI: string;\n expirationS?: number;\n uri?: string;\n coins?: string;\n amount?: string;\n address?: string;\n underpayment?: Underpayment;\n};\n\ntype Underpayment = {\n unitsPaid: string;\n coin: string;\n};\n\nexport default function WaitingDepositAddress() {\n const context = usePayContext();\n const { triggerResize, paymentState } = context;\n const { payWithDepositAddress, selectedDepositAddressOption } = paymentState;\n const { order } = useDaimoPay();\n\n // Detect Optimism USDT0 under-payment: the order has received some funds\n // but less than required.\n const tronUnderpay =\n order != null &&\n isHydrated(order) &&\n order.sourceTokenAmount != null &&\n order.sourceTokenAmount.token.chainId === 10 &&\n order.sourceTokenAmount.token.symbol.toUpperCase() === \"USDT0\" &&\n Number(order.sourceTokenAmount.usd) < order.usdValue;\n\n const [depAddr, setDepAddr] = useState<DepositAddr>();\n const [failed, setFailed] = useState(false);\n\n // If we selected a deposit address option, generate the address...\n const generateDepositAddress = () => {\n if (selectedDepositAddressOption == null) {\n if (order == null || !isHydrated(order)) return;\n if (order.sourceTokenAmount == null) return;\n\n // Pay underpaid order\n const taPaid = order.sourceTokenAmount;\n const usdPaid = taPaid.usd; // TODO: get usdPaid directly from the order\n const usdToPay = Math.max(order.usdValue - usdPaid, 0.01);\n const dispDecimals = taPaid.token.displayDecimals;\n const unitsToPay = (usdToPay / taPaid.token.usd).toFixed(dispDecimals);\n const unitsPaid = (\n Number(taPaid.amount) /\n 10 ** taPaid.token.decimals\n ).toFixed(dispDecimals);\n\n // (Removed duplicate tronUnderpay calculation now handled at top-level)\n // Hack to always show a <= 60 minute countdown\n let expirationS = (order.createdAt ?? 0) + 59.5 * 60;\n if (\n order.expirationTs != null &&\n Number(order.expirationTs) < expirationS\n ) {\n expirationS = Number(order.expirationTs);\n }\n\n setDepAddr({\n address: order.intentAddr,\n amount: unitsToPay,\n underpayment: { unitsPaid, coin: taPaid.token.symbol },\n coins: `${taPaid.token.symbol} on ${getChainName(taPaid.token.chainId)}`,\n expirationS: expirationS,\n uri: order.intentAddr,\n displayToken: taPaid.token,\n logoURI: \"\", // Not needed for underpaid orders\n });\n } else {\n const displayToken = getDisplayToken(selectedDepositAddressOption);\n const logoURI = selectedDepositAddressOption.logoURI;\n setDepAddr({\n displayToken,\n logoURI,\n });\n payWithDepositAddress(selectedDepositAddressOption.id).then((details) => {\n if (details) {\n setDepAddr({\n address: details.address,\n amount: details.amount,\n coins: details.suffix,\n expirationS: details.expirationS,\n uri: details.uri,\n displayToken,\n logoURI,\n });\n } else {\n setFailed(true);\n }\n });\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(generateDepositAddress, [selectedDepositAddressOption]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(triggerResize, [depAddr, failed]);\n\n return (\n <PageContent>\n {tronUnderpay ? (\n <TronUnderpayContent orderId={order?.id?.toString()} />\n ) : failed ? (\n selectedDepositAddressOption && (\n <DepositFailed name={selectedDepositAddressOption.id} />\n )\n ) : (\n depAddr && (\n <DepositAddressInfo\n depAddr={depAddr}\n refresh={generateDepositAddress}\n triggerResize={triggerResize}\n />\n )\n )}\n </PageContent>\n );\n}\n\nfunction TronUnderpayContent({ orderId }: { orderId?: string }) {\n const locales = useLocales();\n return (\n <ModalContent\n style={{\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n paddingBottom: 0,\n position: \"relative\",\n }}\n >\n <CenterContainer>\n <FailIcon />\n <ModalH1 style={{ textAlign: \"center\", marginTop: 16 }}>\n USDT Tron Payment Was Too Low\n </ModalH1>\n <div style={{ height: 16 }} />\n <ModalBody style={{ textAlign: \"center\" }}>\n Your funds are safe.\n <br />\n Email support@daimo.com for a refund.\n </ModalBody>\n <Button\n onClick={() =>\n window.open(\n `mailto:support@daimo.com?subject=Underpaid%20USDT%20Tron%20payment%20for%20order%20${orderId}`,\n \"_blank\",\n )\n }\n style={{ marginTop: 16, width: 200 }}\n >\n {locales.contactSupport}\n </Button>\n </CenterContainer>\n </ModalContent>\n );\n}\n\nfunction DepositAddressInfo({\n depAddr,\n refresh,\n triggerResize,\n}: {\n depAddr: DepositAddr;\n refresh: () => void;\n triggerResize: () => void;\n}) {\n const { isMobile } = useIsMobile();\n const locales = useLocales();\n const [remainingS, totalS] = useCountdown(depAddr?.expirationS);\n const isExpired = depAddr?.expirationS != null && remainingS === 0;\n const [showQR, setShowQR] = useState(!isMobile);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(triggerResize, [isExpired, showQR]);\n\n const logoOffset = isMobile ? 4 : 0;\n const logoElement = depAddr.displayToken ? (\n <TokenChainLogo\n token={depAddr.displayToken}\n size={64}\n offset={logoOffset}\n />\n ) : (\n <img src={depAddr.logoURI} width=\"64px\" height=\"64px\" />\n );\n\n return (\n <ModalContent>\n {isExpired ? (\n <LogoRow>\n <Button onClick={refresh} style={{ width: 128 }}>\n {locales.refresh}\n </Button>\n </LogoRow>\n ) : showQR ? (\n <QRWrap>\n <CustomQRCode\n value={depAddr?.uri}\n contentPadding={24}\n size={200}\n image={logoElement}\n />\n </QRWrap>\n ) : (\n <LogoRow>\n <LogoWrap>{logoElement}</LogoWrap>\n </LogoRow>\n )}\n <div style={{ height: 8 }} />\n {isMobile && <ShowHideQRRow showQR={showQR} setShowQR={setShowQR} />}\n <CopyableInfo depAddr={depAddr} remainingS={remainingS} totalS={totalS} />\n </ModalContent>\n );\n}\n\nfunction getDisplayToken(meta: DepositAddressPaymentOptionMetadata) {\n switch (meta.id) {\n case DepositAddressPaymentOptions.OP_MAINNET:\n return optimismUSDC;\n case DepositAddressPaymentOptions.ARBITRUM:\n return arbitrumUSDC;\n case DepositAddressPaymentOptions.BASE:\n return baseUSDC;\n case DepositAddressPaymentOptions.POLYGON:\n return polygonUSDC;\n case DepositAddressPaymentOptions.ETH_L1:\n return ethereumUSDC;\n default:\n return null;\n }\n}\n\nfunction ShowHideQRRow({\n showQR,\n setShowQR,\n}: {\n showQR: boolean;\n setShowQR: (showQR: boolean) => void;\n}) {\n const toggleQR = () => setShowQR(!showQR);\n const locales = useLocales();\n\n return (\n <ShowQRWrap>\n <CopyRow onClick={toggleQR}>\n <SmallText>{showQR ? locales.hideQR : locales.showQR}</SmallText>\n <div style={{ width: 8 }} />\n <ShowQRIcon>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n strokeWidth={1.5}\n stroke=\"#666\"\n className=\"size-6\"\n width={20}\n height={20}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M3.75 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 3.75 9.375v-4.5ZM3.75 14.625c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5a1.125 1.125 0 0 1-1.125-1.125v-4.5ZM13.5 4.875c0-.621.504-1.125 1.125-1.125h4.5c.621 0 1.125.504 1.125 1.125v4.5c0 .621-.504 1.125-1.125 1.125h-4.5A1.125 1.125 0 0 1 13.5 9.375v-4.5Z\"\n />\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M6.75 6.75h.75v.75h-.75v-.75ZM6.75 16.5h.75v.75h-.75v-.75ZM16.5 6.75h.75v.75h-.75v-.75ZM13.5 13.5h.75v.75h-.75v-.75ZM13.5 19.5h.75v.75h-.75v-.75ZM19.5 13.5h.75v.75h-.75v-.75ZM19.5 19.5h.75v.75h-.75v-.75ZM16.5 16.5h.75v.75h-.75v-.75Z\"\n />\n </svg>\n </ShowQRIcon>\n </CopyRow>\n </ShowQRWrap>\n );\n}\n\nconst ShowQRWrap = styled.div`\n display: flex;\n justify-content: center;\n color: var(--ck-primary-button-color);\n`;\n\nconst ShowQRIcon = styled.div`\n width: 20px;\n`;\n\nconst LogoWrap = styled.div`\n position: relative;\n width: 64px;\n height: 64px;\n`;\n\nconst LogoRow = styled.div`\n padding: 32px 0;\n height: 128px;\n display: flex;\n align-items: center;\n gap: 8px;\n justify-content: center;\n`;\n\nconst QRWrap = styled.div`\n margin: 0 auto;\n width: 280px;\n`;\n\nfunction CopyableInfo({\n depAddr,\n remainingS,\n totalS,\n}: {\n depAddr?: DepositAddr;\n remainingS: number;\n totalS: number;\n}) {\n const underpayment = depAddr?.underpayment;\n const isExpired = depAddr?.expirationS != null && remainingS === 0;\n const locales = useLocales();\n return (\n <CopyableInfoWrapper>\n {underpayment && <UnderpaymentInfo underpayment={underpayment} />}\n <CopyRowOrThrobber\n title={locales.sendExactly}\n value={depAddr?.amount}\n smallText={depAddr?.coins}\n disabled={isExpired}\n />\n <CopyRowOrThrobber\n title={locales.receivingAddress}\n value={depAddr?.address}\n valueText={depAddr?.address && getAddressContraction(depAddr.address)}\n disabled={isExpired}\n />\n <CountdownWrap>\n <CountdownTimer remainingS={remainingS} totalS={totalS} />\n </CountdownWrap>\n </CopyableInfoWrapper>\n );\n}\n\nfunction UnderpaymentInfo({ underpayment }: { underpayment: Underpayment }) {\n // Default message\n return (\n <UnderpaymentWrapper>\n <UnderpaymentHeader>\n <WarningIcon />\n <span>\n Received {underpayment.unitsPaid} {underpayment.coin}\n </span>\n </UnderpaymentHeader>\n <SmallText>Finish by sending the extra amount below.</SmallText>\n </UnderpaymentWrapper>\n );\n}\n\nconst UnderpaymentWrapper = styled.div`\n background: var(--ck-body-background-tertiary);\n border-radius: 8px;\n padding: 16px;\n margin: 0 4px 16px 4px;\n margin-bottom: 16px;\n`;\n\nconst UnderpaymentHeader = styled.div`\n font-weight: 500;\n display: flex;\n justify-content: center;\n align-items: flex-end;\n gap: 8px;\n margin-bottom: 8px;\n`;\n\nconst CopyableInfoWrapper = styled.div`\n display: flex;\n flex-direction: column;\n justify-content: stretch;\n gap: 0;\n`;\n\nconst CountdownWrap = styled.div`\n margin-top: 24px;\n height: 16px;\n`;\n\nconst FailIcon = styled(AlertIcon)`\n color: var(--ck-body-color-alert);\n width: 32px;\n height: 32px;\n margin-top: auto;\n margin-bottom: 16px;\n`;\n\nfunction useCountdown(expirationS?: number) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const initMs = useMemo(() => Date.now(), [expirationS]);\n const [ms, setMs] = useState(initMs);\n\n useEffect(() => {\n const interval = setInterval(() => setMs(Date.now()), 1000);\n return () => clearInterval(interval);\n }, []);\n\n if (expirationS == null) return [0, 0];\n\n const remainingS = Math.max(0, (expirationS - ms / 1000) | 0);\n const totalS = Math.max(0, (expirationS - initMs / 1000) | 0);\n return [remainingS, totalS];\n}\n\nfunction CountdownTimer({\n remainingS,\n totalS,\n}: {\n remainingS: number;\n totalS: number;\n}) {\n const locales = useLocales();\n if (totalS == 0 || remainingS > 3600) {\n return <SmallText>{locales.sendOnlyOnce}</SmallText>;\n }\n const isExpired = remainingS === 0;\n\n return (\n <ModalBody>\n <CountdownRow>\n <CircleTimer\n total={totalS}\n currentTime={remainingS}\n size={18}\n stroke={3}\n />\n <strong>{isExpired ? \"Expired\" : formatTime(remainingS)}</strong>\n </CountdownRow>\n </ModalBody>\n );\n}\n\nconst CountdownRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n font-variant-numeric: tabular-nums;\n`;\n\nconst formatTime = (sec: number) => {\n const m = `${Math.floor(sec / 60)}`.padStart(2, \"0\");\n const s = `${sec % 60}`.padStart(2, \"0\");\n return `${m}:${s}`;\n};\n\nfunction DepositFailed({ name }: { name: string }) {\n return (\n <ModalContent style={{ marginLeft: 24, marginRight: 24 }}>\n <ModalH1>{name} unavailable</ModalH1>\n <ModalBody>\n We&apos;re unable to process {name} payments at this time. Please select\n another payment method.\n </ModalBody>\n <SelectAnotherMethodButton />\n </ModalContent>\n );\n}\n\nconst CopyRow = styled.button`\n display: block;\n height: 64px;\n border-radius: 8px;\n padding: 8px 16px;\n\n cursor: pointer;\n background-color: var(--ck-body-background);\n background-color: var(--ck-body-background);\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n transition: all 100ms ease;\n\n &:hover {\n opacity: 0.8;\n }\n\n &:active {\n transform: scale(0.98);\n background-color: var(--ck-body-background-secondary);\n }\n\n &:disabled {\n cursor: default;\n opacity: 0.5;\n transform: scale(0.98);\n background-color: var(--ck-body-background-secondary);\n }\n`;\n\nconst LabelRow = styled.div`\n margin-bottom: 4px;\n`;\n\nconst MainRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst ValueContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n\nconst SmallText = styled.span`\n font-size: 14px;\n color: var(--ck-primary-button-color);\n`;\n\nconst ValueText = styled.span`\n font-size: 14px;\n font-weight: 600;\n color: var(--ck-primary-button-color);\n`;\n\nconst LabelText = styled(ModalBody)`\n margin: 0;\n text-align: left;\n`;\n\nconst pulse = keyframes`\n 0% {\n opacity: 0.6;\n }\n 50% {\n opacity: 1;\n }\n 100% {\n opacity: 0.6;\n }\n`;\n\nconst Skeleton = styled.div`\n width: 80px;\n height: 16px;\n border-radius: 8px;\n background-color: rgba(0, 0, 0, 0.1);\n animation: ${pulse} 1.5s ease-in-out infinite;\n`;\n\nfunction CopyRowOrThrobber({\n title,\n value,\n valueText,\n smallText,\n disabled,\n}: {\n title: string;\n value?: string;\n valueText?: string;\n smallText?: string;\n disabled?: boolean;\n}) {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = () => {\n if (disabled) return;\n if (!value) return;\n const str = value.trim();\n if (navigator.clipboard) {\n navigator.clipboard.writeText(str);\n }\n setCopied(true);\n setTimeout(() => setCopied(false), 1000);\n };\n\n if (!value) {\n return (\n <CopyRow>\n <LabelRow>\n <LabelText>{title}</LabelText>\n </LabelRow>\n <MainRow>\n <Skeleton />\n </MainRow>\n </CopyRow>\n );\n }\n\n const displayValue = valueText || value;\n\n return (\n <CopyRow as=\"button\" onClick={handleCopy} disabled={disabled}>\n <div>\n <LabelRow>\n <LabelText>{title}</LabelText>\n </LabelRow>\n <MainRow>\n <ValueContainer>\n <ValueText>{displayValue}</ValueText>\n {smallText && <SmallText>{smallText}</SmallText>}\n </ValueContainer>\n </MainRow>\n </div>\n <CopyIconWrap>\n <CopyToClipboardIcon copied={copied} dark />\n </CopyIconWrap>\n </CopyRow>\n );\n}\n\nconst CopyIconWrap = styled.div`\n --color: var(--ck-copytoclipboard-stroke);\n --bg: var(--ck-body-background);\n`;\n"],"names":[],"mappings":"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"}
@@ -1,89 +0,0 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { useState, useEffect } from 'react';
3
- import { usePayContext } from '../../../hooks/usePayContext.js';
4
- import { PageContent, ModalContent, ModalH1, ModalBody } from '../../Common/Modal/styles.js';
5
- import { ExternalPaymentOptions, shouldShowExternalQRCodeOnDesktop } from '@daimo/pay-common';
6
- import { ExternalLinkIcon } from '../../../assets/icons.js';
7
- import useIsMobile from '../../../hooks/useIsMobile.js';
8
- import useLocales from '../../../hooks/useLocales.js';
9
- import Button from '../../Common/Button/index.js';
10
- import ConnectWithQRCode from '../../DaimoPayModal/ConnectWithQRCode.js';
11
- import ExternalPaymentSpinner from '../../Spinners/ExternalPaymentSpinner/index.js';
12
-
13
- const WaitingExternal = () => {
14
- const context = usePayContext();
15
- const { triggerResize, paymentState } = context;
16
- const { isMobile } = useIsMobile();
17
- const locales = useLocales();
18
- const { selectedExternalOption, payWithExternal, paymentWaitingMessage } = paymentState;
19
- let isCoinbase = false;
20
- if (selectedExternalOption) {
21
- isCoinbase = selectedExternalOption.id === ExternalPaymentOptions.Coinbase;
22
- }
23
- const [externalURL, setExternalURL] = useState(null);
24
- useEffect(() => {
25
- if (!selectedExternalOption) return;
26
- payWithExternal(selectedExternalOption.id).then((url) => {
27
- setExternalURL(url);
28
- if (!shouldShowExternalQRCodeOnDesktop) {
29
- openExternalWindow(url);
30
- }
31
- });
32
- }, [selectedExternalOption]);
33
- const openExternalWindow = (url) => {
34
- if (!isCoinbase || isMobile) {
35
- window.open(url, "_blank");
36
- } else {
37
- let width = 500;
38
- let height = 700;
39
- const left = Math.max(
40
- 0,
41
- Math.floor((window.innerWidth - width) / 2) + window.screenX
42
- );
43
- const top = Math.max(
44
- 0,
45
- Math.floor((window.innerHeight - height) / 2) + window.screenY
46
- );
47
- window.open(
48
- url,
49
- "popupWindow",
50
- `width=${width},height=${height},left=${left},top=${top},scrollbars=yes`
51
- );
52
- }
53
- };
54
- const waitingMessageLength = paymentWaitingMessage?.length;
55
- useEffect(() => {
56
- triggerResize();
57
- }, [waitingMessageLength, externalURL]);
58
- if (!selectedExternalOption) {
59
- return /* @__PURE__ */ jsx(PageContent, {});
60
- }
61
- return shouldShowExternalQRCodeOnDesktop(selectedExternalOption.id) && !isMobile ? /* @__PURE__ */ jsx(ConnectWithQRCode, { externalUrl: externalURL ?? "" }) : /* @__PURE__ */ jsxs(PageContent, { children: [
62
- /* @__PURE__ */ jsx(
63
- ExternalPaymentSpinner,
64
- {
65
- logoURI: selectedExternalOption.logoURI,
66
- logoShape: selectedExternalOption.logoShape
67
- }
68
- ),
69
- /* @__PURE__ */ jsxs(ModalContent, { style: { marginLeft: 24, marginRight: 24 }, children: [
70
- /* @__PURE__ */ jsx(ModalH1, { children: locales.waitingForPayment }),
71
- paymentWaitingMessage && /* @__PURE__ */ jsx(ModalBody, { style: { marginTop: 12, marginBottom: 12 }, children: paymentWaitingMessage })
72
- ] }),
73
- /* @__PURE__ */ jsx(
74
- Button,
75
- {
76
- icon: /* @__PURE__ */ jsx(ExternalLinkIcon, {}),
77
- onClick: () => {
78
- if (externalURL) {
79
- openExternalWindow(externalURL);
80
- }
81
- },
82
- children: selectedExternalOption.cta
83
- }
84
- )
85
- ] });
86
- };
87
-
88
- export { WaitingExternal as default };
89
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/components/Pages/WaitingExternal/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { usePayContext } from \"../../../hooks/usePayContext\";\n\nimport {\n ModalBody,\n ModalContent,\n ModalH1,\n PageContent,\n} from \"../../Common/Modal/styles\";\n\nimport {\n ExternalPaymentOptions,\n shouldShowExternalQRCodeOnDesktop,\n} from \"@daimo/pay-common\";\nimport { ExternalLinkIcon } from \"../../../assets/icons\";\nimport useIsMobile from \"../../../hooks/useIsMobile\";\nimport useLocales from \"../../../hooks/useLocales\";\nimport Button from \"../../Common/Button\";\nimport ConnectWithQRCode from \"../../DaimoPayModal/ConnectWithQRCode\";\nimport ExternalPaymentSpinner from \"../../Spinners/ExternalPaymentSpinner\";\n\nconst WaitingExternal: React.FC = () => {\n const context = usePayContext();\n const { triggerResize, paymentState } = context;\n const { isMobile } = useIsMobile();\n const locales = useLocales();\n const { selectedExternalOption, payWithExternal, paymentWaitingMessage } =\n paymentState;\n\n let isCoinbase = false;\n if (selectedExternalOption) {\n isCoinbase = selectedExternalOption.id === ExternalPaymentOptions.Coinbase;\n }\n\n const [externalURL, setExternalURL] = useState<string | null>(null);\n\n useEffect(() => {\n if (!selectedExternalOption) return;\n payWithExternal(selectedExternalOption.id).then((url) => {\n setExternalURL(url);\n if (!shouldShowExternalQRCodeOnDesktop) {\n openExternalWindow(url);\n }\n });\n }, [selectedExternalOption]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const openExternalWindow = (url: string) => {\n if (!isCoinbase || isMobile) {\n // for non-exchange apps: open in a new tab\n window.open(url, \"_blank\");\n } else {\n // for Coinbase: open in a popup window\n // in portrait mode in the center of the screen\n let width = 500;\n let height = 700;\n const left = Math.max(\n 0,\n Math.floor((window.innerWidth - width) / 2) + window.screenX,\n );\n const top = Math.max(\n 0,\n Math.floor((window.innerHeight - height) / 2) + window.screenY,\n );\n\n window.open(\n url,\n \"popupWindow\",\n `width=${width},height=${height},left=${left},top=${top},scrollbars=yes`,\n );\n }\n };\n\n const waitingMessageLength = paymentWaitingMessage?.length;\n\n useEffect(() => {\n triggerResize();\n }, [waitingMessageLength, externalURL]); // eslint-disable-line react-hooks/exhaustive-deps\n\n if (!selectedExternalOption) {\n return <PageContent></PageContent>;\n }\n\n return shouldShowExternalQRCodeOnDesktop(selectedExternalOption.id) &&\n !isMobile ? (\n <ConnectWithQRCode externalUrl={externalURL ?? \"\"} />\n ) : (\n <PageContent>\n <ExternalPaymentSpinner\n logoURI={selectedExternalOption.logoURI}\n logoShape={selectedExternalOption.logoShape}\n />\n <ModalContent style={{ marginLeft: 24, marginRight: 24 }}>\n <ModalH1>{locales.waitingForPayment}</ModalH1>\n {paymentWaitingMessage && (\n <ModalBody style={{ marginTop: 12, marginBottom: 12 }}>\n {paymentWaitingMessage}\n </ModalBody>\n )}\n </ModalContent>\n <Button\n icon={<ExternalLinkIcon />}\n onClick={() => {\n if (externalURL) {\n openExternalWindow(externalURL);\n }\n }}\n >\n {selectedExternalOption.cta}\n </Button>\n </PageContent>\n );\n};\n\nexport default WaitingExternal;\n"],"names":[],"mappings":"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"}