@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.
- package/dist/components/auth/index.d.ts.map +1 -1
- package/dist/components/auth/index.js +7 -57
- package/dist/components/auth/index.js.map +1 -1
- package/dist/components/auth/index.mjs +16 -132
- package/dist/components/auth/index.mjs.map +1 -1
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts +10 -0
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.d.ts.map +1 -0
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.js +204 -0
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.js.map +1 -0
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs +253 -0
- package/dist/components/auth/wallet/DesktopWalletConnectScreen.mjs.map +1 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.d.ts +8 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.d.ts.map +1 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.js +58 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.js.map +1 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.mjs +80 -0
- package/dist/components/auth/wallet/DisconnectWalletScreen.mjs.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.d.ts +10 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.d.ts.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.js +117 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.js.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs +151 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.d.ts +18 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.d.ts.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.js +233 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.js.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.mjs +323 -0
- package/dist/components/auth/wallet/ExternalWalletSelector.mjs.map +1 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts +11 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.d.ts.map +1 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.js +200 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.js.map +1 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs +251 -0
- package/dist/components/auth/wallet/MobileWalletConnectScreen.mjs.map +1 -0
- package/dist/components/auth/wallet/QRCodeDisplay.d.ts +8 -0
- package/dist/components/auth/wallet/QRCodeDisplay.d.ts.map +1 -0
- package/dist/components/auth/wallet/QRCodeDisplay.js +37 -0
- package/dist/components/auth/wallet/QRCodeDisplay.js.map +1 -0
- package/dist/components/auth/wallet/QRCodeDisplay.mjs +33 -0
- package/dist/components/auth/wallet/QRCodeDisplay.mjs.map +1 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts +8 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.d.ts.map +1 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.js +253 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.js.map +1 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs +299 -0
- package/dist/components/auth/wallet/ShowAllWalletsScreen.mjs.map +1 -0
- package/dist/components/auth/wallet/WalletAuthButton.d.ts +6 -0
- package/dist/components/auth/wallet/WalletAuthButton.d.ts.map +1 -0
- package/dist/components/auth/wallet/WalletAuthButton.js +33 -0
- package/dist/components/auth/wallet/WalletAuthButton.js.map +1 -0
- package/dist/components/auth/wallet/WalletAuthButton.mjs +47 -0
- package/dist/components/auth/wallet/WalletAuthButton.mjs.map +1 -0
- package/dist/components/auth/wallet/WalletButton.d.ts +16 -0
- package/dist/components/auth/wallet/WalletButton.d.ts.map +1 -0
- package/dist/components/auth/wallet/WalletButton.js +79 -0
- package/dist/components/auth/wallet/WalletButton.js.map +1 -0
- package/dist/components/auth/wallet/WalletButton.mjs +84 -0
- package/dist/components/auth/wallet/WalletButton.mjs.map +1 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.d.ts +2 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.d.ts.map +1 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.js +22 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.js.map +1 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.mjs +20 -0
- package/dist/components/auth/wallet/WalletButtonSkeleton.mjs.map +1 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.d.ts +12 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.d.ts.map +1 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.js +79 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.js.map +1 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.mjs +102 -0
- package/dist/components/auth/wallet/WalletConnectAppChainSelector.mjs.map +1 -0
- package/dist/components/auth/wallet/WalletConnectFlow.d.ts +21 -0
- package/dist/components/auth/wallet/WalletConnectFlow.d.ts.map +1 -0
- package/dist/components/auth/wallet/WalletConnectFlow.js +163 -0
- package/dist/components/auth/wallet/WalletConnectFlow.js.map +1 -0
- package/dist/components/auth/wallet/WalletConnectFlow.mjs +310 -0
- package/dist/components/auth/wallet/WalletConnectFlow.mjs.map +1 -0
- package/dist/components/auth/wallet/constants.d.ts +6 -0
- package/dist/components/auth/wallet/constants.d.ts.map +1 -0
- package/dist/components/auth/wallet/constants.js +14 -0
- package/dist/components/auth/wallet/constants.js.map +1 -0
- package/dist/components/auth/wallet/constants.mjs +8 -0
- package/dist/components/auth/wallet/constants.mjs.map +1 -0
- package/dist/components/auth/wallet/utils.d.ts +4 -0
- package/dist/components/auth/wallet/utils.d.ts.map +1 -0
- package/dist/components/auth/wallet/utils.js +9 -0
- package/dist/components/auth/wallet/utils.js.map +1 -0
- package/dist/components/auth/wallet/utils.mjs +7 -0
- package/dist/components/auth/wallet/utils.mjs.map +1 -0
- package/dist/components/design/Buttons.d.ts +1 -0
- package/dist/components/design/Buttons.d.ts.map +1 -1
- package/dist/components/design/Buttons.js +2 -0
- package/dist/components/design/Buttons.js.map +1 -1
- package/dist/components/design/Buttons.mjs +2 -0
- package/dist/components/design/Buttons.mjs.map +1 -1
- package/dist/components/design/ConnectedIndicator.d.ts +6 -0
- package/dist/components/design/ConnectedIndicator.d.ts.map +1 -0
- package/dist/components/design/ConnectedIndicator.js +20 -0
- package/dist/components/design/ConnectedIndicator.js.map +1 -0
- package/dist/components/design/ConnectedIndicator.mjs +17 -0
- package/dist/components/design/ConnectedIndicator.mjs.map +1 -0
- package/dist/components/design/Inputs.d.ts +7 -0
- package/dist/components/design/Inputs.d.ts.map +1 -1
- package/dist/components/design/Inputs.js +37 -0
- package/dist/components/design/Inputs.js.map +1 -1
- package/dist/components/design/Inputs.mjs +39 -2
- package/dist/components/design/Inputs.mjs.map +1 -1
- package/dist/components/design/Svg.d.ts +1 -0
- package/dist/components/design/Svg.d.ts.map +1 -1
- package/dist/components/user/ConnectWallet.d.ts +1 -1
- package/dist/components/user/ConnectWallet.d.ts.map +1 -1
- package/dist/components/user/ConnectWallet.js +6 -100
- package/dist/components/user/ConnectWallet.js.map +1 -1
- package/dist/components/user/ConnectWallet.mjs +5 -183
- package/dist/components/user/ConnectWallet.mjs.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/providers/WalletConnectProvider.d.ts +23 -0
- package/dist/providers/WalletConnectProvider.d.ts.map +1 -0
- package/dist/providers/WalletConnectProvider.js +72 -0
- package/dist/providers/WalletConnectProvider.js.map +1 -0
- package/dist/providers/WalletConnectProvider.mjs +93 -0
- package/dist/providers/WalletConnectProvider.mjs.map +1 -0
- package/dist/providers/client/Provider.d.ts.map +1 -1
- package/dist/providers/client/Provider.js +5 -2
- package/dist/providers/client/Provider.js.map +1 -1
- package/dist/providers/client/Provider.mjs +5 -2
- package/dist/providers/client/Provider.mjs.map +1 -1
- package/dist/providers/modal/Provider.d.ts +5 -1
- package/dist/providers/modal/Provider.d.ts.map +1 -1
- package/dist/providers/modal/Provider.js.map +1 -1
- package/dist/providers/modal/Provider.mjs.map +1 -1
- package/dist/providers/modal/Root.d.ts.map +1 -1
- package/dist/providers/modal/Root.js +2 -0
- package/dist/providers/modal/Root.js.map +1 -1
- package/dist/providers/modal/Root.mjs +2 -0
- package/dist/providers/modal/Root.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/base.d.ts +6 -0
- package/dist/types/base.d.ts.map +1 -1
- package/dist/types/base.js +7 -0
- package/dist/types/base.js.map +1 -1
- package/dist/types/base.mjs +8 -1
- package/dist/types/base.mjs.map +1 -1
- package/dist/utils/utils.d.ts +2 -1
- package/dist/utils/utils.d.ts.map +1 -1
- package/dist/utils/utils.js +5 -0
- package/dist/utils/utils.js.map +1 -1
- package/dist/utils/utils.mjs +7 -1
- package/dist/utils/utils.mjs.map +1 -1
- package/package.json +3 -3
- package/dist/components/auth/Wallet.d.ts +0 -34
- package/dist/components/auth/Wallet.d.ts.map +0 -1
- package/dist/components/auth/Wallet.js +0 -514
- package/dist/components/auth/Wallet.js.map +0 -1
- package/dist/components/auth/Wallet.mjs +0 -615
- 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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"}
|