@turnkey/react-wallet-kit 2.0.1 → 2.1.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 (158) hide show
  1. package/dist/components/auth/index.d.ts.map +1 -1
  2. package/dist/components/auth/index.js +7 -57
  3. package/dist/components/auth/index.js.map +1 -1
  4. package/dist/components/auth/index.mjs +16 -132
  5. package/dist/components/auth/index.mjs.map +1 -1
  6. package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts +10 -0
  7. package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts.map +1 -0
  8. package/dist/components/auth/wallet/DesktopWalletConnectScreen.js +204 -0
  9. package/dist/components/auth/wallet/DesktopWalletConnectScreen.js.map +1 -0
  10. package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs +253 -0
  11. package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs.map +1 -0
  12. package/dist/components/auth/wallet/DisconnectWalletScreen.d.ts +8 -0
  13. package/dist/components/auth/wallet/DisconnectWalletScreen.d.ts.map +1 -0
  14. package/dist/components/auth/wallet/DisconnectWalletScreen.js +58 -0
  15. package/dist/components/auth/wallet/DisconnectWalletScreen.js.map +1 -0
  16. package/dist/components/auth/wallet/DisconnectWalletScreen.mjs +80 -0
  17. package/dist/components/auth/wallet/DisconnectWalletScreen.mjs.map +1 -0
  18. package/dist/components/auth/wallet/ExternalWalletChainSelector.d.ts +10 -0
  19. package/dist/components/auth/wallet/ExternalWalletChainSelector.d.ts.map +1 -0
  20. package/dist/components/auth/wallet/ExternalWalletChainSelector.js +117 -0
  21. package/dist/components/auth/wallet/ExternalWalletChainSelector.js.map +1 -0
  22. package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs +151 -0
  23. package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs.map +1 -0
  24. package/dist/components/auth/wallet/ExternalWalletSelector.d.ts +18 -0
  25. package/dist/components/auth/wallet/ExternalWalletSelector.d.ts.map +1 -0
  26. package/dist/components/auth/wallet/ExternalWalletSelector.js +233 -0
  27. package/dist/components/auth/wallet/ExternalWalletSelector.js.map +1 -0
  28. package/dist/components/auth/wallet/ExternalWalletSelector.mjs +323 -0
  29. package/dist/components/auth/wallet/ExternalWalletSelector.mjs.map +1 -0
  30. package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts +11 -0
  31. package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts.map +1 -0
  32. package/dist/components/auth/wallet/MobileWalletConnectScreen.js +200 -0
  33. package/dist/components/auth/wallet/MobileWalletConnectScreen.js.map +1 -0
  34. package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs +251 -0
  35. package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs.map +1 -0
  36. package/dist/components/auth/wallet/QRCodeDisplay.d.ts +8 -0
  37. package/dist/components/auth/wallet/QRCodeDisplay.d.ts.map +1 -0
  38. package/dist/components/auth/wallet/QRCodeDisplay.js +37 -0
  39. package/dist/components/auth/wallet/QRCodeDisplay.js.map +1 -0
  40. package/dist/components/auth/wallet/QRCodeDisplay.mjs +33 -0
  41. package/dist/components/auth/wallet/QRCodeDisplay.mjs.map +1 -0
  42. package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts +8 -0
  43. package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts.map +1 -0
  44. package/dist/components/auth/wallet/ShowAllWalletsScreen.js +253 -0
  45. package/dist/components/auth/wallet/ShowAllWalletsScreen.js.map +1 -0
  46. package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs +299 -0
  47. package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs.map +1 -0
  48. package/dist/components/auth/wallet/WalletAuthButton.d.ts +6 -0
  49. package/dist/components/auth/wallet/WalletAuthButton.d.ts.map +1 -0
  50. package/dist/components/auth/wallet/WalletAuthButton.js +33 -0
  51. package/dist/components/auth/wallet/WalletAuthButton.js.map +1 -0
  52. package/dist/components/auth/wallet/WalletAuthButton.mjs +47 -0
  53. package/dist/components/auth/wallet/WalletAuthButton.mjs.map +1 -0
  54. package/dist/components/auth/wallet/WalletButton.d.ts +16 -0
  55. package/dist/components/auth/wallet/WalletButton.d.ts.map +1 -0
  56. package/dist/components/auth/wallet/WalletButton.js +79 -0
  57. package/dist/components/auth/wallet/WalletButton.js.map +1 -0
  58. package/dist/components/auth/wallet/WalletButton.mjs +84 -0
  59. package/dist/components/auth/wallet/WalletButton.mjs.map +1 -0
  60. package/dist/components/auth/wallet/WalletButtonSkeleton.d.ts +2 -0
  61. package/dist/components/auth/wallet/WalletButtonSkeleton.d.ts.map +1 -0
  62. package/dist/components/auth/wallet/WalletButtonSkeleton.js +22 -0
  63. package/dist/components/auth/wallet/WalletButtonSkeleton.js.map +1 -0
  64. package/dist/components/auth/wallet/WalletButtonSkeleton.mjs +20 -0
  65. package/dist/components/auth/wallet/WalletButtonSkeleton.mjs.map +1 -0
  66. package/dist/components/auth/wallet/WalletConnectAppChainSelector.d.ts +12 -0
  67. package/dist/components/auth/wallet/WalletConnectAppChainSelector.d.ts.map +1 -0
  68. package/dist/components/auth/wallet/WalletConnectAppChainSelector.js +79 -0
  69. package/dist/components/auth/wallet/WalletConnectAppChainSelector.js.map +1 -0
  70. package/dist/components/auth/wallet/WalletConnectAppChainSelector.mjs +102 -0
  71. package/dist/components/auth/wallet/WalletConnectAppChainSelector.mjs.map +1 -0
  72. package/dist/components/auth/wallet/WalletConnectFlow.d.ts +21 -0
  73. package/dist/components/auth/wallet/WalletConnectFlow.d.ts.map +1 -0
  74. package/dist/components/auth/wallet/WalletConnectFlow.js +163 -0
  75. package/dist/components/auth/wallet/WalletConnectFlow.js.map +1 -0
  76. package/dist/components/auth/wallet/WalletConnectFlow.mjs +310 -0
  77. package/dist/components/auth/wallet/WalletConnectFlow.mjs.map +1 -0
  78. package/dist/components/auth/wallet/constants.d.ts +6 -0
  79. package/dist/components/auth/wallet/constants.d.ts.map +1 -0
  80. package/dist/components/auth/wallet/constants.js +14 -0
  81. package/dist/components/auth/wallet/constants.js.map +1 -0
  82. package/dist/components/auth/wallet/constants.mjs +8 -0
  83. package/dist/components/auth/wallet/constants.mjs.map +1 -0
  84. package/dist/components/auth/wallet/utils.d.ts +4 -0
  85. package/dist/components/auth/wallet/utils.d.ts.map +1 -0
  86. package/dist/components/auth/wallet/utils.js +9 -0
  87. package/dist/components/auth/wallet/utils.js.map +1 -0
  88. package/dist/components/auth/wallet/utils.mjs +7 -0
  89. package/dist/components/auth/wallet/utils.mjs.map +1 -0
  90. package/dist/components/design/Buttons.d.ts +1 -0
  91. package/dist/components/design/Buttons.d.ts.map +1 -1
  92. package/dist/components/design/Buttons.js +2 -0
  93. package/dist/components/design/Buttons.js.map +1 -1
  94. package/dist/components/design/Buttons.mjs +2 -0
  95. package/dist/components/design/Buttons.mjs.map +1 -1
  96. package/dist/components/design/ConnectedIndicator.d.ts +6 -0
  97. package/dist/components/design/ConnectedIndicator.d.ts.map +1 -0
  98. package/dist/components/design/ConnectedIndicator.js +20 -0
  99. package/dist/components/design/ConnectedIndicator.js.map +1 -0
  100. package/dist/components/design/ConnectedIndicator.mjs +17 -0
  101. package/dist/components/design/ConnectedIndicator.mjs.map +1 -0
  102. package/dist/components/design/Inputs.d.ts +7 -0
  103. package/dist/components/design/Inputs.d.ts.map +1 -1
  104. package/dist/components/design/Inputs.js +37 -0
  105. package/dist/components/design/Inputs.js.map +1 -1
  106. package/dist/components/design/Inputs.mjs +39 -2
  107. package/dist/components/design/Inputs.mjs.map +1 -1
  108. package/dist/components/design/Svg.d.ts +1 -0
  109. package/dist/components/design/Svg.d.ts.map +1 -1
  110. package/dist/components/user/ConnectWallet.d.ts +1 -1
  111. package/dist/components/user/ConnectWallet.d.ts.map +1 -1
  112. package/dist/components/user/ConnectWallet.js +6 -100
  113. package/dist/components/user/ConnectWallet.js.map +1 -1
  114. package/dist/components/user/ConnectWallet.mjs +5 -183
  115. package/dist/components/user/ConnectWallet.mjs.map +1 -1
  116. package/dist/index.js +4 -0
  117. package/dist/index.js.map +1 -1
  118. package/dist/index.mjs +1 -1
  119. package/dist/providers/WalletConnectProvider.d.ts +23 -0
  120. package/dist/providers/WalletConnectProvider.d.ts.map +1 -0
  121. package/dist/providers/WalletConnectProvider.js +72 -0
  122. package/dist/providers/WalletConnectProvider.js.map +1 -0
  123. package/dist/providers/WalletConnectProvider.mjs +93 -0
  124. package/dist/providers/WalletConnectProvider.mjs.map +1 -0
  125. package/dist/providers/client/Provider.d.ts.map +1 -1
  126. package/dist/providers/client/Provider.js +5 -2
  127. package/dist/providers/client/Provider.js.map +1 -1
  128. package/dist/providers/client/Provider.mjs +5 -2
  129. package/dist/providers/client/Provider.mjs.map +1 -1
  130. package/dist/providers/modal/Provider.d.ts +5 -1
  131. package/dist/providers/modal/Provider.d.ts.map +1 -1
  132. package/dist/providers/modal/Provider.js.map +1 -1
  133. package/dist/providers/modal/Provider.mjs.map +1 -1
  134. package/dist/providers/modal/Root.d.ts.map +1 -1
  135. package/dist/providers/modal/Root.js +2 -0
  136. package/dist/providers/modal/Root.js.map +1 -1
  137. package/dist/providers/modal/Root.mjs +2 -0
  138. package/dist/providers/modal/Root.mjs.map +1 -1
  139. package/dist/styles.css +1 -1
  140. package/dist/types/base.d.ts +6 -0
  141. package/dist/types/base.d.ts.map +1 -1
  142. package/dist/types/base.js +7 -0
  143. package/dist/types/base.js.map +1 -1
  144. package/dist/types/base.mjs +8 -1
  145. package/dist/types/base.mjs.map +1 -1
  146. package/dist/utils/utils.d.ts +2 -1
  147. package/dist/utils/utils.d.ts.map +1 -1
  148. package/dist/utils/utils.js +5 -0
  149. package/dist/utils/utils.js.map +1 -1
  150. package/dist/utils/utils.mjs +7 -1
  151. package/dist/utils/utils.mjs.map +1 -1
  152. package/package.json +3 -3
  153. package/dist/components/auth/Wallet.d.ts +0 -34
  154. package/dist/components/auth/Wallet.d.ts.map +0 -1
  155. package/dist/components/auth/Wallet.js +0 -514
  156. package/dist/components/auth/Wallet.js.map +0 -1
  157. package/dist/components/auth/Wallet.mjs +0 -615
  158. package/dist/components/auth/Wallet.mjs.map +0 -1
