@daimo/pay 1.15.0 → 1.16.1

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 (375) hide show
  1. package/build/components/DaimoPayButton/index.d.ts +13 -0
  2. package/build/hooks/useConnect.d.ts +8 -8
  3. package/build/hooks/useLocales.d.ts +2 -1
  4. package/build/hooks/useWalletPaymentOptions.d.ts +12 -1
  5. package/build/index.d.ts +626 -15
  6. package/build/localizations/locales/en-US.d.ts +2 -0
  7. package/build/localizations/locales/index.d.ts +1 -0
  8. package/build/package.json.js +6 -4
  9. package/build/package.json.js.map +1 -1
  10. package/build/payment/paymentFsm.d.ts +5 -0
  11. package/build/payment/paymentUtils.d.ts +6 -0
  12. package/build/src/assets/MobileWithLogos.js +320 -1
  13. package/build/src/assets/MobileWithLogos.js.map +1 -1
  14. package/build/src/assets/ScanIconWithLogos.js +216 -10
  15. package/build/src/assets/ScanIconWithLogos.js.map +1 -1
  16. package/build/src/assets/browsers.js +963 -7
  17. package/build/src/assets/browsers.js.map +1 -1
  18. package/build/src/assets/chains.js +633 -103
  19. package/build/src/assets/chains.js.map +1 -1
  20. package/build/src/assets/coins.js +38 -1
  21. package/build/src/assets/coins.js.map +1 -1
  22. package/build/src/assets/crepe.js +35 -1
  23. package/build/src/assets/crepe.js.map +1 -1
  24. package/build/src/assets/icons.js +258 -15
  25. package/build/src/assets/icons.js.map +1 -1
  26. package/build/src/assets/logos.js +1510 -140
  27. package/build/src/assets/logos.js.map +1 -1
  28. package/build/src/assets/wallet.js +32 -1
  29. package/build/src/assets/wallet.js.map +1 -1
  30. package/build/src/assets/wave.js +41 -1
  31. package/build/src/assets/wave.js.map +1 -1
  32. package/build/src/components/Common/Alert/index.js +4 -1
  33. package/build/src/components/Common/Alert/index.js.map +1 -1
  34. package/build/src/components/Common/Alert/styles.js +4 -4
  35. package/build/src/components/Common/Alert/styles.js.map +1 -1
  36. package/build/src/components/Common/AmountInput/AmountInputField.js +29 -18
  37. package/build/src/components/Common/AmountInput/AmountInputField.js.map +1 -1
  38. package/build/src/components/Common/AmountInput/index.js +112 -99
  39. package/build/src/components/Common/AmountInput/index.js.map +1 -1
  40. package/build/src/components/Common/Avatar/index.js +63 -51
  41. package/build/src/components/Common/Avatar/index.js.map +1 -1
  42. package/build/src/components/Common/Avatar/styles.js +9 -14
  43. package/build/src/components/Common/Avatar/styles.js.map +1 -1
  44. package/build/src/components/Common/BrowserIcon/index.js +15 -14
  45. package/build/src/components/Common/BrowserIcon/index.js.map +1 -1
  46. package/build/src/components/Common/BrowserIcon/styles.js +1 -1
  47. package/build/src/components/Common/BrowserIcon/styles.js.map +1 -1
  48. package/build/src/components/Common/Button/index.js +131 -25
  49. package/build/src/components/Common/Button/index.js.map +1 -1
  50. package/build/src/components/Common/Button/styles.js +20 -24
  51. package/build/src/components/Common/Button/styles.js.map +1 -1
  52. package/build/src/components/Common/Chain/index.js +130 -14
  53. package/build/src/components/Common/Chain/index.js.map +1 -1
  54. package/build/src/components/Common/Chain/styles.js +9 -13
  55. package/build/src/components/Common/Chain/styles.js.map +1 -1
  56. package/build/src/components/Common/ChainSelectList/index.js +232 -89
  57. package/build/src/components/Common/ChainSelectList/index.js.map +1 -1
  58. package/build/src/components/Common/ChainSelectList/styles.js +11 -13
  59. package/build/src/components/Common/ChainSelectList/styles.js.map +1 -1
  60. package/build/src/components/Common/CircleTimer.js +85 -41
  61. package/build/src/components/Common/CircleTimer.js.map +1 -1
  62. package/build/src/components/Common/ConnectorList/index.js +106 -80
  63. package/build/src/components/Common/ConnectorList/index.js.map +1 -1
  64. package/build/src/components/Common/ConnectorList/styles.js +28 -36
  65. package/build/src/components/Common/ConnectorList/styles.js.map +1 -1
  66. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js +16 -9
  67. package/build/src/components/Common/CopyToClipboard/CopyToClipboardIcon.js.map +1 -1
  68. package/build/src/components/Common/CopyToClipboard/index.js +3 -5
  69. package/build/src/components/Common/CopyToClipboard/index.js.map +1 -1
  70. package/build/src/components/Common/CustomQRCode/QRCode.js +120 -57
  71. package/build/src/components/Common/CustomQRCode/QRCode.js.map +1 -1
  72. package/build/src/components/Common/CustomQRCode/index.js +60 -10
  73. package/build/src/components/Common/CustomQRCode/index.js.map +1 -1
  74. package/build/src/components/Common/CustomQRCode/styles.js +6 -6
  75. package/build/src/components/Common/CustomQRCode/styles.js.map +1 -1
  76. package/build/src/components/Common/FitText/index.js +24 -17
  77. package/build/src/components/Common/FitText/index.js.map +1 -1
  78. package/build/src/components/Common/Modal/index.js +481 -267
  79. package/build/src/components/Common/Modal/index.js.map +1 -1
  80. package/build/src/components/Common/Modal/styles.js +44 -48
  81. package/build/src/components/Common/Modal/styles.js.map +1 -1
  82. package/build/src/components/Common/OptionsList/index.js +75 -33
  83. package/build/src/components/Common/OptionsList/index.js.map +1 -1
  84. package/build/src/components/Common/OptionsList/styles.js +7 -8
  85. package/build/src/components/Common/OptionsList/styles.js.map +1 -1
  86. package/build/src/components/Common/OrderHeader/index.js +109 -65
  87. package/build/src/components/Common/OrderHeader/index.js.map +1 -1
  88. package/build/src/components/Common/PaymentBreakdown/index.js +29 -7
  89. package/build/src/components/Common/PaymentBreakdown/index.js.map +1 -1
  90. package/build/src/components/Common/Portal/index.js +21 -22
  91. package/build/src/components/Common/Portal/index.js.map +1 -1
  92. package/build/src/components/Common/PoweredByFooter/index.js +39 -21
  93. package/build/src/components/Common/PoweredByFooter/index.js.map +1 -1
  94. package/build/src/components/Common/ScrollArea/index.js +107 -52
  95. package/build/src/components/Common/ScrollArea/index.js.map +1 -1
  96. package/build/src/components/Common/ScrollArea/styles.js +7 -11
  97. package/build/src/components/Common/ScrollArea/styles.js.map +1 -1
  98. package/build/src/components/Common/SelectAnotherMethodButton/index.js +67 -55
  99. package/build/src/components/Common/SelectAnotherMethodButton/index.js.map +1 -1
  100. package/build/src/components/Common/Spinner/index.js +56 -16
  101. package/build/src/components/Common/Spinner/index.js.map +1 -1
  102. package/build/src/components/Common/Spinner/styles.js +2 -2
  103. package/build/src/components/Common/Spinner/styles.js.map +1 -1
  104. package/build/src/components/Common/SwitchButton/index.js +18 -15
  105. package/build/src/components/Common/SwitchButton/index.js.map +1 -1
  106. package/build/src/components/Common/ThemedButton/index.js +37 -16
  107. package/build/src/components/Common/ThemedButton/index.js.map +1 -1
  108. package/build/src/components/Common/ThemedButton/styles.js +2 -2
  109. package/build/src/components/Common/ThemedButton/styles.js.map +1 -1
  110. package/build/src/components/Common/TokenChainLogo/index.js +14 -8
  111. package/build/src/components/Common/TokenChainLogo/index.js.map +1 -1
  112. package/build/src/components/Common/Tooltip/index.js +115 -83
  113. package/build/src/components/Common/Tooltip/index.js.map +1 -1
  114. package/build/src/components/Common/Tooltip/styles.js +8 -8
  115. package/build/src/components/Common/Tooltip/styles.js.map +1 -1
  116. package/build/src/components/Common/WalletChainLogo/index.js +13 -6
  117. package/build/src/components/Common/WalletChainLogo/index.js.map +1 -1
  118. package/build/src/components/DaimoPayButton/index.js +170 -176
  119. package/build/src/components/DaimoPayButton/index.js.map +1 -1
  120. package/build/src/components/DaimoPayButton/styles.js +4 -4
  121. package/build/src/components/DaimoPayButton/styles.js.map +1 -1
  122. package/build/src/components/DaimoPayModal/ConnectUsing.js +50 -24
  123. package/build/src/components/DaimoPayModal/ConnectUsing.js.map +1 -1
  124. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js +303 -163
  125. package/build/src/components/DaimoPayModal/ConnectWithInjector/index.js.map +1 -1
  126. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js +10 -12
  127. package/build/src/components/DaimoPayModal/ConnectWithInjector/styles.js.map +1 -1
  128. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js +69 -39
  129. package/build/src/components/DaimoPayModal/ConnectWithQRCode.js.map +1 -1
  130. package/build/src/components/DaimoPayModal/index.js +409 -416
  131. package/build/src/components/DaimoPayModal/index.js.map +1 -1
  132. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js +15 -11
  133. package/build/src/components/DaimoPayThemeProvider/DaimoPayThemeProvider.js.map +1 -1
  134. package/build/src/components/Pages/About/graphics.js +796 -130
  135. package/build/src/components/Pages/About/graphics.js.map +1 -1
  136. package/build/src/components/Pages/About/index.js +203 -110
  137. package/build/src/components/Pages/About/index.js.map +1 -1
  138. package/build/src/components/Pages/About/styles.js +11 -15
  139. package/build/src/components/Pages/About/styles.js.map +1 -1
  140. package/build/src/components/Pages/Confirmation/index.js +72 -41
  141. package/build/src/components/Pages/Confirmation/index.js.map +1 -1
  142. package/build/src/components/Pages/Connectors/index.js +50 -16
  143. package/build/src/components/Pages/Connectors/index.js.map +1 -1
  144. package/build/src/components/Pages/Connectors/styles.js +10 -10
  145. package/build/src/components/Pages/Connectors/styles.js.map +1 -1
  146. package/build/src/components/Pages/DownloadApp/index.js +23 -18
  147. package/build/src/components/Pages/DownloadApp/index.js.map +1 -1
  148. package/build/src/components/Pages/Error/index.js +27 -15
  149. package/build/src/components/Pages/Error/index.js.map +1 -1
  150. package/build/src/components/Pages/MobileConnectors/index.js +50 -44
  151. package/build/src/components/Pages/MobileConnectors/index.js.map +1 -1
  152. package/build/src/components/Pages/MobileConnectors/styles.js +9 -11
  153. package/build/src/components/Pages/MobileConnectors/styles.js.map +1 -1
  154. package/build/src/components/Pages/Onboarding/index.js +20 -4
  155. package/build/src/components/Pages/Onboarding/index.js.map +1 -1
  156. package/build/src/components/Pages/Onboarding/styles.js +13 -13
  157. package/build/src/components/Pages/Onboarding/styles.js.map +1 -1
  158. package/build/src/components/Pages/PayWithToken/index.js +133 -122
  159. package/build/src/components/Pages/PayWithToken/index.js.map +1 -1
  160. package/build/src/components/Pages/SelectAmount/index.js +12 -5
  161. package/build/src/components/Pages/SelectAmount/index.js.map +1 -1
  162. package/build/src/components/Pages/SelectDepositAddressAmount/index.js +56 -38
  163. package/build/src/components/Pages/SelectDepositAddressAmount/index.js.map +1 -1
  164. package/build/src/components/Pages/SelectDepositAddressChain/index.js +57 -40
  165. package/build/src/components/Pages/SelectDepositAddressChain/index.js.map +1 -1
  166. package/build/src/components/Pages/SelectExchange/index.js +29 -24
  167. package/build/src/components/Pages/SelectExchange/index.js.map +1 -1
  168. package/build/src/components/Pages/SelectExternalAmount/index.js +57 -41
  169. package/build/src/components/Pages/SelectExternalAmount/index.js.map +1 -1
  170. package/build/src/components/Pages/SelectMethod/index.js +201 -183
  171. package/build/src/components/Pages/SelectMethod/index.js.map +1 -1
  172. package/build/src/components/Pages/SelectToken/index.js +72 -46
  173. package/build/src/components/Pages/SelectToken/index.js.map +1 -1
  174. package/build/src/components/Pages/SelectWalletAmount/index.js +40 -32
  175. package/build/src/components/Pages/SelectWalletAmount/index.js.map +1 -1
  176. package/build/src/components/Pages/SelectWalletChain/index.js +40 -36
  177. package/build/src/components/Pages/SelectWalletChain/index.js.map +1 -1
  178. package/build/src/components/Pages/SelectZKP/index.js +29 -24
  179. package/build/src/components/Pages/SelectZKP/index.js.map +1 -1
  180. package/build/src/components/Pages/Solana/ConnectorSolana/index.js +60 -45
  181. package/build/src/components/Pages/Solana/ConnectorSolana/index.js.map +1 -1
  182. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js +73 -61
  183. package/build/src/components/Pages/Solana/PayWithSolanaToken/index.js.map +1 -1
  184. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js +12 -5
  185. package/build/src/components/Pages/Solana/SelectSolanaAmount/index.js.map +1 -1
  186. package/build/src/components/Pages/SwitchNetworks/index.js +29 -10
  187. package/build/src/components/Pages/SwitchNetworks/index.js.map +1 -1
  188. package/build/src/components/Pages/WaitingDepositAddress/index.js +339 -178
  189. package/build/src/components/Pages/WaitingDepositAddress/index.js.map +1 -1
  190. package/build/src/components/Pages/WaitingExternal/index.js +69 -46
  191. package/build/src/components/Pages/WaitingExternal/index.js.map +1 -1
  192. package/build/src/components/Pages/WaitingWallet/index.js +37 -16
  193. package/build/src/components/Pages/WaitingWallet/index.js.map +1 -1
  194. package/build/src/components/Spinners/CircleSpinner/index.js +96 -7
  195. package/build/src/components/Spinners/CircleSpinner/index.js.map +1 -1
  196. package/build/src/components/Spinners/CircleSpinner/styles.js +6 -7
  197. package/build/src/components/Spinners/CircleSpinner/styles.js.map +1 -1
  198. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js +18 -9
  199. package/build/src/components/Spinners/ExternalPaymentSpinner/index.js.map +1 -1
  200. package/build/src/components/Spinners/SquircleSpinner/index.js +60 -7
  201. package/build/src/components/Spinners/SquircleSpinner/index.js.map +1 -1
  202. package/build/src/components/Spinners/SquircleSpinner/styles.js +4 -4
  203. package/build/src/components/Spinners/SquircleSpinner/styles.js.map +1 -1
  204. package/build/src/components/Spinners/TokenLogoSpinner/index.js +12 -1
  205. package/build/src/components/Spinners/TokenLogoSpinner/index.js.map +1 -1
  206. package/build/src/components/Spinners/TokenLogoSpinner/styles.js +1 -1
  207. package/build/src/components/Spinners/TokenLogoSpinner/styles.js.map +1 -1
  208. package/build/src/components/Spinners/WalletPaymentSpinner/index.js +27 -20
  209. package/build/src/components/Spinners/WalletPaymentSpinner/index.js.map +1 -1
  210. package/build/src/components/Spinners/styles.js +3 -4
  211. package/build/src/components/Spinners/styles.js.map +1 -1
  212. package/build/src/constants/defaultTheme.js +1 -1
  213. package/build/src/constants/defaultTheme.js.map +1 -1
  214. package/build/src/constants/routes.js +29 -30
  215. package/build/src/constants/routes.js.map +1 -1
  216. package/build/src/defaultConfig.js +49 -46
  217. package/build/src/defaultConfig.js.map +1 -1
  218. package/build/src/defaultConnectors.js +32 -19
  219. package/build/src/defaultConnectors.js.map +1 -1
  220. package/build/src/hooks/useChainIsSupported.js +3 -5
  221. package/build/src/hooks/useChainIsSupported.js.map +1 -1
  222. package/build/src/hooks/useChains.js +3 -4
  223. package/build/src/hooks/useChains.js.map +1 -1
  224. package/build/src/hooks/useConnect.js +51 -39
  225. package/build/src/hooks/useConnect.js.map +1 -1
  226. package/build/src/hooks/useConnectCallback.js +15 -12
  227. package/build/src/hooks/useConnectCallback.js.map +1 -1
  228. package/build/src/hooks/useConnectors.js +2 -2
  229. package/build/src/hooks/useConnectors.js.map +1 -1
  230. package/build/src/hooks/useDaimoPay.js +98 -82
  231. package/build/src/hooks/useDaimoPay.js.map +1 -1
  232. package/build/src/hooks/useDaimoPayStatus.js +4 -15
  233. package/build/src/hooks/useDaimoPayStatus.js.map +1 -1
  234. package/build/src/hooks/useDaimoPayUI.js +7 -7
  235. package/build/src/hooks/useDaimoPayUI.js.map +1 -1
  236. package/build/src/hooks/useDepositAddressOptions.js +29 -25
  237. package/build/src/hooks/useDepositAddressOptions.js.map +1 -1
  238. package/build/src/hooks/useEnsFallbackConfig.js +5 -5
  239. package/build/src/hooks/useEnsFallbackConfig.js.map +1 -1
  240. package/build/src/hooks/useExternalPaymentOptions.js +57 -52
  241. package/build/src/hooks/useExternalPaymentOptions.js.map +1 -1
  242. package/build/src/hooks/useFitText.js +120 -135
  243. package/build/src/hooks/useFitText.js.map +1 -1
  244. package/build/src/hooks/useFocusTrap.js +33 -37
  245. package/build/src/hooks/useFocusTrap.js.map +1 -1
  246. package/build/src/hooks/useIsMobile.js +3 -3
  247. package/build/src/hooks/useIsMobile.js.map +1 -1
  248. package/build/src/hooks/useIsMounted.js +3 -5
  249. package/build/src/hooks/useIsMounted.js.map +1 -1
  250. package/build/src/hooks/useLastConnector.js +15 -15
  251. package/build/src/hooks/useLastConnector.js.map +1 -1
  252. package/build/src/hooks/useLocales.js +44 -42
  253. package/build/src/hooks/useLocales.js.map +1 -1
  254. package/build/src/hooks/useLockBodyScroll.js +38 -44
  255. package/build/src/hooks/useLockBodyScroll.js.map +1 -1
  256. package/build/src/hooks/useOrderUsdLimits.js +17 -19
  257. package/build/src/hooks/useOrderUsdLimits.js.map +1 -1
  258. package/build/src/hooks/usePayContext.js +3 -5
  259. package/build/src/hooks/usePayContext.js.map +1 -1
  260. package/build/src/hooks/usePaymentState.js +351 -321
  261. package/build/src/hooks/usePaymentState.js.map +1 -1
  262. package/build/src/hooks/usePrevious.js +6 -7
  263. package/build/src/hooks/usePrevious.js.map +1 -1
  264. package/build/src/hooks/useSolanaPaymentOptions.js +33 -33
  265. package/build/src/hooks/useSolanaPaymentOptions.js.map +1 -1
  266. package/build/src/hooks/useTokenOptions.js +131 -95
  267. package/build/src/hooks/useTokenOptions.js.map +1 -1
  268. package/build/src/hooks/useUntronAvailability.js +26 -34
  269. package/build/src/hooks/useUntronAvailability.js.map +1 -1
  270. package/build/src/hooks/useWalletPaymentOptions.js +86 -61
  271. package/build/src/hooks/useWalletPaymentOptions.js.map +1 -1
  272. package/build/src/hooks/useWindowSize.js +16 -16
  273. package/build/src/hooks/useWindowSize.js.map +1 -1
  274. package/build/src/localizations/index.js +28 -31
  275. package/build/src/localizations/index.js.map +1 -1
  276. package/build/src/localizations/locales/ar-AE.js +88 -88
  277. package/build/src/localizations/locales/ar-AE.js.map +1 -1
  278. package/build/src/localizations/locales/ca-AD.js +88 -88
  279. package/build/src/localizations/locales/ca-AD.js.map +1 -1
  280. package/build/src/localizations/locales/ee-EE.js +96 -88
  281. package/build/src/localizations/locales/ee-EE.js.map +1 -1
  282. package/build/src/localizations/locales/en-US.js +134 -124
  283. package/build/src/localizations/locales/en-US.js.map +1 -1
  284. package/build/src/localizations/locales/es-ES.js +126 -124
  285. package/build/src/localizations/locales/es-ES.js.map +1 -1
  286. package/build/src/localizations/locales/fa-IR.js +88 -88
  287. package/build/src/localizations/locales/fa-IR.js.map +1 -1
  288. package/build/src/localizations/locales/fr-FR.js +88 -88
  289. package/build/src/localizations/locales/fr-FR.js.map +1 -1
  290. package/build/src/localizations/locales/ja-JP.js +88 -88
  291. package/build/src/localizations/locales/ja-JP.js.map +1 -1
  292. package/build/src/localizations/locales/pt-BR.js +96 -88
  293. package/build/src/localizations/locales/pt-BR.js.map +1 -1
  294. package/build/src/localizations/locales/ru-RU.js +92 -88
  295. package/build/src/localizations/locales/ru-RU.js.map +1 -1
  296. package/build/src/localizations/locales/tr-TR.js +96 -88
  297. package/build/src/localizations/locales/tr-TR.js.map +1 -1
  298. package/build/src/localizations/locales/vi-VN.js +96 -88
  299. package/build/src/localizations/locales/vi-VN.js.map +1 -1
  300. package/build/src/localizations/locales/zh-CN.js +88 -88
  301. package/build/src/localizations/locales/zh-CN.js.map +1 -1
  302. package/build/src/payment/paymentEffects.js +237 -264
  303. package/build/src/payment/paymentEffects.js.map +1 -1
  304. package/build/src/payment/paymentFsm.js +167 -187
  305. package/build/src/payment/paymentFsm.js.map +1 -1
  306. package/build/src/payment/paymentStore.js +8 -10
  307. package/build/src/payment/paymentStore.js.map +1 -1
  308. package/build/src/payment/paymentUtils.js +10 -0
  309. package/build/src/payment/paymentUtils.js.map +1 -0
  310. package/build/src/provider/DaimoPayProvider.js +258 -245
  311. package/build/src/provider/DaimoPayProvider.js.map +1 -1
  312. package/build/src/provider/PayContext.js +0 -1
  313. package/build/src/provider/PayContext.js.map +1 -1
  314. package/build/src/provider/PaymentProvider.js +18 -17
  315. package/build/src/provider/PaymentProvider.js.map +1 -1
  316. package/build/src/provider/SolanaContextProvider.js +6 -3
  317. package/build/src/provider/SolanaContextProvider.js.map +1 -1
  318. package/build/src/provider/Web3ContextProvider.js +23 -23
  319. package/build/src/provider/Web3ContextProvider.js.map +1 -1
  320. package/build/src/stateStore.js +28 -74
  321. package/build/src/stateStore.js.map +1 -1
  322. package/build/src/styles/defaultTheme.js +64 -73
  323. package/build/src/styles/defaultTheme.js.map +1 -1
  324. package/build/src/styles/index.js +202 -217
  325. package/build/src/styles/index.js.map +1 -1
  326. package/build/src/styles/styled/index.js +0 -10
  327. package/build/src/styles/styled/index.js.map +1 -1
  328. package/build/src/styles/themes/base.js +136 -136
  329. package/build/src/styles/themes/base.js.map +1 -1
  330. package/build/src/styles/themes/index.js.map +1 -1
  331. package/build/src/styles/themes/midnight.js +71 -71
  332. package/build/src/styles/themes/midnight.js.map +1 -1
  333. package/build/src/styles/themes/minimal.js +75 -75
  334. package/build/src/styles/themes/minimal.js.map +1 -1
  335. package/build/src/styles/themes/nouns.js +76 -76
  336. package/build/src/styles/themes/nouns.js.map +1 -1
  337. package/build/src/styles/themes/retro.js +88 -88
  338. package/build/src/styles/themes/retro.js.map +1 -1
  339. package/build/src/styles/themes/rounded.js +84 -84
  340. package/build/src/styles/themes/rounded.js.map +1 -1
  341. package/build/src/styles/themes/soft.js +66 -66
  342. package/build/src/styles/themes/soft.js.map +1 -1
  343. package/build/src/styles/themes/web95.js +95 -95
  344. package/build/src/styles/themes/web95.js.map +1 -1
  345. package/build/src/utils/exports.js +0 -1
  346. package/build/src/utils/exports.js.map +1 -1
  347. package/build/src/utils/format.js +25 -63
  348. package/build/src/utils/format.js.map +1 -1
  349. package/build/src/utils/index.js +23 -20
  350. package/build/src/utils/index.js.map +1 -1
  351. package/build/src/utils/p3.js +8 -9
  352. package/build/src/utils/p3.js.map +1 -1
  353. package/build/src/utils/platform.js +6 -8
  354. package/build/src/utils/platform.js.map +1 -1
  355. package/build/src/utils/polling.js +31 -31
  356. package/build/src/utils/polling.js.map +1 -1
  357. package/build/src/utils/supportUrl.js +9 -9
  358. package/build/src/utils/supportUrl.js.map +1 -1
  359. package/build/src/utils/trpc.js +11 -11
  360. package/build/src/utils/trpc.js.map +1 -1
  361. package/build/src/utils/validateInput.js +9 -29
  362. package/build/src/utils/validateInput.js.map +1 -1
  363. package/build/src/wallets/index.js +13 -22
  364. package/build/src/wallets/index.js.map +1 -1
  365. package/build/src/wallets/useWallets.js +183 -181
  366. package/build/src/wallets/useWallets.js.map +1 -1
  367. package/build/src/wallets/walletConfigs.js +230 -235
  368. package/build/src/wallets/walletConfigs.js.map +1 -1
  369. package/build/src/world-mini-app/WorldPayButton.js +113 -118
  370. package/build/src/world-mini-app/WorldPayButton.js.map +1 -1
  371. package/build/src/world-mini-app/promptWorldPayment.js +49 -47
  372. package/build/src/world-mini-app/promptWorldPayment.js.map +1 -1
  373. package/build/types-7ed033b6.d.ts +66 -0
  374. package/build/world.d.ts +89 -1
  375. package/package.json +6 -4
