diff --git a/packages/thirdweb/src/utils/web/isMobile.ts b/packages/thirdweb/src/utils/web/isMobile.ts index 3b2870d4489..4ca8d58dc69 100644 --- a/packages/thirdweb/src/utils/web/isMobile.ts +++ b/packages/thirdweb/src/utils/web/isMobile.ts @@ -57,6 +57,7 @@ function hasMobileAPIs(): boolean { */ export function isMobile(): boolean { // Primary signal: OS detection via user agent + const isMobileOS = isAndroid() || isIOS(); if (isMobileOS) { @@ -70,5 +71,12 @@ export function isMobile(): boolean { return true; } + const isMobileViewport = + typeof window !== "undefined" && window.innerWidth < 640; + + if (isMobileViewport) { + return true; + } + return false; } diff --git a/packages/thirdweb/src/wallets/create-wallet.ts b/packages/thirdweb/src/wallets/create-wallet.ts index a486625fc7a..4609c3945f8 100644 --- a/packages/thirdweb/src/wallets/create-wallet.ts +++ b/packages/thirdweb/src/wallets/create-wallet.ts @@ -341,34 +341,35 @@ export function createWallet( } return; } + // on desktop, create a QR overlay + else { + try { + const { createQROverlay } = await import( + "./wallet-connect/qr-overlay.js" + ); - try { - // on desktop, create a QR overlay - const { createQROverlay } = await import( - "./wallet-connect/qr-overlay.js" - ); + // Clean up any existing overlay + if (qrOverlay) { + qrOverlay.destroy(); + } - // Clean up any existing overlay - if (qrOverlay) { - qrOverlay.destroy(); + // Create new QR overlay + qrOverlay = createQROverlay(uri, { + theme: + wcOptions.walletConnect?.qrModalOptions + ?.themeMode ?? "dark", + qrSize: 280, + showCloseButton: true, + onCancel: () => { + wcOptions.walletConnect?.onCancel?.(); + }, + }); + } catch (error) { + console.error( + "Failed to create QR overlay:", + error, + ); } - - // Create new QR overlay - qrOverlay = createQROverlay(uri, { - theme: - wcOptions.walletConnect?.qrModalOptions - ?.themeMode ?? "dark", - qrSize: 280, - showCloseButton: true, - onCancel: () => { - wcOptions.walletConnect?.onCancel?.(); - }, - }); - } catch (error) { - console.error( - "Failed to create QR overlay:", - error, - ); } } }),