@turnkey/react-wallet-kit 2.0.0 → 2.1.0
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 +115 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.js.map +1 -0
- package/dist/components/auth/wallet/ExternalWalletChainSelector.mjs +149 -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/TurnkeyProvider.d.ts.map +1 -1
- package/dist/providers/TurnkeyProvider.js +2 -1
- package/dist/providers/TurnkeyProvider.js.map +1 -1
- package/dist/providers/TurnkeyProvider.mjs +4 -3
- package/dist/providers/TurnkeyProvider.mjs.map +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/providers/theme/Overrides.d.ts +1 -0
- package/dist/providers/theme/Overrides.d.ts.map +1 -1
- package/dist/providers/theme/Overrides.js +3 -1
- package/dist/providers/theme/Overrides.js.map +1 -1
- package/dist/providers/theme/Overrides.mjs +3 -1
- package/dist/providers/theme/Overrides.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/base.d.ts +8 -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 +5 -5
- 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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"}
|