@@ -1,7 +1,7 @@
1
1
  import { motion } from 'framer-motion';
2
2
  import styled from '../../styles/styled/index.js';
3
3
 
4
- const TextContainer = styled(motion.div) `
4
+ const TextContainer = styled(motion.div)`
5
5
  top: 0;
6
6
  bottom: 0;
7
7
  left: 0;
@@ -10,7 +10,7 @@ const TextContainer = styled(motion.div) `
10
10
  justify-content: center;
11
11
  white-space: nowrap;
12
12
  `;
13
- styled(motion.div) `
13
+ styled(motion.div)`
14
14
  position: relative;
15
15
  width: 24px;
16
16
  height: 24px;
@@ -20,7 +20,7 @@ styled(motion.div) `
20
20
  display: block;
21
21
  }
22
22
  `;
23
- styled(motion.div) `
23
+ styled(motion.div)`
24
24
  pointer-events: none;
25
25
  user-select: none;
26
26
  position: relative;
@@ -28,7 +28,7 @@ styled(motion.div) `
28
28
  height: 24px;
29
29
  margin-right: 8px;
30
30
  `;
31
- styled(motion.div) `
31
+ styled(motion.div)`
32
32
  z-index: 1;
33
33
  position: absolute;
34
34
  inset: 0;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sources":["../../../../src/components/DaimoPayButton/styles.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGa,MAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA,CAAA;;;;;;;;EAQ7C;AAE4B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA,CAAA;;;;;;;;;EAS9C;AAC2B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA,CAAA;;;;;;;EAO7C;AAEyC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"styles.js","sources":["../../../../src/components/DaimoPayButton/styles.ts"],"sourcesContent":["import { motion } from \"framer-motion\";\nimport styled from \"./../../styles/styled\";\n\nexport const TextContainer = styled(motion.div)`\n top: 0;\n bottom: 0;\n left: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n`;\n\nexport const ChainContainer = styled(motion.div)`\n position: relative;\n width: 24px;\n height: 24px;\n border-radius: 12px;\n overflow: hidden;\n svg {\n display: block;\n }\n`;\nexport const IconContainer = styled(motion.div)`\n pointer-events: none;\n user-select: none;\n position: relative;\n width: 24px;\n height: 24px;\n margin-right: 8px;\n`;\n\nexport const UnsupportedNetworkContainer = styled(motion.div)`\n z-index: 1;\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 100%;\n box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.02);\n background: var(--ck-body-color-danger, red);\n color: #fff;\n svg {\n display: block;\n position: relative;\n top: -1px;\n }\n`;\n"],"names":[],"mappings":";;;AAGa,MAAA,aAAA,GAAgB,MAAO,CAAA,MAAA,CAAO,GAAG,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA;AAUhB,MAAO,CAAA,MAAA,CAAO,GAAG,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA;AAUlB,MAAO,CAAA,MAAA,CAAO,GAAG,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAA;AASH,MAAO,CAAA,MAAA,CAAO,GAAG,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;"}