@@ -1,514 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var Buttons = require('../design/Buttons.js');
5
- var Svg = require('../design/Svg.js');
6
- var Spinners = require('../design/Spinners.js');
7
- var reactFontawesome = require('@fortawesome/react-fontawesome');
8
- var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons');
9
- var react = require('react');
10
- var clsx = require('clsx');
11
- var qrcode_react = require('qrcode.react');
12
- var Success = require('../design/Success.js');
13
- var core = require('@turnkey/core');
14
- var Hook = require('../../providers/modal/Hook.js');
15
- var Hook$1 = require('../../providers/client/Hook.js');
16
- var utils = require('../../utils/utils.js');
17
-
18
- function WalletAuthButton(props) {
19
- const {
20
- onContinue
21
- } = props;
22
- const [isLoading, setIsLoading] = react.useState(false);
23
- const handleContinue = async () => {
24
- setIsLoading(true);
25
- try {
26
- await Promise.resolve(onContinue());
27
- } finally {
28
- setIsLoading(false);
29
- }
30
- };
31
- return jsxRuntime.jsx("div", {
32
- className: "flex flex-col w-full",
33
- children: jsxRuntime.jsx(Buttons.ActionButton, {
34
- name: "wallet-auth-button",
35
- onClick: handleContinue,
36
- loading: isLoading,
37
- className: "w-full text-inherit bg-button-light dark:bg-button-dark",
38
- children: "Continue with wallet"
39
- })
40
- });
41
- }
42
- const canDisconnect = (provider, shouldShowDisconnect) => {
43
- return shouldShowDisconnect && provider.connectedAddresses && provider.connectedAddresses.length > 0;
44
- };
45
- function ExternalWalletChainSelector(props) {
46
- const {
47
- providers,
48
- onSelect,
49
- onDisconnect
50
- } = props;
51
- const {
52
- walletProviders
53
- } = Hook$1.useTurnkey();
54
- const {
55
- isMobile,
56
- popPage
57
- } = Hook.useModal();
58
- // we find matching providers in current state
59
- const currentProviders = providers.map(inputProvider => walletProviders.find(p => p.interfaceType === inputProvider.interfaceType && p.chainInfo.namespace === inputProvider.chainInfo.namespace)).filter(p => p !== undefined);
60
- // if no providers are found then that means that the user entered this screen
61
- // while WalletConnect was still initializing, and then it failed to initialize
62
- react.useEffect(() => {
63
- if (currentProviders.length === 0) {
64
- popPage();
65
- }
66
- }, [currentProviders.length, popPage]);
67
- const shouldShowDisconnect = onDisconnect !== undefined;
68
- const handleSelect = provider => {
69
- if (canDisconnect(provider, shouldShowDisconnect)) {
70
- onDisconnect(provider);
71
- } else {
72
- onSelect(provider);
73
- }
74
- };
75
- return jsxRuntime.jsxs("div", {
76
- className: clsx("flex flex-col w-72 gap-4 mt-11 items-center justify-center", isMobile ? "w-full" : "w-72"),
77
- children: [jsxRuntime.jsx("img", {
78
- src: providers[0]?.info.icon,
79
- className: "size-14 rounded-full"
80
- }), jsxRuntime.jsxs("span", {
81
- className: "text-sm text-center text-icon-text-light dark:text-icon-text-dark",
82
- children: [providers[0]?.info.name ?? "This wallet provider", " supports multiple chains. Select which chain you would like to use."]
83
- }), jsxRuntime.jsx("div", {
84
- className: "w-full flex flex-col gap-2",
85
- children: providers.map(p => {
86
- const [isHovering, setIsHovering] = react.useState(false);
87
- return jsxRuntime.jsxs(Buttons.ActionButton, {
88
- onClick: () => handleSelect(p),
89
- onMouseEnter: () => setIsHovering(true),
90
- onMouseLeave: () => setIsHovering(false),
91
- className: "relative overflow-hidden flex items-center justify-start gap-2 w-full text-inherit bg-button-light dark:bg-button-dark",
92
- children: [core.isEthereumProvider(p) ? jsxRuntime.jsxs("div", {
93
- className: "relative",
94
- children: [jsxRuntime.jsx(Svg.EthereumLogo, {
95
- className: "size-5"
96
- }), canDisconnect(p, shouldShowDisconnect) && jsxRuntime.jsx(ConnectedIndicator, {
97
- isPinging: true
98
- })]
99
- }) : core.isSolanaProvider(p) ? jsxRuntime.jsxs("div", {
100
- className: "relative",
101
- children: [jsxRuntime.jsx(Svg.SolanaLogo, {
102
- className: "size-5"
103
- }), canDisconnect(p, shouldShowDisconnect) && jsxRuntime.jsx(ConnectedIndicator, {
104
- isPinging: true
105
- })]
106
- }) :
107
- // we should never reach here
108
- // if we do then it means we forgot to update the auth component after adding a new chain
109
- jsxRuntime.jsx("div", {
110
- className: "relative",
111
- children: jsxRuntime.jsx("span", {
112
- className: "size-5 flex items-center justify-center rounded bg-gray-300 dark:bg-gray-700",
113
- children: "?"
114
- })
115
- }), jsxRuntime.jsxs("div", {
116
- className: "flex flex-col items-start",
117
- children: [core.isEthereumProvider(p) ? "EVM" : core.isSolanaProvider(p) ? "Solana" :
118
- // we should never reach here
119
- // if we do then it means we forgot to update the auth component after adding a new chain
120
- `?`, canDisconnect(p, shouldShowDisconnect) && jsxRuntime.jsxs("span", {
121
- className: "text-xs text-icon-text-light dark:text-icon-text-dark",
122
- children: ["Connected: ", p.connectedAddresses[0]?.slice(0, 4), "...", p.connectedAddresses[0]?.slice(-3)]
123
- })]
124
- }), jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
125
- className: clsx(`absolute transition-all duration-200`, isHovering ? "right-4" : "-right-4", canDisconnect(p, shouldShowDisconnect) ? "text-danger-light dark:text-danger-dark" : "text-icon-text-light dark:text-icon-text-dark"),
126
- size: canDisconnect(p, shouldShowDisconnect) ? "lg" : "1x",
127
- icon: canDisconnect(p, shouldShowDisconnect) ? freeSolidSvgIcons.faClose : freeSolidSvgIcons.faChevronRight
128
- })]
129
- }, p.chainInfo.namespace);
130
- })
131
- })]
132
- });
133
- }
134
- function ExternalWalletSelector(props) {
135
- const {
136
- onDisconnect,
137
- onSelect
138
- } = props;
139
- const {
140
- pushPage,
141
- popPage,
142
- isMobile
143
- } = Hook.useModal();
144
- const {
145
- walletProviders
146
- } = Hook$1.useTurnkey();
147
- const shouldShowDisconnect = onDisconnect !== undefined;
148
- // Group providers by name
149
- const grouped = walletProviders.reduce((acc, provider) => {
150
- const name = provider.info.name;
151
- if (!acc[name]) acc[name] = [];
152
- acc[name].push(provider);
153
- return acc;
154
- }, {});
155
- const handleSelectGroup = group => {
156
- if (group.length === 1) {
157
- if (canDisconnect(group[0], shouldShowDisconnect)) {
158
- onDisconnect(group[0]);
159
- } else {
160
- onSelect(group[0]);
161
- }
162
- } else {
163
- pushPage({
164
- key: `Select chain`,
165
- content: jsxRuntime.jsx(ExternalWalletChainSelector, {
166
- providers: group,
167
- onDisconnect: onDisconnect,
168
- onSelect: onSelect
169
- })
170
- });
171
- }
172
- };
173
- react.useEffect(() => {
174
- // Don't show the selector if there's only one wallet provider
175
- const groupedValues = Object.values(grouped);
176
- if (groupedValues.length === 1) {
177
- popPage(); // Remove this page from the stack so user doesn't get stuck in an infinite loop when pressing back
178
- handleSelectGroup(groupedValues[0]);
179
- }
180
- }, [grouped]);
181
- return Object.keys(grouped).length === 0 ? jsxRuntime.jsxs("div", {
182
- className: clsx("flex flex-col h-40 mt-4 gap-2 justify-center items-center text-xs text-center text-icon-text-light dark:text-icon-text-dark", isMobile ? "w-full" : "w-72"),
183
- children: [jsxRuntime.jsx("span", {
184
- className: "text-sm font-medium",
185
- children: "No wallet providers available."
186
- }), jsxRuntime.jsx("span", {
187
- children: "Only wallets supporting EIP-1193 (Ethereum) or the Solana wallet standard are supported."
188
- })]
189
- }) : jsxRuntime.jsx("div", {
190
- className: clsx("w-72 min-h-42 max-h-64 mt-12 overflow-y-auto tk-scrollbar p-0.5", isMobile ? "w-full" : "w-72"),
191
- children: jsxRuntime.jsx("div", {
192
- className: "flex flex-col gap-2",
193
- children: Object.entries(grouped).map(([name, group]) => {
194
- const [isHovering, setIsHovering] = react.useState(false);
195
- const first = group[0];
196
- return jsxRuntime.jsxs(Buttons.ActionButton, {
197
- onMouseEnter: () => setIsHovering(true),
198
- onMouseLeave: () => setIsHovering(false),
199
- onClick: () => handleSelectGroup(group),
200
- className: "relative flex items-center justify-between w-full text-inherit bg-button-light dark:bg-button-dark overflow-hidden",
201
- children: [jsxRuntime.jsxs("div", {
202
- className: "flex items-center gap-2 overflow-hidden",
203
- children: [jsxRuntime.jsx("img", {
204
- src: first?.info.icon,
205
- alt: first?.info.name,
206
- className: "size-6 rounded-full"
207
- }), first?.info.name]
208
- }), jsxRuntime.jsx("div", {
209
- className: clsx(`flex items-center transition-all gap-1`),
210
- children: group.map((c, idx) => {
211
- let Logo;
212
- if (core.isEthereumProvider(c)) {
213
- Logo = Svg.EthereumLogo;
214
- } else if (core.isSolanaProvider(c)) {
215
- Logo = Svg.SolanaLogo;
216
- } else {
217
- // we should never reach here
218
- // if we do then it means we forgot to update the auth component after adding a new chain
219
- throw new Error(`Unsupported provider namespace. Expected Ethereum or Solana.`);
220
- }
221
- const delay = 50 + idx * 30; // Staggered delay: leftmost has largest
222
- return jsxRuntime.jsxs("div", {
223
- style: {
224
- transitionDelay: `${delay}ms`
225
- },
226
- className: clsx("relative", "size-4", "transition-all duration-200", isHovering ? "-translate-x-8" : "translate-x-0"),
227
- children: [jsxRuntime.jsx(Logo, {
228
- className: "size-4"
229
- }), canDisconnect(c, shouldShowDisconnect) && jsxRuntime.jsx(ConnectedIndicator, {
230
- isPinging: isHovering
231
- })]
232
- }, c.chainInfo.namespace);
233
- })
234
- }), jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
235
- className: clsx(`absolute transition-all duration-200`, isHovering ? "right-4" : "-right-4", group.length === 1 && canDisconnect(group[0], shouldShowDisconnect) ? "text-danger-light dark:text-danger-dark" : "text-icon-text-light dark:text-icon-text-dark"),
236
- size: group.length === 1 && canDisconnect(group[0], shouldShowDisconnect) ? "lg" : "1x",
237
- icon: group.length === 1 && canDisconnect(group[0], shouldShowDisconnect) ? freeSolidSvgIcons.faClose : freeSolidSvgIcons.faChevronRight
238
- })]
239
- }, name);
240
- })
241
- })
242
- });
243
- }
244
- function DisconnectWalletScreen(props) {
245
- const {
246
- provider,
247
- onDisconnect
248
- } = props;
249
- const {
250
- isMobile
251
- } = Hook.useModal();
252
- const [isLoading, setIsLoading] = react.useState(false);
253
- const [hasError, setHasError] = react.useState(false);
254
- const handleDisconnect = async () => {
255
- setIsLoading(true);
256
- setHasError(false);
257
- try {
258
- await onDisconnect(provider);
259
- } catch (err) {
260
- setHasError(true);
261
- } finally {
262
- setIsLoading(false);
263
- }
264
- };
265
- return jsxRuntime.jsxs("div", {
266
- className: clsx("mt-8", isMobile ? "w-full" : "w-96"),
267
- children: [jsxRuntime.jsxs("div", {
268
- className: "mt-6 mb-5 flex flex-col items-center gap-3",
269
- children: [jsxRuntime.jsx("img", {
270
- src: provider.info.icon ?? "",
271
- className: "size-14 rounded-full"
272
- }), jsxRuntime.jsx("div", {
273
- className: clsx("text-2xl font-bold text-center", hasError && "text-danger-light dark:text-danger-dark"),
274
- children: hasError ? "You can't disconnect this wallet!" : `Disconnect ${provider.info.name}`
275
- }), jsxRuntime.jsx("div", {
276
- className: "text-icon-text-light dark:text-icon-text-dark text-center !p-0",
277
- children: hasError ? `Try disconnecting directly from the ${provider.info.name} app` : "You can always connect this wallet again later."
278
- })]
279
- }), jsxRuntime.jsx("div", {
280
- className: "flex my-2 mt-0",
281
- children: jsxRuntime.jsx(Buttons.ActionButton, {
282
- onClick: handleDisconnect,
283
- loading: isLoading,
284
- className: clsx("w-full max-w-md bg-danger-light dark:bg-danger-dark text-primary-text-light dark:text-primary-text-dark", hasError && "animate-shake opacity-50"),
285
- spinnerClassName: "text-primary-danger-text-light dark:text-primary-danger-text-dark",
286
- children: "Disconnect Wallet"
287
- })
288
- })]
289
- });
290
- }
291
- function ConnectedIndicator(props) {
292
- const {
293
- isPinging = false
294
- } = props;
295
- return jsxRuntime.jsxs("div", {
296
- className: "flex absolute top-[-2px] right-0",
297
- children: [isPinging && jsxRuntime.jsx("div", {
298
- className: "absolute animate-ping size-[6px] bg-success-light dark:bg-success-dark rounded-full border border-modal-background-light dark:border-modal-background-dark"
299
- }), jsxRuntime.jsx("div", {
300
- className: "size-[6px] bg-success-light dark:bg-success-dark rounded-full border border-modal-background-light dark:border-modal-background-dark"
301
- })]
302
- });
303
- }
304
- function QRCodeDisplay(props) {
305
- const {
306
- uri,
307
- icon,
308
- isLoading
309
- } = props;
310
- return jsxRuntime.jsxs("div", {
311
- className: "relative inline-block",
312
- children: [jsxRuntime.jsx(qrcode_react.QRCodeSVG, {
313
- className: clsx("block border border-modal-background-dark/20 dark:border-modal-background-light/20", "shadow-[0_0_42px] shadow-primary-light/50 dark:shadow-[0_0_42px] dark:shadow-primary-dark/50", isLoading && "blur-sm"),
314
- value: uri,
315
- imageSettings: {
316
- src: icon,
317
- width: 24,
318
- height: 24,
319
- excavate: true
320
- },
321
- size: 200
322
- }), isLoading && jsxRuntime.jsx("div", {
323
- className: "absolute inset-0 flex items-center justify-center",
324
- children: jsxRuntime.jsx(Spinners.Spinner, {
325
- className: "size-12",
326
- strokeWidth: 2
327
- })
328
- })]
329
- });
330
- }
331
- function WalletConnectScreen(props) {
332
- const {
333
- provider: inputProvider,
334
- onAction,
335
- onDisconnect,
336
- successPageDuration
337
- } = props;
338
- const {
339
- pushPage,
340
- popPages,
341
- closeModal,
342
- isMobile
343
- } = Hook.useModal();
344
- const {
345
- walletProviders
346
- } = Hook$1.useTurnkey();
347
- const [isDisconnecting, setIsDisconnecting] = react.useState(false);
348
- const [isConnecting, setIsConnecting] = react.useState(false);
349
- const [disconnectError, setDisconnectError] = react.useState(false);
350
- const [showConnectedScreen, setShowConnectedScreen] = react.useState(inputProvider.connectedAddresses?.length > 0);
351
- const [showCopied, setShowCopied] = react.useState(false);
352
- // Use a ref to track the latest provider for use in callbacks
353
- const latestProviderRef = react.useRef(null);
354
- // Find the current provider state
355
- const provider = walletProviders.find(p => p.interfaceType === inputProvider.interfaceType && p.chainInfo.namespace === inputProvider.chainInfo.namespace);
356
- // if provider is not found then that means that the user entered this screen
357
- // while WalletConnect was still initializing, and then it failed to initialize
358
- react.useEffect(() => {
359
- if (!provider) {
360
- // we have to go back two pages here since thats the screen
361
- // we get wallet providers from state
362
- popPages(2);
363
- }
364
- }, [provider, popPages]);
365
- const connectedAccount = provider?.connectedAddresses?.[0] ?? null;
366
- // Initial connection effect
367
- react.useEffect(() => {
368
- if (provider) {
369
- latestProviderRef.current = provider;
370
- // we don't try to connect if WalletConnect is still initializing or we are already connecting
371
- if (!isConnecting && !provider.isLoading) {
372
- setShowConnectedScreen(provider.connectedAddresses?.length > 0);
373
- runAction(provider);
374
- }
375
- }
376
- }, [provider]);
377
- // Handle the connection action - uses the ref to get latest provider
378
- const runAction = utils.useDebouncedCallback(async targetProvider => {
379
- setIsConnecting(true);
380
- try {
381
- await onAction(targetProvider);
382
- pushPage({
383
- key: "Connect Success",
384
- content: jsxRuntime.jsx(Success.SuccessPage, {
385
- text: "Successfully connected to WalletConnect!",
386
- onComplete: closeModal,
387
- duration: successPageDuration
388
- }),
389
- preventBack: true,
390
- showTitle: false
391
- });
392
- } catch {
393
- // noop
394
- } finally {
395
- setIsConnecting(false);
396
- }
397
- }, 100);
398
- const handleCopy = () => {
399
- setShowCopied(true);
400
- navigator.clipboard.writeText(`${provider?.uri}`);
401
- setTimeout(() => {
402
- setShowCopied(false);
403
- }, 1500);
404
- };
405
- // Handle disconnection - uses the ref to get the correct provider after state update
406
- const handleDisconnect = async () => {
407
- setIsDisconnecting(true);
408
- setDisconnectError(false);
409
- try {
410
- // Use the current provider from ref for disconnect
411
- await onDisconnect?.(latestProviderRef.current);
412
- } catch (err) {
413
- console.error("Error disconnecting wallet:", err);
414
- setDisconnectError(true);
415
- } finally {
416
- setIsDisconnecting(false);
417
- setShowConnectedScreen(false);
418
- }
419
- };
420
- return jsxRuntime.jsx("div", {
421
- className: "p-3 flex flex-col items-center",
422
- children: showConnectedScreen ? jsxRuntime.jsxs("div", {
423
- className: clsx("mt-8 flex flex-col items-center gap-3", isMobile ? "w-full" : "w-96"),
424
- children: [jsxRuntime.jsxs("div", {
425
- className: "w-full justify-between flex items-center flex-1",
426
- children: [jsxRuntime.jsx("div", {
427
- className: clsx("flex items-center justify-center bg-icon-background-light dark:bg-icon-background-dark rounded-full p-2 text-icon-text-light dark:text-icon-text-dark", isMobile ? "size-18" : "size-24"),
428
- children: jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
429
- icon: freeSolidSvgIcons.faMobileScreen,
430
- size: isMobile ? "3x" : "4x"
431
- })
432
- }), jsxRuntime.jsxs("div", {
433
- className: "flex flex-row items-center justify-center space-x-2.5 font-medium text-icon-text-light dark:text-icon-text-dark",
434
- children: [jsxRuntime.jsxs("div", {
435
- className: "flex items-center justify-center",
436
- children: [jsxRuntime.jsx("img", {
437
- className: "size-5",
438
- src: provider?.info.icon,
439
- alt: "Wallet connect logo"
440
- }), jsxRuntime.jsx("img", {
441
- className: "size-5 absolute animate-ping",
442
- src: provider?.info.icon,
443
- alt: "Wallet connect logo"
444
- })]
445
- }), jsxRuntime.jsxs("span", {
446
- children: [connectedAccount?.slice(0, 3), "...", connectedAccount?.slice(-3)]
447
- })]
448
- }), jsxRuntime.jsx("div", {
449
- className: clsx("flex items-center justify-center bg-icon-background-light dark:bg-icon-background-dark rounded-full p-2 text-icon-text-light dark:text-icon-text-dark", isMobile ? "size-18" : "size-24"),
450
- children: jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
451
- icon: freeSolidSvgIcons.faLaptop,
452
- size: isMobile ? "3x" : "4x"
453
- })
454
- })]
455
- }), jsxRuntime.jsx("div", {
456
- className: clsx("flex flex-row items-center mt-5 text-2xl font-bold text-center"),
457
- children: "Already connected"
458
- }), jsxRuntime.jsxs("div", {
459
- className: "text-icon-text-light dark:text-icon-text-dark text-center text-xs flex flex-col space-y-2 !p-0",
460
- children: [jsxRuntime.jsx("span", {
461
- children: "Please open the wallet app on your phone to sign the message."
462
- }), isDisconnecting ? jsxRuntime.jsx("span", {
463
- className: "text-danger-light dark:text-danger-dark opacity-50",
464
- children: "Disconnecting..."
465
- }) : disconnectError ? jsxRuntime.jsx("span", {
466
- className: "text-danger-light dark:text-danger-dark opacity-50",
467
- children: "Error disconnecting wallet."
468
- }) : jsxRuntime.jsxs("span", {
469
- children: ["Need to connect a different wallet?", " ", jsxRuntime.jsx("span", {
470
- className: "text-danger-light dark:text-danger-dark cursor-pointer underline",
471
- onClick: handleDisconnect,
472
- children: "Disconnect"
473
- }), " ", "this wallet first."]
474
- })]
475
- })]
476
- }) : jsxRuntime.jsxs("div", {
477
- className: clsx("mt-8 flex flex-col items-center gap-3", isMobile ? "w-full" : "w-96"),
478
- children: [jsxRuntime.jsx(QRCodeDisplay, {
479
- uri: provider?.isLoading ? "https://www.turnkey.com/" : provider?.uri ?? "",
480
- icon: provider?.info.icon ?? "",
481
- isLoading: !!provider?.isLoading
482
- }), jsxRuntime.jsxs(Buttons.BaseButton, {
483
- onClick: handleCopy,
484
- className: clsx("text-xs font-semibold bg-transparent border-none text-icon-text-light dark:text-icon-text-dark", "flex flex-row items-center gap-x-2 px-3 py-2 rounded-full transition-all", "hover:bg-icon-background-light dark:hover:bg-icon-background-dark active:scale-95", provider?.isLoading && "invisible pointer-events-none"),
485
- children: [jsxRuntime.jsx("span", {
486
- children: "Copy link"
487
- }), jsxRuntime.jsxs("div", {
488
- className: "relative",
489
- children: [jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
490
- icon: showCopied ? freeSolidSvgIcons.faCheck : freeSolidSvgIcons.faCopy,
491
- className: clsx("transition-colors", showCopied ? "text-success-light dark:text-success-dark" : "text-icon-text-light dark:text-icon-text-dark")
492
- }), showCopied && jsxRuntime.jsx(reactFontawesome.FontAwesomeIcon, {
493
- icon: freeSolidSvgIcons.faCheck,
494
- className: "absolute inset-0 m-auto text-success-light dark:text-success-dark animate-ping"
495
- })]
496
- })]
497
- }), jsxRuntime.jsx("div", {
498
- className: clsx("text-2xl font-bold text-center"),
499
- children: provider?.isLoading ? "Initializing WalletConnect..." : "Use your phone"
500
- }), jsxRuntime.jsx("div", {
501
- className: "text-icon-text-light dark:text-icon-text-dark text-center !p-0",
502
- children: provider?.isLoading ? "Preparing your connection. This will only take a moment." : "Scan this QR code with your WalletConnect-compatible wallet to connect"
503
- })]
504
- })
505
- });
506
- }
507
-
508
- exports.ConnectedIndicator = ConnectedIndicator;
509
- exports.DisconnectWalletScreen = DisconnectWalletScreen;
510
- exports.ExternalWalletChainSelector = ExternalWalletChainSelector;
511
- exports.ExternalWalletSelector = ExternalWalletSelector;
512
- exports.WalletAuthButton = WalletAuthButton;
513
- exports.WalletConnectScreen = WalletConnectScreen;
514
- //# sourceMappingURL=Wallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Wallet.js","sources":["../../../src/components/auth/Wallet.tsx"],"sourcesContent":[null],"names":["WalletAuthButton","props","onContinue","isLoading","setIsLoading","useState","handleContinue","Promise","resolve","_jsx","className","children","ActionButton","name","onClick","loading","canDisconnect","provider","shouldShowDisconnect","connectedAddresses","length","ExternalWalletChainSelector","providers","onSelect","onDisconnect","walletProviders","useTurnkey","isMobile","popPage","useModal","currentProviders","map","inputProvider","find","p","interfaceType","chainInfo","namespace","filter","undefined","useEffect","handleSelect","_jsxs","clsx","src","info","icon","isHovering","setIsHovering","onMouseEnter","onMouseLeave","isEthereumProvider","EthereumLogo","ConnectedIndicator","isPinging","isSolanaProvider","SolanaLogo","slice","FontAwesomeIcon","size","faClose","faChevronRight","ExternalWalletSelector","pushPage","grouped","reduce","acc","push","handleSelectGroup","group","key","content","groupedValues","Object","values","keys","entries","first","alt","c","idx","Logo","Error","delay","style","transitionDelay","DisconnectWalletScreen","hasError","setHasError","handleDisconnect","err","spinnerClassName","QRCodeDisplay","uri","QRCode","value","imageSettings","width","height","excavate","Spinner","strokeWidth","WalletConnectScreen","onAction","successPageDuration","popPages","closeModal","isDisconnecting","setIsDisconnecting","isConnecting","setIsConnecting","disconnectError","setDisconnectError","showConnectedScreen","setShowConnectedScreen","showCopied","setShowCopied","latestProviderRef","useRef","connectedAccount","current","runAction","useDebouncedCallback","targetProvider","SuccessPage","text","onComplete","duration","preventBack","showTitle","handleCopy","navigator","clipboard","writeText","setTimeout","console","error","faMobileScreen","faLaptop","BaseButton","faCheck","faCopy"],"mappings":"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"}