From 802ec698131c04823bb1a522a76fe507a2596d30 Mon Sep 17 00:00:00 2001 From: Dawid Sowa Date: Wed, 3 Jul 2024 15:00:39 +0200 Subject: [PATCH] fix: update isMobile function --- packages/dapp-toolkit/src/helpers/is-mobile.spec.ts | 12 ++++++++++++ packages/dapp-toolkit/src/helpers/is-mobile.ts | 6 +++--- .../radix-connect-relay/deep-link.module.ts | 4 ++-- 3 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 packages/dapp-toolkit/src/helpers/is-mobile.spec.ts diff --git a/packages/dapp-toolkit/src/helpers/is-mobile.spec.ts b/packages/dapp-toolkit/src/helpers/is-mobile.spec.ts new file mode 100644 index 00000000..555dc582 --- /dev/null +++ b/packages/dapp-toolkit/src/helpers/is-mobile.spec.ts @@ -0,0 +1,12 @@ +import { describe, it, expect } from 'vitest' +import { isMobile } from './is-mobile' + +describe('isMobile', () => { + it('should return true if userAgent is mobile', () => { + ;[ + 'Mozilla/5.0 (iPad; CPU OS 13_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/126.0.0.0 Mobile/15E148 Safari/604.1', + ].forEach((userAgent) => { + expect(isMobile(userAgent)).toBe(true) + }) + }) +}) diff --git a/packages/dapp-toolkit/src/helpers/is-mobile.ts b/packages/dapp-toolkit/src/helpers/is-mobile.ts index 81847657..2fed9ea2 100644 --- a/packages/dapp-toolkit/src/helpers/is-mobile.ts +++ b/packages/dapp-toolkit/src/helpers/is-mobile.ts @@ -1,6 +1,6 @@ import Bowser from 'bowser' -export const isMobile = () => { - const userAgent = Bowser.parse(window.navigator.userAgent) - return userAgent.platform.type === 'mobile' +export const isMobile = (userAgent: string = window.navigator.userAgent) => { + const parsed = Bowser.parse(userAgent) + return parsed.platform.type === 'mobile' || parsed.platform.type === 'tablet' } diff --git a/packages/dapp-toolkit/src/modules/wallet-request/transport/radix-connect-relay/deep-link.module.ts b/packages/dapp-toolkit/src/modules/wallet-request/transport/radix-connect-relay/deep-link.module.ts index 054aef33..6fba667b 100644 --- a/packages/dapp-toolkit/src/modules/wallet-request/transport/radix-connect-relay/deep-link.module.ts +++ b/packages/dapp-toolkit/src/modules/wallet-request/transport/radix-connect-relay/deep-link.module.ts @@ -1,6 +1,6 @@ import { ResultAsync } from 'neverthrow' import { errAsync, okAsync } from 'neverthrow' -import { Logger } from '../../../../helpers' +import { Logger, isMobile } from '../../../../helpers' import Bowser from 'bowser' import { SdkError } from '../../../../error' @@ -34,7 +34,7 @@ export const DeepLinkModule = (input: { data: { ...values }, }) - if (platform.type === 'mobile' && globalThis.location?.href) { + if (isMobile() && globalThis.location?.href) { globalThis.location.href = outboundUrl.toString() return okAsync(undefined)