@@ -9,33 +9,59 @@ import Alert from '../Common/Alert/index.js';
9
9
  import { contentVariants } from '../Common/Modal/index.js';
10
10
 
11
11
  const states = {
12
- QRCODE: "qrcode",
13
- INJECTOR: "injector",
12
+ QRCODE: "qrcode",
13
+ INJECTOR: "injector"
14
14
  };
15
15
  const ConnectUsing = () => {
16
- const context = usePayContext();
17
- const { pendingConnectorId } = context;
18
- const wallet = useWallet(pendingConnectorId ?? "");
19
- // If cannot be scanned, display injector flow, which if extension is not installed will show CTA to install it
20
- const isQrCode = !wallet?.isInstalled;
21
- const [status, setStatus] = useState(isQrCode ? states.QRCODE : states.INJECTOR);
22
- useEffect(() => {
23
- // if no provider, change to qrcode
24
- const checkProvider = async () => {
25
- const res = await wallet?.connector?.getProvider();
26
- if (!res) {
27
- setStatus(states.QRCODE);
28
- setTimeout(context.triggerResize, 10); // delay required here for modal to resize
16
+ const context = usePayContext();
17
+ const { pendingConnectorId } = context;
18
+ const wallet = useWallet(pendingConnectorId ?? "");
19
+ const isQrCode = !wallet?.isInstalled;
20
+ const [status, setStatus] = useState(
21
+ isQrCode ? states.QRCODE : states.INJECTOR
22
+ );
23
+ useEffect(() => {
24
+ const checkProvider = async () => {
25
+ const res = await wallet?.connector?.getProvider();
26
+ if (!res) {
27
+ setStatus(states.QRCODE);
28
+ setTimeout(context.triggerResize, 10);
29
+ }
30
+ };
31
+ if (status === states.INJECTOR) checkProvider();
32
+ }, []);
33
+ if (!wallet) return /* @__PURE__ */ jsx(Alert, { children: "Connector not found" });
34
+ return /* @__PURE__ */ jsxs(AnimatePresence, { children: [
35
+ status === states.QRCODE && /* @__PURE__ */ jsx(
36
+ motion.div,
37
+ {
38
+ initial: "initial",
39
+ animate: "animate",
40
+ exit: "exit",
41
+ variants: contentVariants,
42
+ children: /* @__PURE__ */ jsx(ConnectWithQRCode, {})
43
+ },
44
+ states.QRCODE
45
+ ),
46
+ status === states.INJECTOR && /* @__PURE__ */ jsx(
47
+ motion.div,
48
+ {
49
+ initial: "initial",
50
+ animate: "animate",
51
+ exit: "exit",
52
+ variants: contentVariants,
53
+ children: /* @__PURE__ */ jsx(
54
+ ConnectWithInjector,
55
+ {
56
+ switchConnectMethod: () => {
57
+ setStatus(states.QRCODE);
29
58
  }
30
- };
31
- if (status === states.INJECTOR)
32
- checkProvider();
33
- }, []); // eslint-disable-line react-hooks/exhaustive-deps
34
- if (!wallet)
35
- return jsx(Alert, { children: "Connector not found" });
36
- return (jsxs(AnimatePresence, { children: [status === states.QRCODE && (jsx(motion.div, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsx(ConnectWithQRCode, {}) }, states.QRCODE)), status === states.INJECTOR && (jsx(motion.div, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsx(ConnectWithInjector, { switchConnectMethod: () => {
37
- setStatus(states.QRCODE);
38
- } }) }, states.INJECTOR))] }));
59
+ }
60
+ )
61
+ },
62
+ states.INJECTOR
63
+ )
64
+ ] });
39
65
  };
