@nexus-cross/connect-kit-react 1.1.4 → 1.3.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/README.md +15 -29
- package/dist/chunk-KM3ZTTHL.js +143 -0
- package/dist/client.d.ts +46 -0
- package/dist/client.js +1 -0
- package/dist/index.d.ts +378 -25
- package/dist/index.js +1 -12
- package/package.json +15 -6
- package/dist/components/ConnectButton.d.ts +0 -87
- package/dist/components/ConnectButton.d.ts.map +0 -1
- package/dist/components/ConnectButton.js +0 -417
- package/dist/components/ConnectButton.js.map +0 -1
- package/dist/components/CrossConnectKitProvider.d.ts +0 -38
- package/dist/components/CrossConnectKitProvider.d.ts.map +0 -1
- package/dist/components/CrossConnectKitProvider.js +0 -737
- package/dist/components/CrossConnectKitProvider.js.map +0 -1
- package/dist/components/CrossConnectModal.d.ts +0 -20
- package/dist/components/CrossConnectModal.d.ts.map +0 -1
- package/dist/components/CrossConnectModal.js +0 -80
- package/dist/components/CrossConnectModal.js.map +0 -1
- package/dist/components/OtherWalletsModal.d.ts +0 -20
- package/dist/components/OtherWalletsModal.d.ts.map +0 -1
- package/dist/components/OtherWalletsModal.js +0 -300
- package/dist/components/OtherWalletsModal.js.map +0 -1
- package/dist/components/WalletInfoPopover.d.ts +0 -7
- package/dist/components/WalletInfoPopover.d.ts.map +0 -1
- package/dist/components/WalletInfoPopover.js +0 -166
- package/dist/components/WalletInfoPopover.js.map +0 -1
- package/dist/components/types.d.ts +0 -23
- package/dist/components/types.d.ts.map +0 -1
- package/dist/components/types.js +0 -2
- package/dist/components/types.js.map +0 -1
- package/dist/context/CrossConnectKitContext.d.ts +0 -93
- package/dist/context/CrossConnectKitContext.d.ts.map +0 -1
- package/dist/context/CrossConnectKitContext.js +0 -10
- package/dist/context/CrossConnectKitContext.js.map +0 -1
- package/dist/context/CrossConnectKitThemeContext.d.ts +0 -41
- package/dist/context/CrossConnectKitThemeContext.d.ts.map +0 -1
- package/dist/context/CrossConnectKitThemeContext.js +0 -22
- package/dist/context/CrossConnectKitThemeContext.js.map +0 -1
- package/dist/hooks/useCrossxEmbeddedInfo.d.ts +0 -41
- package/dist/hooks/useCrossxEmbeddedInfo.d.ts.map +0 -1
- package/dist/hooks/useCrossxEmbeddedInfo.js +0 -241
- package/dist/hooks/useCrossxEmbeddedInfo.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -1,417 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback, useMemo } from 'react';
|
|
3
|
-
import { useAccount, useChainId, useConfig, useSwitchChain } from 'wagmi';
|
|
4
|
-
import { getPublicClient } from 'wagmi/actions';
|
|
5
|
-
import { WalletInfo, ConnectorId } from '@nexus-cross/dapp-ui';
|
|
6
|
-
import { APPLE_ICON, BINANCE_ICON, CROSSX_ICON, EXTENSION_ICON, GOOGLE_ICON, METAMASK_ICON, } from '@nexus-cross/connect-kit-wagmi';
|
|
7
|
-
import { useCrossConnectKit } from '../context/CrossConnectKitContext.js';
|
|
8
|
-
import { useOptionalCrossConnectKitTheme } from '../context/CrossConnectKitThemeContext.js';
|
|
9
|
-
import { useCrossxEmbeddedInfo } from '../hooks/useCrossxEmbeddedInfo.js';
|
|
10
|
-
/**
|
|
11
|
-
* `WalletProvider` → trigger pill 표시 정보 + WalletInfo의 `connectorId` 매핑.
|
|
12
|
-
* `google`/`apple`은 crossy-sdk embedded 지갑의 로그인 타입이므로 커넥터는
|
|
13
|
-
* `CROSSx`로 귀속된다.
|
|
14
|
-
*/
|
|
15
|
-
const PROVIDER_MAP = {
|
|
16
|
-
google: { name: 'Google', iconUrl: GOOGLE_ICON, connectorId: ConnectorId.CROSSx },
|
|
17
|
-
apple: { name: 'Apple', iconUrl: APPLE_ICON, connectorId: ConnectorId.CROSSx },
|
|
18
|
-
cross: { name: 'CROSSx', iconUrl: CROSSX_ICON, connectorId: ConnectorId.CROSSx },
|
|
19
|
-
metamask: {
|
|
20
|
-
name: 'MetaMask',
|
|
21
|
-
iconUrl: METAMASK_ICON,
|
|
22
|
-
connectorId: ConnectorId.MetaMask,
|
|
23
|
-
},
|
|
24
|
-
binance: {
|
|
25
|
-
name: 'Binance Wallet',
|
|
26
|
-
iconUrl: BINANCE_ICON,
|
|
27
|
-
connectorId: ConnectorId.Binance,
|
|
28
|
-
},
|
|
29
|
-
};
|
|
30
|
-
function mapConnectorId(walletId) {
|
|
31
|
-
switch (walletId) {
|
|
32
|
-
case 'cross_embedded':
|
|
33
|
-
return ConnectorId.CROSSx;
|
|
34
|
-
case 'metamask':
|
|
35
|
-
return ConnectorId.MetaMask;
|
|
36
|
-
case 'binance':
|
|
37
|
-
return ConnectorId.Binance;
|
|
38
|
-
default:
|
|
39
|
-
return undefined;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Trigger-only display mapping — what the pill next to the address
|
|
44
|
-
* shows. crossy-sdk 2.0 users see Google/Apple (their OAuth provider)
|
|
45
|
-
* rather than the generic CROSSx glyph; cross_wallet / cross_extension
|
|
46
|
-
* stay on CROSSx; external wallets show their own brand.
|
|
47
|
-
*
|
|
48
|
-
* The WalletInfo popover itself keeps cross-app-launcher's built-in
|
|
49
|
-
* "Connected with CROSSx" wording — we deliberately do NOT override
|
|
50
|
-
* `connectorName` / `connectorIconUrl` on the WalletInfo root.
|
|
51
|
-
*/
|
|
52
|
-
function resolveTriggerDisplay(walletId, loginType) {
|
|
53
|
-
switch (walletId) {
|
|
54
|
-
case 'cross_embedded':
|
|
55
|
-
if (loginType === 'google') {
|
|
56
|
-
return { name: 'Google', iconUrl: GOOGLE_ICON };
|
|
57
|
-
}
|
|
58
|
-
if (loginType === 'apple') {
|
|
59
|
-
return { name: 'Apple', iconUrl: APPLE_ICON };
|
|
60
|
-
}
|
|
61
|
-
return { name: 'CROSSx', iconUrl: CROSSX_ICON };
|
|
62
|
-
case 'cross_wallet':
|
|
63
|
-
return { name: 'CROSSx Wallet', iconUrl: CROSSX_ICON };
|
|
64
|
-
case 'cross_extension':
|
|
65
|
-
return { name: 'CROSSx Extension', iconUrl: EXTENSION_ICON };
|
|
66
|
-
case 'metamask':
|
|
67
|
-
return { name: 'MetaMask', iconUrl: METAMASK_ICON };
|
|
68
|
-
case 'binance':
|
|
69
|
-
return { name: 'Binance Wallet', iconUrl: BINANCE_ICON };
|
|
70
|
-
default:
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* `ConnectButton`은 내부에서 `WalletInfo`를 조립하지만, 호출측은 그 사실을
|
|
76
|
-
* 몰라도 되도록 `WalletInfoProps`를 전부 pass-through 한다
|
|
77
|
-
* (`walletAddress` / `children` 만 제외).
|
|
78
|
-
*
|
|
79
|
-
* 자동 계산 규칙 (명시적으로 주면 덮어쓰기):
|
|
80
|
-
* - `walletAddress` ← `user.address` ?? wagmi `address`
|
|
81
|
-
* - `connectorId` ← `user.provider` ?? `currentWallet` 매핑
|
|
82
|
-
* - `accountName` ← `user.name` ?? crossy-sdk getAddresses name
|
|
83
|
-
* - `onDisconnect` ← kit `disconnect()`
|
|
84
|
-
* - `onSelectWallet` ← OAuth embedded 세션일 때만 kit `selectWallet()`
|
|
85
|
-
* (외부 지갑은 기본 alert을 막기 위해 CSS로 숨김)
|
|
86
|
-
* - `showPortfolio` ← (legacy) `enablePortfolio`
|
|
87
|
-
* - `theme` ← kit provider의 `themeMode`
|
|
88
|
-
* - `env` ← `NEXT_PUBLIC_CROSSX_ENVIRONMENT`, or `"production"`
|
|
89
|
-
*
|
|
90
|
-
* Trigger 버튼(주소 옆 pill)은 호출측이 건드릴 수 없다 — 플랫폼 아이콘 + 축약
|
|
91
|
-
* 주소의 통일된 UX를 강제한다.
|
|
92
|
-
*/
|
|
93
|
-
export function ConnectButton({ label = 'Connect Wallet', className, style, walletInfoStyle, user, enablePortfolio,
|
|
94
|
-
// 내부 자동 계산 대상 — 명시되면 우선순위로 사용
|
|
95
|
-
theme: themeProp, accountName: accountNameProp, connectorId: connectorIdProp, showPortfolio: showPortfolioProp, sendAccounts: sendAccountsProp, getTransactionReceipt: getTransactionReceiptProp, sendTransaction: sendTransactionProp, estimateGas: estimateGasProp, onDisconnect: onDisconnectProp, onSelectWallet: onSelectWalletProp,
|
|
96
|
-
// 기본값을 갖는 기존 prop
|
|
97
|
-
showBalance = true, env,
|
|
98
|
-
// 그 외 WalletInfoProps는 그대로 forward
|
|
99
|
-
...walletInfoRest }) {
|
|
100
|
-
const { address: wagmiAddress, isConnected, connector } = useAccount();
|
|
101
|
-
const wagmiConfig = useConfig();
|
|
102
|
-
const currentChainId = useChainId();
|
|
103
|
-
const { switchChainAsync } = useSwitchChain();
|
|
104
|
-
// `isConnecting` here is the kit's UNIFIED connect-in-flight flag, not
|
|
105
|
-
// wagmi's `useAccount().isConnecting`. It is set the instant the user
|
|
106
|
-
// picks a wallet in the modal and stays true until the connection
|
|
107
|
-
// succeeds / is cancelled — identical across the wagmi connectAsync
|
|
108
|
-
// path, the reown direct-connect path (metamask/binance, which never
|
|
109
|
-
// touches wagmi's `isConnecting`), and the embedded OAuth popup. See
|
|
110
|
-
// CrossConnectKitContextValue.isConnecting.
|
|
111
|
-
const { connectWallet, disconnect, selectWallet, currentWallet, isConnecting } = useCrossConnectKit();
|
|
112
|
-
// When mounted inside `<CrossConnectKitProvider>`, default the `theme` prop
|
|
113
|
-
// to whatever mode the kit is running — so a single kit-level
|
|
114
|
-
// `themeTokens: { light, dark }` plus a `theme: 'dark'` flips
|
|
115
|
-
// WalletInfo + embedded SDK together without per-call wiring.
|
|
116
|
-
const kitTheme = useOptionalCrossConnectKitTheme();
|
|
117
|
-
const theme = themeProp ?? kitTheme?.mode ?? 'dark';
|
|
118
|
-
// `user`가 주어지면 표시용 주소/이름/커넥터 식별자를 override 한다.
|
|
119
|
-
// 실제 연결 상태(isConnected 등)는 여전히 wagmi를 기준으로 한다.
|
|
120
|
-
const address = user?.address ?? wagmiAddress;
|
|
121
|
-
const userProviderMeta = user ? PROVIDER_MAP[user.provider] : null;
|
|
122
|
-
// The spinner is driven entirely by the kit's unified `isConnecting`
|
|
123
|
-
// (destructured above). The provider sets it on the user's explicit
|
|
124
|
-
// pick and clears it on success/cancel/error across every path, so the
|
|
125
|
-
// button no longer needs to track its own "did the user click?" state
|
|
126
|
-
// or paper over wagmi's stuck-`isConnecting` quirks — both of which
|
|
127
|
-
// made the loading display inconsistent between wallets.
|
|
128
|
-
const { loginType, accountName: autoAccountName, accounts: autoAccounts, } = useCrossxEmbeddedInfo({
|
|
129
|
-
walletId: currentWallet,
|
|
130
|
-
connector,
|
|
131
|
-
address,
|
|
132
|
-
});
|
|
133
|
-
// `user`가 주어졌을 때 SDK 기반 자동 감지값을 덮어쓴다.
|
|
134
|
-
const triggerDisplay = useMemo(() => userProviderMeta
|
|
135
|
-
? { name: userProviderMeta.name, iconUrl: userProviderMeta.iconUrl }
|
|
136
|
-
: resolveTriggerDisplay(currentWallet, loginType), [userProviderMeta, currentWallet, loginType]);
|
|
137
|
-
const resolvedAccountName = accountNameProp ?? user?.name ?? autoAccountName ?? undefined;
|
|
138
|
-
const autoConnectorId = userProviderMeta
|
|
139
|
-
? userProviderMeta.connectorId
|
|
140
|
-
: mapConnectorId(currentWallet);
|
|
141
|
-
const resolvedConnectorId = connectorIdProp ?? autoConnectorId;
|
|
142
|
-
const resolvedShowPortfolio = showPortfolioProp ?? !!enablePortfolio;
|
|
143
|
-
const handleConnectClick = useCallback(() => {
|
|
144
|
-
// Opens the unified connect modal. The actual connecting state is
|
|
145
|
-
// owned by the kit and surfaced via `isConnecting` once the user
|
|
146
|
-
// picks a wallet — nothing to track here.
|
|
147
|
-
connectWallet().catch((err) => {
|
|
148
|
-
console.error('[crossx-kit] connectWallet error:', err);
|
|
149
|
-
});
|
|
150
|
-
}, [connectWallet]);
|
|
151
|
-
const handleDisconnect = useCallback(() => {
|
|
152
|
-
disconnect();
|
|
153
|
-
}, [disconnect]);
|
|
154
|
-
const resolvedOnDisconnect = onDisconnectProp ?? handleDisconnect;
|
|
155
|
-
// 지갑 선택 chevron은 crossy-sdk 2.0 OAuth embedded 세션일 때만 기본 동작이
|
|
156
|
-
// 의미 있다(`provider.sdk.selectWallet` 지원). 즉
|
|
157
|
-
// - `user`가 주어지면 provider ∈ { google, apple }일 때 기본 제공
|
|
158
|
-
// - `user`가 없으면 currentWallet === "cross_embedded"일 때 기본 제공
|
|
159
|
-
// 호출측이 `onSelectWallet`을 직접 넘기면 그 지갑 조건과 무관하게 존중한다.
|
|
160
|
-
const canAutoSelectWallet = user
|
|
161
|
-
? user.provider === 'google' || user.provider === 'apple'
|
|
162
|
-
: currentWallet === 'cross_embedded';
|
|
163
|
-
const handleSelectWallet = useCallback(() => {
|
|
164
|
-
selectWallet().catch((err) => {
|
|
165
|
-
console.error('[crossx-kit] selectWallet error:', err);
|
|
166
|
-
});
|
|
167
|
-
}, [selectWallet]);
|
|
168
|
-
const resolvedOnSelectWallet = onSelectWalletProp ?? (canAutoSelectWallet ? handleSelectWallet : undefined);
|
|
169
|
-
// 송금 화면은 token.chainId 가 현재 연결된 체인과 다를 수 있다(예: CROSS 에
|
|
170
|
-
// 연결된 채로 BSC 토큰 전송). `usePublicClient()` 는 현재 활성 체인만 따라가
|
|
171
|
-
// 잘못된 RPC 로 getTransactionReceipt / estimateGas 가 가버려 receipt 누락
|
|
172
|
-
// 또는 "execution reverted" 가 떨어진다. 그래서 chainId 별로 wagmi config
|
|
173
|
-
// 에서 정확한 client 를 꺼낸다.
|
|
174
|
-
const getTransactionReceipt = useCallback(async ({ hash, chainId }) => {
|
|
175
|
-
const client = getPublicClient(wagmiConfig, chainId ? { chainId: chainId } : undefined);
|
|
176
|
-
if (!client)
|
|
177
|
-
return null;
|
|
178
|
-
try {
|
|
179
|
-
return await client.getTransactionReceipt({ hash });
|
|
180
|
-
}
|
|
181
|
-
catch {
|
|
182
|
-
return null;
|
|
183
|
-
}
|
|
184
|
-
}, [wagmiConfig]);
|
|
185
|
-
// BSC(56) / BSC Testnet(97) 은 EIP-1559 미지원. estimateGas 단에서 이미 BSC
|
|
186
|
-
// 에 대해 gasPrice 만 채워 보내지만, 송금 단계에서도 `type: 'legacy'` 를
|
|
187
|
-
// 명시해 viem 이 baseFee=0 으로 합성한 1559 형식 트랜잭션을 일부 RPC/지갑이
|
|
188
|
-
// 거부하는 케이스를 막는다.
|
|
189
|
-
const sendTransaction = useCallback(async (args) => {
|
|
190
|
-
if (!sendTransactionProp)
|
|
191
|
-
throw new Error('sendTransaction is not provided');
|
|
192
|
-
if (args.chainId !== undefined && args.chainId !== currentChainId) {
|
|
193
|
-
await switchChainAsync({ chainId: args.chainId });
|
|
194
|
-
}
|
|
195
|
-
const isBsc = args.chainId === 56 || args.chainId === 97;
|
|
196
|
-
const finalArgs = isBsc
|
|
197
|
-
? { ...args, type: 'legacy' }
|
|
198
|
-
: args;
|
|
199
|
-
return sendTransactionProp(finalArgs);
|
|
200
|
-
}, [sendTransactionProp, currentChainId, switchChainAsync]);
|
|
201
|
-
const resolvedSendTransaction = sendTransactionProp ? sendTransaction : undefined;
|
|
202
|
-
// SendPage Confirm 화면에서 호출되는 가스 추정.
|
|
203
|
-
//
|
|
204
|
-
// 핵심: `args.chainId` 에 맞는 publicClient 를 wagmi config 에서 직접 꺼낸다.
|
|
205
|
-
// `usePublicClient()` 가 따라가는 활성 체인은 현재 연결된 지갑의 체인이라,
|
|
206
|
-
// 사용자가 CROSS 에 연결된 채로 BSC 토큰 송금 화면을 띄우면 BSC 토큰 컨트랙트가
|
|
207
|
-
// 존재하지 않는 CROSS RPC 로 estimateGas 를 보내 "execution reverted" 가
|
|
208
|
-
// 떨어진다. chainId 별 client 로 호출해야 토큰이 실제 배포된 체인에서 시뮬레이션
|
|
209
|
-
// 된다.
|
|
210
|
-
//
|
|
211
|
-
// BSC(56) / BSC Testnet(97)은 EIP-1559 미지원 — 노드가 baseFeePerGas 를 비워
|
|
212
|
-
// 반환해 viem 이 0 으로 합성한 maxFeePerGas 를 돌려주거나, 일부 RPC 가 1559 형식
|
|
213
|
-
// 트랜잭션을 거부한다. 명시적으로 legacy 분기를 타도록 강제한다.
|
|
214
|
-
// (gas-fee 문서 §3, §4 참고)
|
|
215
|
-
const defaultEstimateGas = useCallback(async (args) => {
|
|
216
|
-
const targetChainId = args.chainId ?? currentChainId;
|
|
217
|
-
const client = getPublicClient(wagmiConfig, targetChainId ? { chainId: targetChainId } : undefined);
|
|
218
|
-
if (!client) {
|
|
219
|
-
throw new Error(`publicClient for chainId ${targetChainId ?? 'unknown'} is not available — ` +
|
|
220
|
-
'register the chain in createCrossxConfig({ networks }).');
|
|
221
|
-
}
|
|
222
|
-
const legacyOnly = targetChainId === 56 || targetChainId === 97;
|
|
223
|
-
const [gasLimit, fees] = await Promise.all([
|
|
224
|
-
client.estimateGas({
|
|
225
|
-
account: args.from,
|
|
226
|
-
to: args.to,
|
|
227
|
-
value: args.value,
|
|
228
|
-
data: args.data,
|
|
229
|
-
}),
|
|
230
|
-
(async () => {
|
|
231
|
-
if (legacyOnly) {
|
|
232
|
-
const gasPrice = await client.getGasPrice();
|
|
233
|
-
return {
|
|
234
|
-
maxFeePerGas: undefined,
|
|
235
|
-
maxPriorityFeePerGas: undefined,
|
|
236
|
-
gasPrice,
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
try {
|
|
240
|
-
const eip1559 = await client.estimateFeesPerGas();
|
|
241
|
-
return {
|
|
242
|
-
maxFeePerGas: eip1559.maxFeePerGas,
|
|
243
|
-
maxPriorityFeePerGas: eip1559.maxPriorityFeePerGas,
|
|
244
|
-
gasPrice: undefined,
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
catch {
|
|
248
|
-
const gasPrice = await client.getGasPrice();
|
|
249
|
-
return {
|
|
250
|
-
maxFeePerGas: undefined,
|
|
251
|
-
maxPriorityFeePerGas: undefined,
|
|
252
|
-
gasPrice,
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
})(),
|
|
256
|
-
]);
|
|
257
|
-
return {
|
|
258
|
-
gasLimit,
|
|
259
|
-
maxFeePerGas: fees.maxFeePerGas,
|
|
260
|
-
maxPriorityFeePerGas: fees.maxPriorityFeePerGas,
|
|
261
|
-
gasPrice: fees.gasPrice,
|
|
262
|
-
};
|
|
263
|
-
}, [wagmiConfig, currentChainId]);
|
|
264
|
-
// DApp 이 자체 estimateGas 를 prop 으로 넘기면 그쪽이 우선. 미지정 시 내부
|
|
265
|
-
// chain-aware default 가 폴백한다. crossd-frontend 의 1.1.1 patch 와 동일한
|
|
266
|
-
// 의도 — patched build 와 source(1.1.2+) 가 같은 동작을 갖게 한다.
|
|
267
|
-
const resolvedEstimateGas = estimateGasProp ?? defaultEstimateGas;
|
|
268
|
-
// 아무 핸들러도 없는 외부 지갑은 WalletInfo 기본 "지원하지 않습니다" alert을
|
|
269
|
-
// 띄우는 chevron을 CSS로 숨긴다.
|
|
270
|
-
const hideSelectWalletChevron = !resolvedOnSelectWallet;
|
|
271
|
-
// Spinner gated solely on the kit's unified connect-in-flight flag, so
|
|
272
|
-
// every wallet (CROSSx / extension / MetaMask / Binance / OAuth) shows
|
|
273
|
-
// the same "Connecting…" feedback for the same window.
|
|
274
|
-
const buttonClass = className ? `cb-button ${className}` : 'cb-button';
|
|
275
|
-
const pillClass = className ? `cb-pill ${className}` : 'cb-pill';
|
|
276
|
-
if (isConnecting && !isConnected) {
|
|
277
|
-
return (_jsxs(_Fragment, { children: [_jsx("style", { children: CONNECT_BUTTON_CSS }), _jsxs("button", { type: "button", disabled: true, className: buttonClass, style: style, "aria-busy": "true", children: [_jsx("span", { className: "cb-spinner", "aria-hidden": "true" }), "Connecting..."] })] }));
|
|
278
|
-
}
|
|
279
|
-
if (isConnected && address) {
|
|
280
|
-
return (_jsxs("span", { "data-crossx-wallet-info": hideSelectWalletChevron ? 'external' : 'embedded', children: [_jsx("style", { children: CONNECT_BUTTON_CSS }), hideSelectWalletChevron && _jsx("style", { children: SELECT_WALLET_HIDE_CSS }), _jsxs(WalletInfo, { ...walletInfoRest, env: env, theme: theme, showBalance: showBalance, walletAddress: address, accountName: resolvedAccountName, sendAccounts: sendAccountsProp ?? autoAccounts,
|
|
281
|
-
// NOTE: connectorName / connectorIconUrl intentionally NOT
|
|
282
|
-
// overridden — the "Connected with CROSSx" row inside the
|
|
283
|
-
// popover keeps cross-app-launcher's CONNECTOR_REGISTRY
|
|
284
|
-
// metadata (expected UX). Only the trigger button below uses
|
|
285
|
-
// our own platform-specific icon via `triggerDisplay`.
|
|
286
|
-
connectorId: resolvedConnectorId, showPortfolio: resolvedShowPortfolio, onDisconnect: resolvedOnDisconnect, onSelectWallet: resolvedOnSelectWallet, sendTransaction: resolvedSendTransaction, getTransactionReceipt: getTransactionReceiptProp ?? getTransactionReceipt, estimateGas: resolvedEstimateGas, style: walletInfoStyle, children: [_jsx(WalletInfo.Trigger, { asChild: true, children: _jsxs("button", { type: "button", className: pillClass, style: style, "aria-label": `Connected with ${triggerDisplay?.name ?? 'wallet'}: ${shorten(address)}`, children: [triggerDisplay?.iconUrl ? (_jsx("img", { src: triggerDisplay.iconUrl, alt: "", width: 20, height: 20, className: "cb-pill-icon" })) : (_jsx("span", { className: "cb-pill-icon-placeholder", "aria-hidden": "true" })), _jsx("span", { className: "cb-pill-address", children: shorten(address) })] }) }), _jsx(WalletInfo.Content, { align: "end", sideOffset: 8 })] })] }));
|
|
287
|
-
}
|
|
288
|
-
return (_jsxs(_Fragment, { children: [_jsx("style", { children: CONNECT_BUTTON_CSS }), _jsx("button", { type: "button", onClick: handleConnectClick, className: buttonClass, style: style, children: label })] }));
|
|
289
|
-
}
|
|
290
|
-
const SELECT_WALLET_HIDE_CSS = `
|
|
291
|
-
[data-crossx-wallet-info="external"] .wi-select-wallet-btn {
|
|
292
|
-
display: none !important;
|
|
293
|
-
}
|
|
294
|
-
`;
|
|
295
|
-
function shorten(address) {
|
|
296
|
-
return `${address.slice(0, 6)}...${address.slice(-4)}`;
|
|
297
|
-
}
|
|
298
|
-
// CSS variables backing the connect-kit-react ConnectButton. Mirrors the
|
|
299
|
-
// `--cb-*` token surface exported by @nexus-cross/dapp-ui's standalone
|
|
300
|
-
// `ConnectButton` so that consumers see the same `ConnectButtonStyle`
|
|
301
|
-
// type across both packages. Injected via a per-render `<style>` tag
|
|
302
|
-
// because connect-kit-react builds with `tsc` (no CSS bundling).
|
|
303
|
-
const CONNECT_BUTTON_CSS = `
|
|
304
|
-
.cb-button {
|
|
305
|
-
--cb-bg: var(--cck-primary, #00D5AA);
|
|
306
|
-
--cb-bg-hover: var(--cb-bg);
|
|
307
|
-
--cb-color: var(--cck-on-primary, #000);
|
|
308
|
-
--cb-border: none;
|
|
309
|
-
--cb-radius: 8px;
|
|
310
|
-
--cb-height: 36px;
|
|
311
|
-
--cb-padding: 0 20px;
|
|
312
|
-
--cb-font-family: inherit;
|
|
313
|
-
--cb-font-size: 14px;
|
|
314
|
-
--cb-font-weight: 700;
|
|
315
|
-
--cb-gap: 8px;
|
|
316
|
-
--cb-transition: opacity 0.15s;
|
|
317
|
-
--cb-loading-opacity: 0.7;
|
|
318
|
-
--cb-press-scale: 0.95;
|
|
319
|
-
--cb-spinner-size: 14px;
|
|
320
|
-
--cb-spinner-thumb: currentColor;
|
|
321
|
-
--cb-spinner-track: color-mix(in srgb, currentColor 20%, transparent);
|
|
322
|
-
|
|
323
|
-
display: inline-flex;
|
|
324
|
-
align-items: center;
|
|
325
|
-
justify-content: center;
|
|
326
|
-
box-sizing: border-box;
|
|
327
|
-
height: var(--cb-height);
|
|
328
|
-
gap: var(--cb-gap);
|
|
329
|
-
padding: var(--cb-padding);
|
|
330
|
-
border-radius: var(--cb-radius);
|
|
331
|
-
border: var(--cb-border);
|
|
332
|
-
background: var(--cb-bg);
|
|
333
|
-
color: var(--cb-color);
|
|
334
|
-
font-family: var(--cb-font-family);
|
|
335
|
-
font-size: var(--cb-font-size);
|
|
336
|
-
font-weight: var(--cb-font-weight);
|
|
337
|
-
cursor: pointer;
|
|
338
|
-
transition: var(--cb-transition);
|
|
339
|
-
}
|
|
340
|
-
.cb-button:hover:not(:disabled) { background: var(--cb-bg-hover); }
|
|
341
|
-
.cb-button:active:not(:disabled) { transform: scale(var(--cb-press-scale)); }
|
|
342
|
-
.cb-button:disabled, .cb-button[aria-busy="true"] {
|
|
343
|
-
cursor: default;
|
|
344
|
-
opacity: var(--cb-loading-opacity);
|
|
345
|
-
}
|
|
346
|
-
.cb-spinner {
|
|
347
|
-
display: inline-block;
|
|
348
|
-
width: var(--cb-spinner-size);
|
|
349
|
-
height: var(--cb-spinner-size);
|
|
350
|
-
border: 2px solid var(--cb-spinner-track);
|
|
351
|
-
border-top-color: var(--cb-spinner-thumb);
|
|
352
|
-
border-radius: 50%;
|
|
353
|
-
animation: cck-cb-spin 0.6s linear infinite;
|
|
354
|
-
flex-shrink: 0;
|
|
355
|
-
}
|
|
356
|
-
.cb-pill {
|
|
357
|
-
--cb-pill-bg: var(--cck-surface-default, #1e232e);
|
|
358
|
-
--cb-pill-bg-hover: var(--cb-pill-bg);
|
|
359
|
-
--cb-pill-color: var(--cck-texticon-primary, #ffffff);
|
|
360
|
-
--cb-pill-border: 1px solid var(--cck-border-default, #2a2d3a);
|
|
361
|
-
--cb-pill-radius: 8px;
|
|
362
|
-
--cb-pill-height: 36px;
|
|
363
|
-
--cb-pill-padding: 0 12px;
|
|
364
|
-
--cb-pill-press-scale: 0.95;
|
|
365
|
-
--cb-pill-font-family: inherit;
|
|
366
|
-
--cb-pill-font-size: 14px;
|
|
367
|
-
--cb-pill-font-weight: 600;
|
|
368
|
-
--cb-pill-gap: 8px;
|
|
369
|
-
--cb-pill-icon-size: 20px;
|
|
370
|
-
--cb-pill-icon-placeholder-bg: var(--cck-surface-subtle, #2a2d3a);
|
|
371
|
-
--cb-pill-address-font: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
372
|
-
--cb-pill-address-font-size: 13px;
|
|
373
|
-
--cb-pill-address-letter-spacing: 0.02em;
|
|
374
|
-
|
|
375
|
-
display: inline-flex;
|
|
376
|
-
align-items: center;
|
|
377
|
-
box-sizing: border-box;
|
|
378
|
-
height: var(--cb-pill-height);
|
|
379
|
-
gap: var(--cb-pill-gap);
|
|
380
|
-
padding: var(--cb-pill-padding);
|
|
381
|
-
border-radius: var(--cb-pill-radius);
|
|
382
|
-
border: var(--cb-pill-border);
|
|
383
|
-
background: var(--cb-pill-bg);
|
|
384
|
-
color: var(--cb-pill-color);
|
|
385
|
-
font-family: var(--cb-pill-font-family);
|
|
386
|
-
font-size: var(--cb-pill-font-size);
|
|
387
|
-
font-weight: var(--cb-pill-font-weight);
|
|
388
|
-
cursor: pointer;
|
|
389
|
-
}
|
|
390
|
-
.cb-pill:hover { background: var(--cb-pill-bg-hover); }
|
|
391
|
-
.cb-pill:active:not(:disabled) { transform: scale(var(--cb-pill-press-scale)); }
|
|
392
|
-
.cb-pill-icon {
|
|
393
|
-
width: var(--cb-pill-icon-size);
|
|
394
|
-
height: var(--cb-pill-icon-size);
|
|
395
|
-
border-radius: 50%;
|
|
396
|
-
object-fit: contain;
|
|
397
|
-
flex-shrink: 0;
|
|
398
|
-
background: transparent;
|
|
399
|
-
}
|
|
400
|
-
.cb-pill-icon-placeholder {
|
|
401
|
-
display: inline-block;
|
|
402
|
-
width: var(--cb-pill-icon-size);
|
|
403
|
-
height: var(--cb-pill-icon-size);
|
|
404
|
-
border-radius: 50%;
|
|
405
|
-
background: var(--cb-pill-icon-placeholder-bg);
|
|
406
|
-
flex-shrink: 0;
|
|
407
|
-
}
|
|
408
|
-
.cb-pill-address {
|
|
409
|
-
font-family: var(--cb-pill-address-font);
|
|
410
|
-
font-size: var(--cb-pill-address-font-size);
|
|
411
|
-
letter-spacing: var(--cb-pill-address-letter-spacing);
|
|
412
|
-
}
|
|
413
|
-
@keyframes cck-cb-spin {
|
|
414
|
-
to { transform: rotate(360deg); }
|
|
415
|
-
}
|
|
416
|
-
`;
|
|
417
|
-
//# sourceMappingURL=ConnectButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectButton.js","sourceRoot":"","sources":["../../src/components/ConnectButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { type ReactNode } from 'react';
|
|
2
|
-
import type { CrossxConfig, CrossConnectKitInitialState } from '@nexus-cross/connect-kit-wagmi';
|
|
3
|
-
import type { WalletId } from '@nexus-cross/connect-kit-core';
|
|
4
|
-
export interface CrossConnectKitProviderProps {
|
|
5
|
-
children: ReactNode;
|
|
6
|
-
config: CrossxConfig;
|
|
7
|
-
/**
|
|
8
|
-
* SSR hydration state for both sides of the dual wagmi config. Produce
|
|
9
|
-
* with `cookieToCrossConnectKitState(config, cookieHeader)` on the server.
|
|
10
|
-
* The provider passes the correct slice into whichever `<WagmiProvider>`
|
|
11
|
-
* is currently active.
|
|
12
|
-
*/
|
|
13
|
-
initialState?: CrossConnectKitInitialState;
|
|
14
|
-
/**
|
|
15
|
-
* Extra wallet entries to render in the unified connect modal that do
|
|
16
|
-
* NOT have a wagmi connector behind them. Use this for "coming soon"
|
|
17
|
-
* placeholders or dapp-ui-only wallets like Verse8 / Tron — pass a
|
|
18
|
-
* click handler that opens an alert / external page.
|
|
19
|
-
*
|
|
20
|
-
* Keys must be walletIds known to dapp-ui's `WALLET_REGISTRY`
|
|
21
|
-
* (e.g. `'verse8'`, `'tron'`). Other keys are ignored.
|
|
22
|
-
*/
|
|
23
|
-
extraWallets?: Partial<Record<WalletId, () => void | Promise<void>>>;
|
|
24
|
-
/**
|
|
25
|
-
* Whitelist controlling which wallet ids appear in the modal's
|
|
26
|
-
* "Other Wallets" list.
|
|
27
|
-
*
|
|
28
|
-
* undefined — show every registered wallet (default)
|
|
29
|
-
* [] — show none (social-only modal)
|
|
30
|
-
* [...ids] — show only the listed ids (applies to extras too)
|
|
31
|
-
*
|
|
32
|
-
* Disable social separately by omitting `embeddedConnectorFactory`
|
|
33
|
-
* from `createCrossxConfig`.
|
|
34
|
-
*/
|
|
35
|
-
walletAllowlist?: readonly WalletId[];
|
|
36
|
-
}
|
|
37
|
-
export declare function CrossConnectKitProvider({ children, config, initialState, extraWallets, walletAllowlist, }: CrossConnectKitProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
38
|
-
//# sourceMappingURL=CrossConnectKitProvider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CrossConnectKitProvider.d.ts","sourceRoot":"","sources":["../../src/components/CrossConnectKitProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqD,MAAM,OAAO,CAAC;AAG1F,OAAO,KAAK,EACV,YAAY,EACZ,2BAA2B,EAE5B,MAAM,gCAAgC,CAAC;AAOxC,OAAO,KAAK,EAIV,QAAQ,EACT,MAAM,+BAA+B,CAAC;AAYvC,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CACpB,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAC7C,CAAC;IAEF;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CACvC;AA0qBD,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,YAAkC,EAClC,eAAe,GAChB,EAAE,4BAA4B,2CAoL9B"}
|