@daimo/pay 1.19.2 → 1.19.4

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 (386) hide show
  1. package/build/connectkit/package.json.js +117 -0
  2. package/build/connectkit/package.json.js.map +1 -0
  3. package/build/connectkit/src/assets/MobileWithLogos.js +329 -0
  4. package/build/connectkit/src/assets/MobileWithLogos.js.map +1 -0
  5. package/build/connectkit/src/assets/ScanIconWithLogos.js +243 -0
  6. package/build/connectkit/src/assets/ScanIconWithLogos.js.map +1 -0
  7. package/build/connectkit/src/assets/browsers.js +969 -0
  8. package/build/connectkit/src/assets/browsers.js.map +1 -0
  9. package/build/connectkit/src/assets/chains.js +648 -0
  10. package/build/connectkit/src/assets/chains.js.map +1 -0
  11. package/build/connectkit/src/assets/coins.js +43 -0
  12. package/build/connectkit/src/assets/coins.js.map +1 -0
  13. package/build/connectkit/src/assets/icons.js +273 -0
  14. package/build/connectkit/src/assets/icons.js.map +1 -0
  15. package/build/connectkit/src/assets/logos.js +1620 -0
  16. package/build/connectkit/src/assets/logos.js.map +1 -0
  17. package/build/connectkit/src/assets/wave.js +46 -0
  18. package/build/connectkit/src/assets/wave.js.map +1 -0
  19. package/build/connectkit/src/components/Common/Alert/index.js +13 -0
  20. package/build/connectkit/src/components/Common/Alert/index.js.map +1 -0
  21. package/build/connectkit/src/components/Common/Alert/styles.js +55 -0
  22. package/build/connectkit/src/components/Common/Alert/styles.js.map +1 -0
  23. package/build/connectkit/src/components/Common/AmountInput/AmountInputField.js +71 -0
  24. package/build/connectkit/src/components/Common/AmountInput/AmountInputField.js.map +1 -0
  25. package/build/connectkit/src/components/Common/AmountInput/index.js +159 -0
  26. package/build/connectkit/src/components/Common/AmountInput/index.js.map +1 -0
  27. package/build/connectkit/src/components/Common/Avatar/index.js +78 -0
  28. package/build/connectkit/src/components/Common/Avatar/index.js.map +1 -0
  29. package/build/connectkit/src/components/Common/Avatar/styles.js +54 -0
  30. package/build/connectkit/src/components/Common/Avatar/styles.js.map +1 -0
  31. package/build/connectkit/src/components/Common/BrowserIcon/index.js +29 -0
  32. package/build/connectkit/src/components/Common/BrowserIcon/index.js.map +1 -0
  33. package/build/connectkit/src/components/Common/BrowserIcon/styles.js +20 -0
  34. package/build/connectkit/src/components/Common/BrowserIcon/styles.js.map +1 -0
  35. package/build/connectkit/src/components/Common/Button/index.js +144 -0
  36. package/build/connectkit/src/components/Common/Button/index.js.map +1 -0
  37. package/build/connectkit/src/components/Common/Button/styles.js +287 -0
  38. package/build/connectkit/src/components/Common/Button/styles.js.map +1 -0
  39. package/build/connectkit/src/components/Common/Chain/index.js +141 -0
  40. package/build/connectkit/src/components/Common/Chain/index.js.map +1 -0
  41. package/build/connectkit/src/components/Common/Chain/styles.js +90 -0
  42. package/build/connectkit/src/components/Common/Chain/styles.js.map +1 -0
  43. package/build/connectkit/src/components/Common/ChainSelectList/index.js +250 -0
  44. package/build/connectkit/src/components/Common/ChainSelectList/index.js.map +1 -0
  45. package/build/connectkit/src/components/Common/ChainSelectList/styles.js +226 -0
  46. package/build/connectkit/src/components/Common/ChainSelectList/styles.js.map +1 -0
  47. package/build/connectkit/src/components/Common/CircleTimer.js +92 -0
  48. package/build/connectkit/src/components/Common/CircleTimer.js.map +1 -0
  49. package/build/connectkit/src/components/Common/ConnectorList/index.js +120 -0
  50. package/build/connectkit/src/components/Common/ConnectorList/index.js.map +1 -0
  51. package/build/connectkit/src/components/Common/ConnectorList/styles.js +344 -0
  52. package/build/connectkit/src/components/Common/ConnectorList/styles.js.map +1 -0
  53. package/build/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +78 -0
  54. package/build/connectkit/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -0
  55. package/build/connectkit/src/components/Common/CopyToClipboard/index.js +33 -0
  56. package/build/connectkit/src/components/Common/CopyToClipboard/index.js.map +1 -0
  57. package/build/connectkit/src/components/Common/CustomQRCode/QRCode.js +128 -0
  58. package/build/connectkit/src/components/Common/CustomQRCode/QRCode.js.map +1 -0
  59. package/build/connectkit/src/components/Common/CustomQRCode/index.js +71 -0
  60. package/build/connectkit/src/components/Common/CustomQRCode/index.js.map +1 -0
  61. package/build/connectkit/src/components/Common/CustomQRCode/styles.js +139 -0
  62. package/build/connectkit/src/components/Common/CustomQRCode/styles.js.map +1 -0
  63. package/build/connectkit/src/components/Common/FitText/index.js +34 -0
  64. package/build/connectkit/src/components/Common/FitText/index.js.map +1 -0
  65. package/build/connectkit/src/components/Common/Modal/index.js +523 -0
  66. package/build/connectkit/src/components/Common/Modal/index.js.map +1 -0
  67. package/build/connectkit/src/components/Common/Modal/styles.js +665 -0
  68. package/build/connectkit/src/components/Common/Modal/styles.js.map +1 -0
  69. package/build/connectkit/src/components/Common/OptionsList/index.js +145 -0
  70. package/build/connectkit/src/components/Common/OptionsList/index.js.map +1 -0
  71. package/build/connectkit/src/components/Common/OptionsList/styles.js +138 -0
  72. package/build/connectkit/src/components/Common/OptionsList/styles.js.map +1 -0
  73. package/build/connectkit/src/components/Common/OrderHeader/index.js +192 -0
  74. package/build/connectkit/src/components/Common/OrderHeader/index.js.map +1 -0
  75. package/build/connectkit/src/components/Common/PaymentBreakdown/index.js +70 -0
  76. package/build/connectkit/src/components/Common/PaymentBreakdown/index.js.map +1 -0
  77. package/build/connectkit/src/components/Common/Portal/index.js +30 -0
  78. package/build/connectkit/src/components/Common/Portal/index.js.map +1 -0
  79. package/build/connectkit/src/components/Common/PoweredByFooter/index.js +66 -0
  80. package/build/connectkit/src/components/Common/PoweredByFooter/index.js.map +1 -0
  81. package/build/connectkit/src/components/Common/ScrollArea/index.js +120 -0
  82. package/build/connectkit/src/components/Common/ScrollArea/index.js.map +1 -0
  83. package/build/connectkit/src/components/Common/ScrollArea/styles.js +169 -0
  84. package/build/connectkit/src/components/Common/ScrollArea/styles.js.map +1 -0
  85. package/build/connectkit/src/components/Common/SelectAnotherMethodButton/index.js +96 -0
  86. package/build/connectkit/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -0
  87. package/build/connectkit/src/components/Common/Spinner/index.js +64 -0
  88. package/build/connectkit/src/components/Common/Spinner/index.js.map +1 -0
  89. package/build/connectkit/src/components/Common/Spinner/styles.js +22 -0
  90. package/build/connectkit/src/components/Common/Spinner/styles.js.map +1 -0
  91. package/build/connectkit/src/components/Common/SwitchButton/index.js +43 -0
  92. package/build/connectkit/src/components/Common/SwitchButton/index.js.map +1 -0
  93. package/build/connectkit/src/components/Common/ThemedButton/index.js +46 -0
  94. package/build/connectkit/src/components/Common/ThemedButton/index.js.map +1 -0
  95. package/build/connectkit/src/components/Common/ThemedButton/styles.js +152 -0
  96. package/build/connectkit/src/components/Common/ThemedButton/styles.js.map +1 -0
  97. package/build/connectkit/src/components/Common/TokenChainLogo/index.js +62 -0
  98. package/build/connectkit/src/components/Common/TokenChainLogo/index.js.map +1 -0
  99. package/build/connectkit/src/components/Common/Tooltip/index.js +129 -0
  100. package/build/connectkit/src/components/Common/Tooltip/index.js.map +1 -0
  101. package/build/connectkit/src/components/Common/Tooltip/styles.js +81 -0
  102. package/build/connectkit/src/components/Common/Tooltip/styles.js.map +1 -0
  103. package/build/connectkit/src/components/Common/WalletChainLogo/index.js +31 -0
  104. package/build/connectkit/src/components/Common/WalletChainLogo/index.js.map +1 -0
  105. package/build/connectkit/src/components/DaimoPayButton/index.js +197 -0
  106. package/build/connectkit/src/components/DaimoPayButton/index.js.map +1 -0
  107. package/build/connectkit/src/components/DaimoPayButton/styles.js +50 -0
  108. package/build/connectkit/src/components/DaimoPayButton/styles.js.map +1 -0
  109. package/build/connectkit/src/components/DaimoPayModal/ConnectUsing.js +68 -0
  110. package/build/connectkit/src/components/DaimoPayModal/ConnectUsing.js.map +1 -0
  111. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js +335 -0
  112. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -0
  113. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js +131 -0
  114. package/build/connectkit/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -0
  115. package/build/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js +99 -0
  116. package/build/connectkit/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -0
  117. package/build/connectkit/src/components/DaimoPayModal/index.js +462 -0
  118. package/build/connectkit/src/components/DaimoPayModal/index.js.map +1 -0
  119. package/build/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +25 -0
  120. package/build/connectkit/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -0
  121. package/build/connectkit/src/components/Pages/About/graphics.js +853 -0
  122. package/build/connectkit/src/components/Pages/About/graphics.js.map +1 -0
  123. package/build/connectkit/src/components/Pages/About/index.js +222 -0
  124. package/build/connectkit/src/components/Pages/About/index.js.map +1 -0
  125. package/build/connectkit/src/components/Pages/About/styles.js +140 -0
  126. package/build/connectkit/src/components/Pages/About/styles.js.map +1 -0
  127. package/build/connectkit/src/components/Pages/Confirmation/index.js +128 -0
  128. package/build/connectkit/src/components/Pages/Confirmation/index.js.map +1 -0
  129. package/build/connectkit/src/components/Pages/Connectors/index.js +28 -0
  130. package/build/connectkit/src/components/Pages/Connectors/index.js.map +1 -0
  131. package/build/connectkit/src/components/Pages/DownloadApp/index.js +35 -0
  132. package/build/connectkit/src/components/Pages/DownloadApp/index.js.map +1 -0
  133. package/build/connectkit/src/components/Pages/Error/index.js +57 -0
  134. package/build/connectkit/src/components/Pages/Error/index.js.map +1 -0
  135. package/build/connectkit/src/components/Pages/MobileConnectors/index.js +65 -0
  136. package/build/connectkit/src/components/Pages/MobileConnectors/index.js.map +1 -0
  137. package/build/connectkit/src/components/Pages/MobileConnectors/styles.js +64 -0
  138. package/build/connectkit/src/components/Pages/MobileConnectors/styles.js.map +1 -0
  139. package/build/connectkit/src/components/Pages/Onboarding/index.js +34 -0
  140. package/build/connectkit/src/components/Pages/Onboarding/index.js.map +1 -0
  141. package/build/connectkit/src/components/Pages/Onboarding/styles.js +229 -0
  142. package/build/connectkit/src/components/Pages/Onboarding/styles.js.map +1 -0
  143. package/build/connectkit/src/components/Pages/PayWithToken/index.js +157 -0
  144. package/build/connectkit/src/components/Pages/PayWithToken/index.js.map +1 -0
  145. package/build/connectkit/src/components/Pages/SelectAmount/index.js +24 -0
  146. package/build/connectkit/src/components/Pages/SelectAmount/index.js.map +1 -0
  147. package/build/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js +79 -0
  148. package/build/connectkit/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -0
  149. package/build/connectkit/src/components/Pages/SelectDepositAddressChain/index.js +72 -0
  150. package/build/connectkit/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -0
  151. package/build/connectkit/src/components/Pages/SelectExchange/index.js +41 -0
  152. package/build/connectkit/src/components/Pages/SelectExchange/index.js.map +1 -0
  153. package/build/connectkit/src/components/Pages/SelectExternalAmount/index.js +80 -0
  154. package/build/connectkit/src/components/Pages/SelectExternalAmount/index.js.map +1 -0
  155. package/build/connectkit/src/components/Pages/SelectMethod/index.js +230 -0
  156. package/build/connectkit/src/components/Pages/SelectMethod/index.js.map +1 -0
  157. package/build/connectkit/src/components/Pages/SelectToken/index.js +97 -0
  158. package/build/connectkit/src/components/Pages/SelectToken/index.js.map +1 -0
  159. package/build/connectkit/src/components/Pages/SelectWalletAmount/index.js +66 -0
  160. package/build/connectkit/src/components/Pages/SelectWalletAmount/index.js.map +1 -0
  161. package/build/connectkit/src/components/Pages/SelectWalletChain/index.js +55 -0
  162. package/build/connectkit/src/components/Pages/SelectWalletChain/index.js.map +1 -0
  163. package/build/connectkit/src/components/Pages/SelectZKP/index.js +41 -0
  164. package/build/connectkit/src/components/Pages/SelectZKP/index.js.map +1 -0
  165. package/build/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js +94 -0
  166. package/build/connectkit/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -0
  167. package/build/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js +92 -0
  168. package/build/connectkit/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -0
  169. package/build/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js +24 -0
  170. package/build/connectkit/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -0
  171. package/build/connectkit/src/components/Pages/SwitchNetworks/index.js +45 -0
  172. package/build/connectkit/src/components/Pages/SwitchNetworks/index.js.map +1 -0
  173. package/build/connectkit/src/components/Pages/WaitingDepositAddress/index.js +503 -0
  174. package/build/connectkit/src/components/Pages/WaitingDepositAddress/index.js.map +1 -0
  175. package/build/connectkit/src/components/Pages/WaitingExternal/index.js +89 -0
  176. package/build/connectkit/src/components/Pages/WaitingExternal/index.js.map +1 -0
  177. package/build/connectkit/src/components/Pages/WaitingWallet/index.js +49 -0
  178. package/build/connectkit/src/components/Pages/WaitingWallet/index.js.map +1 -0
  179. package/build/connectkit/src/components/Spinners/CircleSpinner/index.js +104 -0
  180. package/build/connectkit/src/components/Spinners/CircleSpinner/index.js.map +1 -0
  181. package/build/connectkit/src/components/Spinners/CircleSpinner/styles.js +117 -0
  182. package/build/connectkit/src/components/Spinners/CircleSpinner/styles.js.map +1 -0
  183. package/build/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js +29 -0
  184. package/build/connectkit/src/components/Spinners/ExternalPaymentSpinner/index.js.map +1 -0
  185. package/build/connectkit/src/components/Spinners/SquircleSpinner/index.js +68 -0
  186. package/build/connectkit/src/components/Spinners/SquircleSpinner/index.js.map +1 -0
  187. package/build/connectkit/src/components/Spinners/SquircleSpinner/styles.js +66 -0
  188. package/build/connectkit/src/components/Spinners/SquircleSpinner/styles.js.map +1 -0
  189. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/index.js +24 -0
  190. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -0
  191. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js +40 -0
  192. package/build/connectkit/src/components/Spinners/TokenLogoSpinner/styles.js.map +1 -0
  193. package/build/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js +37 -0
  194. package/build/connectkit/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -0
  195. package/build/connectkit/src/components/Spinners/styles.js +32 -0
  196. package/build/connectkit/src/components/Spinners/styles.js.map +1 -0
  197. package/build/connectkit/src/constants/defaultTheme.js +6 -0
  198. package/build/connectkit/src/constants/defaultTheme.js.map +1 -0
  199. package/build/connectkit/src/constants/routes.js +32 -0
  200. package/build/connectkit/src/constants/routes.js.map +1 -0
  201. package/build/connectkit/src/defaultConfig.js +63 -0
  202. package/build/connectkit/src/defaultConfig.js.map +1 -0
  203. package/build/connectkit/src/defaultConnectors.js +37 -0
  204. package/build/connectkit/src/defaultConnectors.js.map +1 -0
  205. package/build/connectkit/src/hooks/useChainIsSupported.js +10 -0
  206. package/build/connectkit/src/hooks/useChainIsSupported.js.map +1 -0
  207. package/build/connectkit/src/hooks/useChains.js +10 -0
  208. package/build/connectkit/src/hooks/useChains.js.map +1 -0
  209. package/build/connectkit/src/hooks/useConnect.js +61 -0
  210. package/build/connectkit/src/hooks/useConnect.js.map +1 -0
  211. package/build/connectkit/src/hooks/useConnectCallback.js +21 -0
  212. package/build/connectkit/src/hooks/useConnectCallback.js.map +1 -0
  213. package/build/connectkit/src/hooks/useConnectors.js +9 -0
  214. package/build/connectkit/src/hooks/useConnectors.js.map +1 -0
  215. package/build/connectkit/src/hooks/useDaimoPay.js +107 -0
  216. package/build/connectkit/src/hooks/useDaimoPay.js.map +1 -0
  217. package/build/connectkit/src/hooks/useDaimoPayStatus.js +12 -0
  218. package/build/connectkit/src/hooks/useDaimoPayStatus.js.map +1 -0
  219. package/build/connectkit/src/hooks/useDaimoPayUI.js +15 -0
  220. package/build/connectkit/src/hooks/useDaimoPayUI.js.map +1 -0
  221. package/build/connectkit/src/hooks/useDepositAddressOptions.js +35 -0
  222. package/build/connectkit/src/hooks/useDepositAddressOptions.js.map +1 -0
  223. package/build/connectkit/src/hooks/useEnsFallbackConfig.js +16 -0
  224. package/build/connectkit/src/hooks/useEnsFallbackConfig.js.map +1 -0
  225. package/build/connectkit/src/hooks/useExternalPaymentOptions.js +64 -0
  226. package/build/connectkit/src/hooks/useExternalPaymentOptions.js.map +1 -0
  227. package/build/connectkit/src/hooks/useFitText.js +133 -0
  228. package/build/connectkit/src/hooks/useFitText.js.map +1 -0
  229. package/build/connectkit/src/hooks/useFocusTrap.js +53 -0
  230. package/build/connectkit/src/hooks/useFocusTrap.js.map +1 -0
  231. package/build/connectkit/src/hooks/useIsMobile.js +11 -0
  232. package/build/connectkit/src/hooks/useIsMobile.js.map +1 -0
  233. package/build/connectkit/src/hooks/useIsMounted.js +10 -0
  234. package/build/connectkit/src/hooks/useIsMounted.js.map +1 -0
  235. package/build/connectkit/src/hooks/useLastConnector.js +24 -0
  236. package/build/connectkit/src/hooks/useLastConnector.js.map +1 -0
  237. package/build/connectkit/src/hooks/useLocales.js +60 -0
  238. package/build/connectkit/src/hooks/useLocales.js.map +1 -0
  239. package/build/connectkit/src/hooks/useLockBodyScroll.js +47 -0
  240. package/build/connectkit/src/hooks/useLockBodyScroll.js.map +1 -0
  241. package/build/connectkit/src/hooks/useOrderUsdLimits.js +24 -0
  242. package/build/connectkit/src/hooks/useOrderUsdLimits.js.map +1 -0
  243. package/build/connectkit/src/hooks/usePayContext.js +11 -0
  244. package/build/connectkit/src/hooks/usePayContext.js.map +1 -0
  245. package/build/connectkit/src/hooks/usePaymentState.js +376 -0
  246. package/build/connectkit/src/hooks/usePaymentState.js.map +1 -0
  247. package/build/connectkit/src/hooks/usePrevious.js +13 -0
  248. package/build/connectkit/src/hooks/usePrevious.js.map +1 -0
  249. package/build/connectkit/src/hooks/useSolanaPaymentOptions.js +40 -0
  250. package/build/connectkit/src/hooks/useSolanaPaymentOptions.js.map +1 -0
  251. package/build/connectkit/src/hooks/useTokenOptions.js +152 -0
  252. package/build/connectkit/src/hooks/useTokenOptions.js.map +1 -0
  253. package/build/connectkit/src/hooks/useUntronAvailability.js +32 -0
  254. package/build/connectkit/src/hooks/useUntronAvailability.js.map +1 -0
  255. package/build/connectkit/src/hooks/useWalletPaymentOptions.js +97 -0
  256. package/build/connectkit/src/hooks/useWalletPaymentOptions.js.map +1 -0
  257. package/build/connectkit/src/hooks/useWindowSize.js +23 -0
  258. package/build/connectkit/src/hooks/useWindowSize.js.map +1 -0
  259. package/build/connectkit/src/index.js +14 -0
  260. package/build/connectkit/src/index.js.map +1 -0
  261. package/build/connectkit/src/localizations/index.js +48 -0
  262. package/build/connectkit/src/localizations/index.js.map +1 -0
  263. package/build/connectkit/src/localizations/locales/ar-AE.js +95 -0
  264. package/build/connectkit/src/localizations/locales/ar-AE.js.map +1 -0
  265. package/build/connectkit/src/localizations/locales/ca-AD.js +93 -0
  266. package/build/connectkit/src/localizations/locales/ca-AD.js.map +1 -0
  267. package/build/connectkit/src/localizations/locales/ee-EE.js +101 -0
  268. package/build/connectkit/src/localizations/locales/ee-EE.js.map +1 -0
  269. package/build/connectkit/src/localizations/locales/en-US.js +139 -0
  270. package/build/connectkit/src/localizations/locales/en-US.js.map +1 -0
  271. package/build/connectkit/src/localizations/locales/es-ES.js +131 -0
  272. package/build/connectkit/src/localizations/locales/es-ES.js.map +1 -0
  273. package/build/connectkit/src/localizations/locales/fa-IR.js +93 -0
  274. package/build/connectkit/src/localizations/locales/fa-IR.js.map +1 -0
  275. package/build/connectkit/src/localizations/locales/fr-FR.js +93 -0
  276. package/build/connectkit/src/localizations/locales/fr-FR.js.map +1 -0
  277. package/build/connectkit/src/localizations/locales/ja-JP.js +93 -0
  278. package/build/connectkit/src/localizations/locales/ja-JP.js.map +1 -0
  279. package/build/connectkit/src/localizations/locales/pt-BR.js +101 -0
  280. package/build/connectkit/src/localizations/locales/pt-BR.js.map +1 -0
  281. package/build/connectkit/src/localizations/locales/ru-RU.js +97 -0
  282. package/build/connectkit/src/localizations/locales/ru-RU.js.map +1 -0
  283. package/build/connectkit/src/localizations/locales/tr-TR.js +101 -0
  284. package/build/connectkit/src/localizations/locales/tr-TR.js.map +1 -0
  285. package/build/connectkit/src/localizations/locales/vi-VN.js +101 -0
  286. package/build/connectkit/src/localizations/locales/vi-VN.js.map +1 -0
  287. package/build/connectkit/src/localizations/locales/zh-CN.js +93 -0
  288. package/build/connectkit/src/localizations/locales/zh-CN.js.map +1 -0
  289. package/build/connectkit/src/payment/paymentEffects.js +269 -0
  290. package/build/connectkit/src/payment/paymentEffects.js.map +1 -0
  291. package/build/connectkit/src/payment/paymentFsm.js +194 -0
  292. package/build/connectkit/src/payment/paymentFsm.js.map +1 -0
  293. package/build/connectkit/src/payment/paymentStore.js +18 -0
  294. package/build/connectkit/src/payment/paymentStore.js.map +1 -0
  295. package/build/connectkit/src/payment/paymentUtils.js +10 -0
  296. package/build/connectkit/src/payment/paymentUtils.js.map +1 -0
  297. package/build/connectkit/src/provider/DaimoPayProvider.js +293 -0
  298. package/build/connectkit/src/provider/DaimoPayProvider.js.map +1 -0
  299. package/build/connectkit/src/provider/PayContext.js +6 -0
  300. package/build/connectkit/src/provider/PayContext.js.map +1 -0
  301. package/build/connectkit/src/provider/PaymentProvider.js +29 -0
  302. package/build/connectkit/src/provider/PaymentProvider.js.map +1 -0
  303. package/build/connectkit/src/provider/SolanaContextProvider.js +14 -0
  304. package/build/connectkit/src/provider/SolanaContextProvider.js.map +1 -0
  305. package/build/connectkit/src/provider/Web3ContextProvider.js +36 -0
  306. package/build/connectkit/src/provider/Web3ContextProvider.js.map +1 -0
  307. package/build/connectkit/src/stateStore.js +36 -0
  308. package/build/connectkit/src/stateStore.js.map +1 -0
  309. package/build/connectkit/src/styles/defaultTheme.js +80 -0
  310. package/build/connectkit/src/styles/defaultTheme.js.map +1 -0
  311. package/build/connectkit/src/styles/index.js +313 -0
  312. package/build/connectkit/src/styles/index.js.map +1 -0
  313. package/build/connectkit/src/styles/styled/index.js +6 -0
  314. package/build/connectkit/src/styles/styled/index.js.map +1 -0
  315. package/build/connectkit/src/styles/themes/base.js +141 -0
  316. package/build/connectkit/src/styles/themes/base.js.map +1 -0
  317. package/build/connectkit/src/styles/themes/index.js +13 -0
  318. package/build/connectkit/src/styles/themes/index.js.map +1 -0
  319. package/build/connectkit/src/styles/themes/midnight.js +76 -0
  320. package/build/connectkit/src/styles/themes/midnight.js.map +1 -0
  321. package/build/connectkit/src/styles/themes/minimal.js +96 -0
  322. package/build/connectkit/src/styles/themes/minimal.js.map +1 -0
  323. package/build/connectkit/src/styles/themes/nouns.js +81 -0
  324. package/build/connectkit/src/styles/themes/nouns.js.map +1 -0
  325. package/build/connectkit/src/styles/themes/retro.js +106 -0
  326. package/build/connectkit/src/styles/themes/retro.js.map +1 -0
  327. package/build/connectkit/src/styles/themes/rounded.js +106 -0
  328. package/build/connectkit/src/styles/themes/rounded.js.map +1 -0
  329. package/build/connectkit/src/styles/themes/soft.js +71 -0
  330. package/build/connectkit/src/styles/themes/soft.js.map +1 -0
  331. package/build/connectkit/src/styles/themes/web95.js +132 -0
  332. package/build/connectkit/src/styles/themes/web95.js.map +1 -0
  333. package/build/connectkit/src/utils/exports.js +6 -0
  334. package/build/connectkit/src/utils/exports.js.map +1 -0
  335. package/build/connectkit/src/utils/format.js +45 -0
  336. package/build/connectkit/src/utils/format.js.map +1 -0
  337. package/build/connectkit/src/utils/index.js +42 -0
  338. package/build/connectkit/src/utils/index.js.map +1 -0
  339. package/build/connectkit/src/utils/p3.js +15 -0
  340. package/build/connectkit/src/utils/p3.js.map +1 -0
  341. package/build/connectkit/src/utils/platform.js +11 -0
  342. package/build/connectkit/src/utils/platform.js.map +1 -0
  343. package/build/connectkit/src/utils/polling.js +35 -0
  344. package/build/connectkit/src/utils/polling.js.map +1 -0
  345. package/build/connectkit/src/utils/supportUrl.js +16 -0
  346. package/build/connectkit/src/utils/supportUrl.js.map +1 -0
  347. package/build/connectkit/src/utils/trpc.js +19 -0
  348. package/build/connectkit/src/utils/trpc.js.map +1 -0
  349. package/build/connectkit/src/utils/validateInput.js +16 -0
  350. package/build/connectkit/src/utils/validateInput.js.map +1 -0
  351. package/build/connectkit/src/wallets/index.js +21 -0
  352. package/build/connectkit/src/wallets/index.js.map +1 -0
  353. package/build/connectkit/src/wallets/useWallets.js +207 -0
  354. package/build/connectkit/src/wallets/useWallets.js.map +1 -0
  355. package/build/connectkit/src/wallets/walletConfigs.js +277 -0
  356. package/build/connectkit/src/wallets/walletConfigs.js.map +1 -0
  357. package/build/connectkit/src/world-mini-app/WorldPayButton.js +148 -0
  358. package/build/connectkit/src/world-mini-app/WorldPayButton.js.map +1 -0
  359. package/build/connectkit/src/world-mini-app/promptWorldPayment.js +59 -0
  360. package/build/connectkit/src/world-mini-app/promptWorldPayment.js.map +1 -0
  361. package/build/connectkit/src/world.js +2 -0
  362. package/build/connectkit/src/world.js.map +1 -0
  363. package/build/package.json.js +2 -2
  364. package/build/pay-common/src/chain.js +9 -0
  365. package/build/pay-common/src/chain.js.map +1 -0
  366. package/build/src/assets/coins.js +43 -0
  367. package/build/src/assets/coins.js.map +1 -0
  368. package/build/src/components/Common/CopyToClipboard/index.js +33 -0
  369. package/build/src/components/Common/CopyToClipboard/index.js.map +1 -0
  370. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +1 -1
  371. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -1
  372. package/build/src/components/DaimoPayModal/index.js +23 -3
  373. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  374. package/build/src/components/Pages/DownloadApp/index.js +35 -0
  375. package/build/src/components/Pages/DownloadApp/index.js.map +1 -0
  376. package/build/src/components/Pages/SelectMethod/index.js +5 -3
  377. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  378. package/build/src/components/Pages/SelectToken/index.js +3 -1
  379. package/build/src/components/Pages/SelectToken/index.js.map +1 -1
  380. package/build/src/localizations/locales/en-US.js +1 -1
  381. package/build/src/localizations/locales/en-US.js.map +1 -1
  382. package/build/src/localizations/locales/es-ES.js +1 -1
  383. package/build/src/localizations/locales/es-ES.js.map +1 -1
  384. package/build/src/wallets/useWallets.js.map +1 -1
  385. package/build/types-20835014.d.ts +68 -0
  386. package/package.json +2 -2