40
66
 
41
67
  export { ConnectUsing as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectUsing.js","sources":["../../../../src/components/DaimoPayModal/ConnectUsing.tsx"],"sourcesContent":[null],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;AAYA,MAAM,MAAM,GAAG;AACb,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEI,MAAA,YAAY,GAAG,MAAK;AACxB,IAAA,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAChC,IAAA,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC;IAEvC,MAAM,MAAM,GAAG,SAAS,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;;AAGnD,IAAA,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAEtC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAClC,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAC3C,CAAC;IAEF,SAAS,CAAC,MAAK;;AAEb,QAAA,MAAM,aAAa,GAAG,YAAW;YAC/B,MAAM,GAAG,GAAG,MAAM,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;YACnD,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACzB,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;aACvC;AACH,SAAC,CAAC;AACF,QAAA,IAAI,MAAM,KAAK,MAAM,CAAC,QAAQ;AAAE,YAAA,aAAa,EAAE,CAAC;AAClD,KAAC,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,IAAI,CAAC,MAAM;QAAE,OAAOA,GAAA,CAAC,KAAK,EAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,CAA4B,CAAC;AAEvD,IAAA,QACEC,IAAC,CAAA,eAAe,EACb,EAAA,QAAA,EAAA,CAAA,MAAM,KAAK,MAAM,CAAC,MAAM,KACvBD,GAAC,CAAA,MAAM,CAAC,GAAG,IAET,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,EAEzB,QAAA,EAAAA,GAAA,CAAC,iBAAiB,EAAA,EAAA,CAAG,IANhB,MAAM,CAAC,MAAM,CAOP,CACd,EACA,MAAM,KAAK,MAAM,CAAC,QAAQ,KACzBA,GAAA,CAAC,MAAM,CAAC,GAAG,EAET,EAAA,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,EAAA,QAAA,EAEzBA,IAAC,mBAAmB,EAAA,EAClB,mBAAmB,EAAE,MAAK;AACxB,wBAAA,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;qBAC1B,EAAA,CACD,IAVG,MAAM,CAAC,QAAQ,CAWT,CACd,CACe,EAAA,CAAA,EAClB;AACJ;;;;"}
