Skip to content

Commit aa522fa

Browse files
authored
Merge pull request #2155 from oasisprotocol/lw/refactor-runtimeIs
Move detecting a mobile app into runtimeIs
2 parents 9ccea52 + 606b14d commit aa522fa

File tree

7 files changed

+17
-12
lines changed

7 files changed

+17
-12
lines changed

.changelog/2155.trivial.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Move detecting a mobile app into runtimeIs

src/app/components/Ionic/components/IonicNativePlatformProvider/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import { FC, PropsWithChildren } from 'react'
2-
import { Capacitor } from '@capacitor/core'
2+
import { runtimeIs } from '../../../../../config'
33
import { IonicContextProvider } from '../../providers/IonicProvider'
44
import { UpdateGate } from '../UpdateGate'
55

66
export const IonicNativePlatformProvider: FC<PropsWithChildren> = ({ children }) => {
7-
if (Capacitor.isNativePlatform()) {
7+
if (runtimeIs === 'mobile-app') {
88
return (
99
<IonicContextProvider>
1010
<UpdateGate>{children}</UpdateGate>

src/app/lib/helpers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ export function getFeeAmount(gasPrice: bigint, feeGas: bigint): string {
113113

114114
const defaultDepositFeeAmount = '0'
115115
export const getDefaultFeeAmount = (isDepositing: boolean, paraTimeConfig: ParaTimeConfig): string => {
116-
return isDepositing ? defaultDepositFeeAmount : getFeeAmount(paraTimeConfig.feeGas, paraTimeConfig.gasPrice)
116+
return isDepositing ? defaultDepositFeeAmount : getFeeAmount(paraTimeConfig.gasPrice, paraTimeConfig.feeGas)
117117
}
118118

119119
export function parseConsensusToLayerBaseUnit(feeAmount: string, decimals: number): BigNumber {

src/app/lib/ledger.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { hex2uint, publicKeyToAddress } from './helpers'
77
import type Transport from '@ledgerhq/hw-transport'
88
import { isSupported, requestLedgerDevice } from '@ledgerhq/hw-transport-webusb/lib-es/webusb'
99
import BleTransport from '@oasisprotocol/ionic-ledger-hw-transport-ble/lib'
10-
import { Capacitor } from '@capacitor/core'
10+
import { runtimeIs } from '../../config'
1111

1212
interface LedgerAccount {
1313
publicKey: Uint8Array
@@ -22,7 +22,7 @@ export async function canAccessNavigatorUsb(): Promise<boolean> {
2222
export async function canAccessBle(): Promise<boolean> {
2323
const hasBLE = await BleTransport.isEnabled().catch(() => false)
2424
// Scan depends on requestLEScan method, which is not available on the web(feature flag)
25-
const hasLEScan = Capacitor.isNativePlatform() || !!navigator?.bluetooth?.requestLEScan
25+
const hasLEScan = runtimeIs === 'mobile-app' || !!navigator?.bluetooth?.requestLEScan
2626
return hasBLE && hasLEScan
2727
}
2828

src/app/pages/OpenWalletPage/Features/FromLedger/index.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { Button } from 'grommet/es6/components/Button'
66
import { Text } from 'grommet/es6/components/Text'
77
import { canAccessBle, canAccessNavigatorUsb } from '../../../../lib/ledger'
88
import { useTranslation } from 'react-i18next'
9-
import { Capacitor } from '@capacitor/core'
109
import TransportWebUSB from '@ledgerhq/hw-transport-webusb'
10+
import { runtimeIs } from '../../../../../config'
1111

1212
type SelectOpenMethodProps = {
1313
openLedgerAccessPopup?: () => void
@@ -23,8 +23,7 @@ export function FromLedger({ openLedgerAccessPopup }: SelectOpenMethodProps) {
2323
async function getLedgerSupport() {
2424
const usbLedgerSupported = await canAccessNavigatorUsb()
2525

26-
const isNativePlatform = Capacitor.isNativePlatform()
27-
const bleLedgerSupported = isNativePlatform && (await canAccessBle())
26+
const bleLedgerSupported = runtimeIs === 'mobile-app' && (await canAccessBle())
2827

2928
setSupportsUsbLedger(usbLedgerSupported)
3029
setSupportsBleLedger(bleLedgerSupported)

src/config.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { Capacitor } from '@capacitor/core'
12
import { NetworkType } from 'app/state/network/types'
23

34
export const TRANSACTIONS_LIMIT = 20
@@ -198,7 +199,11 @@ export const paraTimesConfig: ParaTimesConfig = {
198199
}
199200

200201
// https://github.com/mozilla/webextension-polyfill/blob/6e3e26c/src/browser-polyfill.js#L9
201-
export const runtimeIs = (globalThis as any).chrome?.runtime?.id ? 'extension' : 'webapp'
202+
export const runtimeIs = Capacitor.isNativePlatform()
203+
? 'mobile-app'
204+
: (globalThis as any).chrome?.runtime?.id
205+
? 'extension'
206+
: 'webapp'
202207

203208
const splitUrls = (input: string | undefined): string[] =>
204209
input

src/index.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import 'react-app-polyfill/stable'
99

1010
import * as React from 'react'
1111
import { createRoot } from 'react-dom/client'
12-
import { Provider } from 'react-redux'
12+
import { Provider as ReduxProvider } from 'react-redux'
1313

1414
// Use consistent styling
1515
import 'sanitize.css/sanitize.css'
@@ -34,13 +34,13 @@ const root = createRoot(container!)
3434
const router = createBrowserRouter(routes)
3535

3636
root.render(
37-
<Provider store={store}>
37+
<ReduxProvider store={store}>
3838
<ThemeProvider>
3939
<HelmetProvider>
4040
<React.StrictMode>
4141
<RouterProvider router={router} />
4242
</React.StrictMode>
4343
</HelmetProvider>
4444
</ThemeProvider>
45-
</Provider>,
45+
</ReduxProvider>,
4646
)

0 commit comments

Comments
 (0)