@@ -0,0 +1,503 @@
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
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,89 @@
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
@@ -0,0 +1 @@
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":";;;;;;;;;;;;AAqBA,MAAM,kBAA4B,MAAM;AACtC,EAAA,MAAM,UAAU,aAAc,EAAA,CAAA;AAC9B,EAAM,MAAA,EAAE,aAAe,EAAA,YAAA,EAAiB,GAAA,OAAA,CAAA;AACxC,EAAM,MAAA,EAAE,QAAS,EAAA,GAAI,WAAY,EAAA,CAAA;AACjC,EAAA,MAAM,UAAU,UAAW,EAAA,CAAA;AAC3B,EAAA,MAAM,EAAE,sBAAA,EAAwB,eAAiB,EAAA,qBAAA,EAC/C,GAAA,YAAA,CAAA;AAEF,EAAA,IAAI,UAAa,GAAA,KAAA,CAAA;AACjB,EAAA,IAAI,sBAAwB,EAAA;AAC1B,IAAa,UAAA,GAAA,sBAAA,CAAuB,OAAO,sBAAuB,CAAA,QAAA,CAAA;AAAA,GACpE;AAEA,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,SAAwB,IAAI,CAAA,CAAA;AAElE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,sBAAwB,EAAA,OAAA;AAC7B,IAAA,eAAA,CAAgB,sBAAuB,CAAA,EAAE,CAAE,CAAA,IAAA,CAAK,CAAC,GAAQ,KAAA;AACvD,MAAA,cAAA,CAAe,GAAG,CAAA,CAAA;AAClB,MAAA,IAAI,CAAC,iCAAmC,EAAA;AACtC,QAAA,kBAAA,CAAmB,GAAG,CAAA,CAAA;AAAA,OACxB;AAAA,KACD,CAAA,CAAA;AAAA,GACH,EAAG,CAAC,sBAAsB,CAAC,CAAA,CAAA;AAE3B,EAAM,MAAA,kBAAA,GAAqB,CAAC,GAAgB,KAAA;AAC1C,IAAI,IAAA,CAAC,cAAc,QAAU,EAAA;AAE3B,MAAO,MAAA,CAAA,IAAA,CAAK,KAAK,QAAQ,CAAA,CAAA;AAAA,KACpB,MAAA;AAGL,MAAA,IAAI,KAAQ,GAAA,GAAA,CAAA;AACZ,MAAA,IAAI,MAAS,GAAA,GAAA,CAAA;AACb,MAAA,MAAM,OAAO,IAAK,CAAA,GAAA;AAAA,QAChB,CAAA;AAAA,QACA,KAAK,KAAO,CAAA,CAAA,MAAA,CAAO,aAAa,KAAS,IAAA,CAAC,IAAI,MAAO,CAAA,OAAA;AAAA,OACvD,CAAA;AACA,MAAA,MAAM,MAAM,IAAK,CAAA,GAAA;AAAA,QACf,CAAA;AAAA,QACA,KAAK,KAAO,CAAA,CAAA,MAAA,CAAO,cAAc,MAAU,IAAA,CAAC,IAAI,MAAO,CAAA,OAAA;AAAA,OACzD,CAAA;AAEA,MAAO,MAAA,CAAA,IAAA;AAAA,QACL,GAAA;AAAA,QACA,aAAA;AAAA,QACA,SAAS,KAAK,CAAA,QAAA,EAAW,MAAM,CAAS,MAAA,EAAA,IAAI,QAAQ,GAAG,CAAA,eAAA,CAAA;AAAA,OACzD,CAAA;AAAA,KACF;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,uBAAuB,qBAAuB,EAAA,MAAA,CAAA;AAEpD,EAAA,SAAA,CAAU,MAAM;AACd,IAAc,aAAA,EAAA,CAAA;AAAA,GACb,EAAA,CAAC,oBAAsB,EAAA,WAAW,CAAC,CAAA,CAAA;AAEtC,EAAA,IAAI,CAAC,sBAAwB,EAAA;AAC3B,IAAA,2BAAQ,WAAY,EAAA,EAAA,CAAA,CAAA;AAAA,GACtB;AAEA,EAAA,OAAO,iCAAkC,CAAA,sBAAA,CAAuB,EAAE,CAAA,IAChE,CAAC,QAAA,mBACA,GAAA,CAAA,iBAAA,EAAA,EAAkB,WAAa,EAAA,WAAA,IAAe,EAAI,EAAA,CAAA,wBAElD,WACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,sBAAA;AAAA,MAAA;AAAA,QACC,SAAS,sBAAuB,CAAA,OAAA;AAAA,QAChC,WAAW,sBAAuB,CAAA,SAAA;AAAA,OAAA;AAAA,KACpC;AAAA,oBACA,IAAA,CAAC,gBAAa,KAAO,EAAA,EAAE,YAAY,EAAI,EAAA,WAAA,EAAa,IAClD,EAAA,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,OAAA,EAAA,EAAS,kBAAQ,iBAAkB,EAAA,CAAA;AAAA,MACnC,qBAAA,oBACE,GAAA,CAAA,SAAA,EAAA,EAAU,KAAO,EAAA,EAAE,WAAW,EAAI,EAAA,YAAA,EAAc,EAAG,EAAA,EACjD,QACH,EAAA,qBAAA,EAAA,CAAA;AAAA,KAEJ,EAAA,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,sBAAO,gBAAiB,EAAA,EAAA,CAAA;AAAA,QACxB,SAAS,MAAM;AACb,UAAA,IAAI,WAAa,EAAA;AACf,YAAA,kBAAA,CAAmB,WAAW,CAAA,CAAA;AAAA,WAChC;AAAA,SACF;AAAA,QAEC,QAAuB,EAAA,sBAAA,CAAA,GAAA;AAAA,OAAA;AAAA,KAC1B;AAAA,GACF,EAAA,CAAA,CAAA;AAEJ;;;;"}