1
+ {"version":3,"file":"ConnectUsing.js","sources":["../../../../src/components/DaimoPayModal/ConnectUsing.tsx"],"sourcesContent":["import { AnimatePresence, motion } from \"framer-motion\";\nimport { useEffect, useState } from \"react\";\n\nimport { usePayContext } from \"../../hooks/usePayContext\";\nimport { useWallet } from \"../../wallets/useWallets\";\n\nimport ConnectWithInjector from \"./ConnectWithInjector\";\nimport ConnectWithQRCode from \"./ConnectWithQRCode\";\n\nimport Alert from \"../Common/Alert\";\nimport { contentVariants } from \"../Common/Modal\";\n\nconst states = {\n QRCODE: \"qrcode\",\n INJECTOR: \"injector\",\n};\n\nconst ConnectUsing = () => {\n const context = usePayContext();\n const { pendingConnectorId } = context;\n\n const wallet = useWallet(pendingConnectorId ?? \"\");\n // If cannot be scanned, display injector flow, which if extension is not installed will show CTA to install it\n const isQrCode = !wallet?.isInstalled;\n\n const [status, setStatus] = useState(\n isQrCode ? states.QRCODE : states.INJECTOR,\n );\n\n useEffect(() => {\n // if no provider, change to qrcode\n const checkProvider = async () => {\n const res = await wallet?.connector?.getProvider();\n if (!res) {\n setStatus(states.QRCODE);\n setTimeout(context.triggerResize, 10); // delay required here for modal to resize\n }\n };\n if (status === states.INJECTOR) checkProvider();\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n if (!wallet) return <Alert>Connector not found</Alert>;\n\n return (\n <AnimatePresence>\n {status === states.QRCODE && (\n <motion.div\n key={states.QRCODE}\n initial={\"initial\"}\n animate={\"animate\"}\n exit={\"exit\"}\n variants={contentVariants}\n >\n <ConnectWithQRCode />\n </motion.div>\n )}\n {status === states.INJECTOR && (\n <motion.div\n key={states.INJECTOR}\n initial={\"initial\"}\n animate={\"animate\"}\n exit={\"exit\"}\n variants={contentVariants}\n >\n <ConnectWithInjector\n switchConnectMethod={() => {\n setStatus(states.QRCODE);\n }}\n />\n </motion.div>\n )}\n </AnimatePresence>\n );\n};\n\nexport default ConnectUsing;\n"],"names":[],"mappings":";;;;;;;;;;AAYA,MAAM,MAAS,GAAA;AAAA,EACb,MAAQ,EAAA,QAAA;AAAA,EACR,QAAU,EAAA,UAAA;AACZ,CAAA,CAAA;AAEA,MAAM,eAAe,MAAM;AACzB,EAAA,MAAM,UAAU,aAAc,EAAA,CAAA;AAC9B,EAAM,MAAA,EAAE,oBAAuB,GAAA,OAAA,CAAA;AAE/B,EAAM,MAAA,MAAA,GAAS,SAAU,CAAA,kBAAA,IAAsB,EAAE,CAAA,CAAA;AAEjD,EAAM,MAAA,QAAA,GAAW,CAAC,MAAQ,EAAA,WAAA,CAAA;AAE1B,EAAM,MAAA,CAAC,MAAQ,EAAA,SAAS,CAAI,GAAA,QAAA;AAAA,IAC1B,QAAA,GAAW,MAAO,CAAA,MAAA,GAAS,MAAO,CAAA,QAAA;AAAA,GACpC,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AAEd,IAAA,MAAM,gBAAgB,YAAY;AAChC,MAAA,MAAM,GAAM,GAAA,MAAM,MAAQ,EAAA,SAAA,EAAW,WAAY,EAAA,CAAA;AACjD,MAAA,IAAI,CAAC,GAAK,EAAA;AACR,QAAA,SAAA,CAAU,OAAO,MAAM,CAAA,CAAA;AACvB,QAAW,UAAA,CAAA,OAAA,CAAQ,eAAe,EAAE,CAAA,CAAA;AAAA,OACtC;AAAA,KACF,CAAA;AACA,IAAI,IAAA,MAAA,KAAW,MAAO,CAAA,QAAA,EAAwB,aAAA,EAAA,CAAA;AAAA,GAChD,EAAG,EAAE,CAAA,CAAA;AAEL,EAAA,IAAI,CAAC,MAAA,EAAe,uBAAA,GAAA,CAAC,SAAM,QAAmB,EAAA,qBAAA,EAAA,CAAA,CAAA;AAE9C,EAAA,4BACG,eACE,EAAA,EAAA,QAAA,EAAA;AAAA,IAAA,MAAA,KAAW,OAAO,MACjB,oBAAA,GAAA;AAAA,MAAC,MAAO,CAAA,GAAA;AAAA,MAAP;AAAA,QAEC,OAAS,EAAA,SAAA;AAAA,QACT,OAAS,EAAA,SAAA;AAAA,QACT,IAAM,EAAA,MAAA;AAAA,QACN,QAAU,EAAA,eAAA;AAAA,QAEV,8BAAC,iBAAkB,EAAA,EAAA,CAAA;AAAA,OAAA;AAAA,MANd,MAAO,CAAA,MAAA;AAAA,KAOd;AAAA,IAED,MAAA,KAAW,OAAO,QACjB,oBAAA,GAAA;AAAA,MAAC,MAAO,CAAA,GAAA;AAAA,MAAP;AAAA,QAEC,OAAS,EAAA,SAAA;AAAA,QACT,OAAS,EAAA,SAAA;AAAA,QACT,IAAM,EAAA,MAAA;AAAA,QACN,QAAU,EAAA,eAAA;AAAA,QAEV,QAAA,kBAAA,GAAA;AAAA,UAAC,mBAAA;AAAA,UAAA;AAAA,YACC,qBAAqB,MAAM;AACzB,cAAA,SAAA,CAAU,OAAO,MAAM,CAAA,CAAA;AAAA,aACzB;AAAA,WAAA;AAAA,SACF;AAAA,OAAA;AAAA,MAVK,MAAO,CAAA,QAAA;AAAA,KAWd;AAAA,GAEJ,EAAA,CAAA,CAAA;AAEJ;;;;"}
@@ -17,178 +17,318 @@ import BrowserIcon from '../../Common/BrowserIcon/index.js';
17
17
  import CircleSpinner from '../../Spinners/CircleSpinner/index.js';
