diff --git a/src/wallet/WalletLoginModal.tsx b/src/wallet/WalletLoginModal.tsx index 681eb42..a0faaed 100644 --- a/src/wallet/WalletLoginModal.tsx +++ b/src/wallet/WalletLoginModal.tsx @@ -146,6 +146,18 @@ export function WalletLoginModal() { .finally(() => setState("idle")); }; + // Desktop: open the RainbowKit modal — it discovers every installed wallet + // via EIP-6963 (robust when several extensions fight over window.ethereum) + // and also offers a WalletConnect QR. Fall back to the raw injected flow only + // when WalletConnect has no project id configured. + const connectBrowserWallet = () => { + if (wc.available) { + wc.start(); + return; + } + void signInjected(); + }; + const openApp = (kind: WalletKind) => { setError(""); setOpeningWallet(kind); @@ -201,27 +213,30 @@ export function WalletLoginModal() {
- {/* Injected wallet: browser extension (desktop) or in-wallet browser. */} - {hasInjected ? ( + {/* Browser wallet: in a wallet's in-app browser we sign directly with + the injected provider; on desktop we open the RainbowKit picker so + the user can choose among installed extensions reliably. */} + {mobileDevice && hasInjected ? ( ) : !mobileDevice ? ( ) : null}