18
18
 
19
19
  const states = {
20
- CONNECTED: "connected",
21
- CONNECTING: "connecting",
22
- EXPIRING: "expiring",
23
- FAILED: "failed",
24
- REJECTED: "rejected",
25
- NOTCONNECTED: "notconnected",
26
- UNAVAILABLE: "unavailable",
20
+ CONNECTED: "connected",
21
+ CONNECTING: "connecting",
22
+ EXPIRING: "expiring",
23
+ FAILED: "failed",
24
+ REJECTED: "rejected",
25
+ NOTCONNECTED: "notconnected",
26
+ UNAVAILABLE: "unavailable"
27
27
  };
28
28
  const contentVariants = {
29
- initial: {
30
- willChange: "transform,opacity",
31
- position: "relative",
32
- opacity: 0,
33
- scale: 0.95,
34
- },
35
- animate: {
36
- position: "relative",
37
- opacity: 1,
38
- scale: 1,
39
- transition: {
40
- ease: [0.16, 1, 0.3, 1],
41
- duration: 0.4,
42
- delay: 0.05,
43
- position: { delay: 0 },
44
- },
45
- },
46
- exit: {
47
- position: "absolute",
48
- opacity: 0,
49
- scale: 0.95,
50
- transition: {
51
- ease: [0.16, 1, 0.3, 1],
52
- duration: 0.3,
53
- },
54
- },
29
+ initial: {
30
+ willChange: "transform,opacity",
31
+ position: "relative",
32
+ opacity: 0,
33
+ scale: 0.95
34
+ },
35
+ animate: {
36
+ position: "relative",
37
+ opacity: 1,
38
+ scale: 1,
39
+ transition: {
40
+ ease: [0.16, 1, 0.3, 1],
41
+ duration: 0.4,
42
+ delay: 0.05,
43
+ position: { delay: 0 }
44
+ }
45
+ },
46
+ exit: {
47
+ position: "absolute",
48
+ opacity: 0,
49
+ scale: 0.95,
50
+ transition: {
51
+ ease: [0.16, 1, 0.3, 1],
52
+ duration: 0.3
53
+ }
54
+ }
55
55
  };
56
56
  const ConnectWithInjector = ({ switchConnectMethod, forceState }) => {
57
- const { connect } = useConnect({
58
- mutation: {
59
- onMutate: (connector) => {
60
- if (connector.connector) {
61
- setStatus(states.CONNECTING);
62
- }
63
- else {
64
- setStatus(states.UNAVAILABLE);
65
- }
66
- },
67
- onError(err) {
68
- console.error(err);
69
- },
70
- onSettled(data, error) {
71
- if (error) {
72
- setShowTryAgainTooltip(true);
73
- setTimeout(() => setShowTryAgainTooltip(false), 3500);
74
- if (error.code) {
75
- // https://github.com/MetaMask/eth-rpc-errors/blob/main/src/error-constants.ts
76
- switch (error.code) {
77
- case -32002:
78
- setStatus(states.NOTCONNECTED);
79
- break;
80
- case 4001:
81
- setStatus(states.REJECTED);
82
- break;
83
- default:
84
- setStatus(states.FAILED);
85
- break;
86
- }
87
- }
88
- else {
89
- // Sometimes the error doesn't respond with a code
90
- if (error.message) {
91
- switch (error.message) {
92
- case "User rejected request":
93
- setStatus(states.REJECTED);
94
- break;
95
- default:
96
- setStatus(states.FAILED);
97
- break;
98
- }
99
- }
100
- }
101
- }
102
- setTimeout(triggerResize, 100);
103
- },
104
- },
105
- });
106
- const { triggerResize } = usePayContext();
107
- const { pendingConnectorId } = usePayContext();
108
- const wallet = useWallet(pendingConnectorId ?? "");
109
- const walletInfo = {
110
- name: wallet?.name,
111
- shortName: wallet?.shortName ?? wallet?.name,
112
- icon: wallet?.iconConnector ?? wallet?.icon,
113
- iconShape: wallet?.iconShape ?? "circle",
114
- iconShouldShrink: wallet?.iconShouldShrink,
115
- };
116
- const [showTryAgainTooltip, setShowTryAgainTooltip] = useState(false);
117
- const browser = detectBrowser();
118
- const extensionUrl = wallet?.downloadUrls?.[browser];
119
- const suggestedExtension = wallet?.downloadUrls
120
- ? {
121
- name: Object.keys(wallet?.downloadUrls)[0],
122
- label: Object.keys(wallet?.downloadUrls)[0]?.charAt(0).toUpperCase() +
123
- Object.keys(wallet?.downloadUrls)[0]?.slice(1), // Capitalise first letter, but this might be better suited as a lookup table
124
- url: wallet?.downloadUrls[Object.keys(wallet?.downloadUrls)[0]],
57
+ const { connect } = useConnect({
58
+ mutation: {
59
+ onMutate: (connector) => {
60
+ if (connector.connector) {
61
+ setStatus(states.CONNECTING);
62
+ } else {
63
+ setStatus(states.UNAVAILABLE);
125
64
  }
126
- : undefined;
127
- const [status, setStatus] = useState(forceState
128
- ? forceState
129
- : !wallet?.isInstalled
130
- ? states.UNAVAILABLE
131
- : states.CONNECTING);
132
- const locales = useLocales({
133
- CONNECTORNAME: walletInfo.name,
134
- CONNECTORSHORTNAME: walletInfo.shortName ?? walletInfo.name,
135
- SUGGESTEDEXTENSIONBROWSER: suggestedExtension?.label ?? "your browser",
136
- });
137
- const runConnect = async () => {
138
- if (wallet?.isInstalled && wallet?.connector) {
139
- connect({ connector: wallet?.connector });
140
- }
141
- else {
142
- setStatus(states.UNAVAILABLE);
65
+ },
66
+ onError(err) {
67
+ console.error(err);
68
+ },
69
+ onSettled(data, error) {
70
+ if (error) {
71
+ setShowTryAgainTooltip(true);
72
+ setTimeout(() => setShowTryAgainTooltip(false), 3500);
73
+ if (error.code) {
74
+ switch (error.code) {
75
+ case -32002:
76
+ setStatus(states.NOTCONNECTED);
77
+ break;
78
+ case 4001:
79
+ setStatus(states.REJECTED);
80
+ break;
81
+ default:
82
+ setStatus(states.FAILED);
83
+ break;
84
+ }
85
+ } else {
86
+ if (error.message) {
87
+ switch (error.message) {
88
+ case "User rejected request":
89
+ setStatus(states.REJECTED);
90
+ break;
91
+ default:
92
+ setStatus(states.FAILED);
93
+ break;
94
+ }
95
+ }
96
+ }
143
97
  }
98
+ setTimeout(triggerResize, 100);
99
+ }
100
+ }
101
+ });
102
+ const { triggerResize } = usePayContext();
103
+ const { pendingConnectorId } = usePayContext();
104
+ const wallet = useWallet(pendingConnectorId ?? "");
105
+ const walletInfo = {
106
+ name: wallet?.name,
107
+ shortName: wallet?.shortName ?? wallet?.name,
108
+ icon: wallet?.iconConnector ?? wallet?.icon,
109
+ iconShape: wallet?.iconShape ?? "circle",
110
+ iconShouldShrink: wallet?.iconShouldShrink
111
+ };
112
+ const [showTryAgainTooltip, setShowTryAgainTooltip] = useState(false);
113
+ const browser = detectBrowser();
114
+ const extensionUrl = wallet?.downloadUrls?.[browser];
115
+ const suggestedExtension = wallet?.downloadUrls ? {
116
+ name: Object.keys(wallet?.downloadUrls)[0],
117
+ label: Object.keys(wallet?.downloadUrls)[0]?.charAt(0).toUpperCase() + Object.keys(wallet?.downloadUrls)[0]?.slice(1),
118
+ // Capitalise first letter, but this might be better suited as a lookup table
119
+ url: wallet?.downloadUrls[Object.keys(wallet?.downloadUrls)[0]]
120
+ } : void 0;
121
+ const [status, setStatus] = useState(
122
+ forceState ? forceState : !wallet?.isInstalled ? states.UNAVAILABLE : states.CONNECTING
123
+ );
124
+ const locales = useLocales({
125
+ CONNECTORNAME: walletInfo.name,
126
+ CONNECTORSHORTNAME: walletInfo.shortName ?? walletInfo.name,
127
+ SUGGESTEDEXTENSIONBROWSER: suggestedExtension?.label ?? "your browser"
128
+ });
129
+ const runConnect = async () => {
130
+ if (wallet?.isInstalled && wallet?.connector) {
131
+ connect({ connector: wallet?.connector });
132
+ } else {
133
+ setStatus(states.UNAVAILABLE);
134
+ }
135
+ };
136
+ useEffect(() => {
137
+ if (status === states.UNAVAILABLE) return;
138
+ const connectTimeout = setTimeout(runConnect, 600);
139
+ return () => {
140
+ clearTimeout(connectTimeout);
144
141
  };
145
- useEffect(() => {
146
- if (status === states.UNAVAILABLE)
147
- return;
148
- // UX: Give user time to see the UI before opening the extension
149
- const connectTimeout = setTimeout(runConnect, 600);
150
- return () => {
151
- clearTimeout(connectTimeout);
152
- };
153
- }, []); // eslint-disable-line react-hooks/exhaustive-deps
154
- /** Timeout functionality if necessary
155
- let expiryTimeout: any;
156
- useEffect(() => {
157
- if (status === states.EXPIRING) {
158
- expiryTimeout = setTimeout(
159
- () => {
160
- if (expiryTimer <= 0) {
161
- setStatus(states.FAILED);
162
- setExpiryTimer(expiryDefault);
163
- } else {
164
- setExpiryTimer(expiryTimer - 1);
142
+ }, []);
143
+ if (!wallet) {
144
+ return /* @__PURE__ */ jsx(PageContent, { children: /* @__PURE__ */ jsxs(Container, { children: [
145
+ /* @__PURE__ */ jsx(ModalHeading, { children: locales.invalidState_heading }),
146
+ /* @__PURE__ */ jsx(ModalContent, { children: /* @__PURE__ */ jsx(Alert, { children: locales.invalidState_description }) })
147
+ ] }) });
148
+ }
149
+ return /* @__PURE__ */ jsx(PageContent, { children: /* @__PURE__ */ jsxs(Container, { children: [
150
+ /* @__PURE__ */ jsx(ConnectingContainer, { children: /* @__PURE__ */ jsxs(
151
+ ConnectingAnimation,
152
+ {
153
+ $shake: status === states.FAILED || status === states.REJECTED,
154
+ $circle: walletInfo.iconShape === "circle",
155
+ children: [
156
+ /* @__PURE__ */ jsx(AnimatePresence, { children: (status === states.FAILED || status === states.REJECTED) && /* @__PURE__ */ jsx(
157
+ RetryButton,
158
+ {
159
+ "aria-label": locales.retry,
160
+ initial: { opacity: 0, scale: 0.8 },
161
+ animate: { opacity: 1, scale: 1 },
162
+ exit: { opacity: 0, scale: 0.8 },
163
+ whileTap: { scale: 0.9 },
164
+ transition: { duration: 0.1 },
165
+ onClick: runConnect,
166
+ children: /* @__PURE__ */ jsx(RetryIconContainer, { children: /* @__PURE__ */ jsx(
167
+ Tooltip,
168
+ {
169
+ open: showTryAgainTooltip && (status === states.FAILED || status === states.REJECTED),
170
+ message: locales.tryAgainQuestion,
171
+ xOffset: -6,
172
+ children: /* @__PURE__ */ jsx(RetryIconCircle, {})
173
+ }
174
+ ) })
175
+ }
176
+ ) }),
177
+ walletInfo.iconShape === "circle" ? /* @__PURE__ */ jsx(
178
+ CircleSpinner,
179
+ {
180
+ logo: status === states.UNAVAILABLE ? /* @__PURE__ */ jsx(
181
+ "div",
182
+ {
183
+ style: {
184
+ transform: "scale(1.14)",
185
+ position: "relative",
186
+ width: "100%"
187
+ },
188
+ children: walletInfo.icon
189
+ }
190
+ ) : /* @__PURE__ */ jsx(Fragment, { children: walletInfo.icon }),
191
+ smallLogo: walletInfo.iconShouldShrink,
192
+ loading: status === states.CONNECTING,
193
+ unavailable: status === states.UNAVAILABLE
165
194
  }
166
- },
167
- expiryTimer === 9 ? 1500 : 1000 // Google: Chronostasis
168
- );
195
+ ) : /* @__PURE__ */ jsx(
196
+ SquircleSpinner,
197
+ {
198
+ logo: status === states.UNAVAILABLE ? /* @__PURE__ */ jsx(
199
+ "div",
200
+ {
201
+ style: {
202
+ transform: "scale(1.14)",
203
+ position: "relative",
204
+ width: "100%"
205
+ },
206
+ children: walletInfo.icon
207
+ }
208
+ ) : /* @__PURE__ */ jsx(Fragment, { children: walletInfo.icon }),
209
+ loading: status === states.CONNECTING
210
+ }
211
+ )
212
+ ]
169
213
  }
170
- return () => {
171
- clearTimeout(expiryTimeout);
172
- };
173
- }, [status, expiryTimer]);
174
- */
175
- if (!wallet) {
176
- return (jsx(PageContent, { children: jsxs(Container, { children: [jsx(ModalHeading, { children: locales.invalidState_heading }), jsx(ModalContent, { children: jsx(Alert, { children: locales.invalidState_description }) })] }) }));
177
- }
178
- return (jsx(PageContent, { children: jsxs(Container, { children: [jsx(ConnectingContainer, { children: jsxs(ConnectingAnimation, { "$shake": status === states.FAILED || status === states.REJECTED, "$circle": walletInfo.iconShape === "circle", children: [jsx(AnimatePresence, { children: (status === states.FAILED || status === states.REJECTED) && (jsx(RetryButton, { "aria-label": locales.retry, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, whileTap: { scale: 0.9 }, transition: { duration: 0.1 }, onClick: runConnect, children: jsx(RetryIconContainer, { children: jsx(Tooltip, { open: showTryAgainTooltip &&
179
- (status === states.FAILED || status === states.REJECTED), message: locales.tryAgainQuestion, xOffset: -6, children: jsx(RetryIconCircle, {}) }) }) })) }), walletInfo.iconShape === "circle" ? (jsx(CircleSpinner, { logo: status === states.UNAVAILABLE ? (jsx("div", { style: {
180
- transform: "scale(1.14)",
181
- position: "relative",
182
- width: "100%",
183
- }, children: walletInfo.icon })) : (jsx(Fragment, { children: walletInfo.icon })), smallLogo: walletInfo.iconShouldShrink, loading: status === states.CONNECTING, unavailable: status === states.UNAVAILABLE })) : (jsx(SquircleSpinner, { logo: status === states.UNAVAILABLE ? (jsx("div", { style: {
184
- transform: "scale(1.14)",
185
- position: "relative",
186
- width: "100%",
187
- }, children: walletInfo.icon })) : (jsx(Fragment, { children: walletInfo.icon })), loading: status === states.CONNECTING }))] }) }), jsx(ModalContentContainer, { children: jsxs(AnimatePresence, { initial: false, children: [status === states.FAILED && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsxs(ModalContent, { children: [jsxs(ModalH1, { "$error": true, children: [jsx(AlertIcon, {}), locales.injectionScreen_failed_h1] }), jsx(ModalBody, { children: locales.injectionScreen_failed_p })] }) }, states.FAILED)), status === states.REJECTED && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsxs(ModalContent, { style: { paddingBottom: 28 }, children: [jsx(ModalH1, { children: locales.injectionScreen_rejected_h1 }), jsx(ModalBody, { children: locales.injectionScreen_rejected_p })] }) }, states.REJECTED)), (status === states.CONNECTING || status === states.EXPIRING) && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsxs(ModalContent, { style: { paddingBottom: 28 }, children: [jsx(ModalH1, { children: wallet.connector?.id === "injected"
188
- ? locales.injectionScreen_connecting_injected_h1
189
- : locales.injectionScreen_connecting_h1 }), jsx(ModalBody, { children: wallet.connector?.id === "injected"
190
- ? locales.injectionScreen_connecting_injected_p
191
- : locales.injectionScreen_connecting_p }), jsxs(Button, { icon: jsx(ExternalLinkIcon, {}), onClick: runConnect, children: ["Connect ", walletInfo.name] })] }) }, states.CONNECTING)), status === states.CONNECTED && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsxs(ModalContent, { children: [jsxs(ModalH1, { "$valid": true, children: [jsx(TickIcon, {}), " ", locales.injectionScreen_connected_h1] }), jsx(ModalBody, { children: locales.injectionScreen_connected_p })] }) }, states.CONNECTED)), status === states.NOTCONNECTED && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: jsxs(ModalContent, { children: [jsx(ModalH1, { children: locales.injectionScreen_notconnected_h1 }), jsx(ModalBody, { children: locales.injectionScreen_notconnected_p })] }) }, states.NOTCONNECTED)), status === states.UNAVAILABLE && (jsx(Content, { initial: "initial", animate: "animate", exit: "exit", variants: contentVariants, children: !extensionUrl ? (jsxs(Fragment, { children: [jsxs(ModalContent, { style: { paddingBottom: 12 }, children: [jsx(ModalH1, { children: locales.injectionScreen_unavailable_h1 }), jsx(ModalBody, { children: locales.injectionScreen_unavailable_p })] }), !wallet.isInstalled && suggestedExtension && (jsxs(Button, { href: suggestedExtension?.url, icon: jsx(BrowserIcon, { browser: suggestedExtension?.name }), children: ["Install on ", suggestedExtension?.label] }))] })) : (jsxs(Fragment, { children: [jsxs(ModalContent, { style: { paddingBottom: 18 }, children: [jsx(ModalH1, { children: locales.injectionScreen_install_h1 }), jsx(ModalBody, { children: locales.injectionScreen_install_p })] }), !wallet.isInstalled && extensionUrl && (jsx(Button, { href: extensionUrl, icon: jsx(BrowserIcon, {}), children: locales.installTheExtension }))] })) }, states.UNAVAILABLE))] }) })] }) }));
214
+ ) }),
215
+ /* @__PURE__ */ jsx(ModalContentContainer, { children: /* @__PURE__ */ jsxs(AnimatePresence, { initial: false, children: [
216
+ status === states.FAILED && /* @__PURE__ */ jsx(
217
+ Content,
218
+ {
219
+ initial: "initial",
220
+ animate: "animate",
221
+ exit: "exit",
222
+ variants: contentVariants,
223
+ children: /* @__PURE__ */ jsxs(ModalContent, { children: [
224
+ /* @__PURE__ */ jsxs(ModalH1, { $error: true, children: [
225
+ /* @__PURE__ */ jsx(AlertIcon, {}),
226
+ locales.injectionScreen_failed_h1
227
+ ] }),
228
+ /* @__PURE__ */ jsx(ModalBody, { children: locales.injectionScreen_failed_p })
229
+ ] })
230
+ },
231
+ states.FAILED
232
+ ),
233
+ status === states.REJECTED && /* @__PURE__ */ jsx(
234
+ Content,
235
+ {
236
+ initial: "initial",
237
+ animate: "animate",
238
+ exit: "exit",
239
+ variants: contentVariants,
240
+ children: /* @__PURE__ */ jsxs(ModalContent, { style: { paddingBottom: 28 }, children: [
241
+ /* @__PURE__ */ jsx(ModalH1, { children: locales.injectionScreen_rejected_h1 }),
242
+ /* @__PURE__ */ jsx(ModalBody, { children: locales.injectionScreen_rejected_p })
243
+ ] })
244
+ },
245
+ states.REJECTED
246
+ ),
247
+ (status === states.CONNECTING || status === states.EXPIRING) && /* @__PURE__ */ jsx(
248
+ Content,
249
+ {
250
+ initial: "initial",
251
+ animate: "animate",
252
+ exit: "exit",
253
+ variants: contentVariants,
254
+ children: /* @__PURE__ */ jsxs(ModalContent, { style: { paddingBottom: 28 }, children: [
255
+ /* @__PURE__ */ jsx(ModalH1, { children: wallet.connector?.id === "injected" ? locales.injectionScreen_connecting_injected_h1 : locales.injectionScreen_connecting_h1 }),
256
+ /* @__PURE__ */ jsx(ModalBody, { children: wallet.connector?.id === "injected" ? locales.injectionScreen_connecting_injected_p : locales.injectionScreen_connecting_p }),
257
+ /* @__PURE__ */ jsxs(Button, { icon: /* @__PURE__ */ jsx(ExternalLinkIcon, {}), onClick: runConnect, children: [
258
+ "Connect ",
259
+ walletInfo.name
260
+ ] })
261
+ ] })
262
+ },
263
+ states.CONNECTING
264
+ ),
265
+ status === states.CONNECTED && /* @__PURE__ */ jsx(
266
+ Content,
267
+ {
268
+ initial: "initial",
269
+ animate: "animate",
270
+ exit: "exit",
271
+ variants: contentVariants,
272
+ children: /* @__PURE__ */ jsxs(ModalContent, { children: [
273
+ /* @__PURE__ */ jsxs(ModalH1, { $valid: true, children: [
274
+ /* @__PURE__ */ jsx(TickIcon, {}),
275
+ " ",
276
+ locales.injectionScreen_connected_h1
277
+ ] }),
278
+ /* @__PURE__ */ jsx(ModalBody, { children: locales.injectionScreen_connected_p })
279
+ ] })
280
+ },
281
+ states.CONNECTED
282
+ ),
283
+ status === states.NOTCONNECTED && /* @__PURE__ */ jsx(
284
+ Content,
285
+ {
286
+ initial: "initial",
287
+ animate: "animate",
288
+ exit: "exit",
289
+ variants: contentVariants,
290
+ children: /* @__PURE__ */ jsxs(ModalContent, { children: [
291
+ /* @__PURE__ */ jsx(ModalH1, { children: locales.injectionScreen_notconnected_h1 }),
292
+ /* @__PURE__ */ jsx(ModalBody, { children: locales.injectionScreen_notconnected_p })
293
+ ] })
294
+ },
295
+ states.NOTCONNECTED
296
+ ),
297
+ status === states.UNAVAILABLE && /* @__PURE__ */ jsx(
298
+ Content,
299
+ {
300
+ initial: "initial",
301
+ animate: "animate",
302
+ exit: "exit",
303
+ variants: contentVariants,
304
+ children: !extensionUrl ? /* @__PURE__ */ jsxs(Fragment, { children: [
305
+ /* @__PURE__ */ jsxs(ModalContent, { style: { paddingBottom: 12 }, children: [
306
+ /* @__PURE__ */ jsx(ModalH1, { children: locales.injectionScreen_unavailable_h1 }),
307
+ /* @__PURE__ */ jsx(ModalBody, { children: locales.injectionScreen_unavailable_p })
308
+ ] }),
309
+ !wallet.isInstalled && suggestedExtension && /* @__PURE__ */ jsxs(
310
+ Button,
311
+ {
312
+ href: suggestedExtension?.url,
313
+ icon: /* @__PURE__ */ jsx(BrowserIcon, { browser: suggestedExtension?.name }),
314
+ children: [
315
+ "Install on ",
316
+ suggestedExtension?.label
317
+ ]
318
+ }
319
+ )
320
+ ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
321
+ /* @__PURE__ */ jsxs(ModalContent, { style: { paddingBottom: 18 }, children: [
322
+ /* @__PURE__ */ jsx(ModalH1, { children: locales.injectionScreen_install_h1 }),
323
+ /* @__PURE__ */ jsx(ModalBody, { children: locales.injectionScreen_install_p })
324
+ ] }),
325
+ !wallet.isInstalled && extensionUrl && /* @__PURE__ */ jsx(Button, { href: extensionUrl, icon: /* @__PURE__ */ jsx(BrowserIcon, {}), children: locales.installTheExtension })
326
+ ] })
327
+ },
328
+ states.UNAVAILABLE
329
+ )
330
+ ] }) })
331
+ ] }) });
192
332
  };
193
333
 
194
334
  export { ConnectWithInjector as default, states };