diff --git a/app/screens/AppNavigator/AppNavigator.tsx b/app/screens/AppNavigator/AppNavigator.tsx index f5ad07aa60..c5ad4bf2bb 100644 --- a/app/screens/AppNavigator/AppNavigator.tsx +++ b/app/screens/AppNavigator/AppNavigator.tsx @@ -27,7 +27,7 @@ export function AppNavigator (): JSX.Element { ) } -const LinkingConfiguration: LinkingOptions = { +const LinkingConfiguration: LinkingOptions = { prefixes: [Linking.makeUrl('/')], config: { screens: { diff --git a/app/screens/AppNavigator/BottomTabNavigator.tsx b/app/screens/AppNavigator/BottomTabNavigator.tsx index a96a698914..145d4c28b3 100644 --- a/app/screens/AppNavigator/BottomTabNavigator.tsx +++ b/app/screens/AppNavigator/BottomTabNavigator.tsx @@ -1,6 +1,5 @@ import { MaterialIcons } from '@expo/vector-icons' import { createBottomTabNavigator } from '@react-navigation/bottom-tabs' -import { PathConfigMap } from '@react-navigation/core' import * as React from 'react' import { OceanInterface } from '../../components/OceanInterface/OceanInterface' import { tailwind } from '../../tailwind' @@ -28,7 +27,7 @@ export function BottomTabNavigator (): JSX.Element { () export function BalancesNavigator (): JSX.Element { - const navigation = useNavigation() + const navigation = useNavigation>() return ( navigation.navigate('TokenDetail', { token: item })} + onPress={() => navigation.navigate({ name: 'TokenDetail', params: { token: item }, merge: true })} />} ItemSeparatorComponent={() => } ListHeaderComponent={( diff --git a/app/screens/AppNavigator/screens/Balances/screens/ConvertConfirmationScreen.tsx b/app/screens/AppNavigator/screens/Balances/screens/ConvertConfirmationScreen.tsx index 006cd29dd0..511d2fc513 100644 --- a/app/screens/AppNavigator/screens/Balances/screens/ConvertConfirmationScreen.tsx +++ b/app/screens/AppNavigator/screens/Balances/screens/ConvertConfirmationScreen.tsx @@ -1,6 +1,6 @@ import { CTransactionSegWit, TransactionSegWit } from '@defichain/jellyfish-transaction/dist' import { WhaleWalletAccount } from '@defichain/whale-api-wallet' -import { StackActions, useNavigation } from '@react-navigation/native' +import { NavigationProp, StackActions, useNavigation } from '@react-navigation/native' import { StackScreenProps } from '@react-navigation/stack' import BigNumber from 'bignumber.js' import React, { Dispatch, useEffect, useState } from 'react' @@ -28,7 +28,7 @@ export function ConvertConfirmationScreen ({ route }: Props): JSX.Element { const hasPendingJob = useSelector((state: RootState) => hasTxQueued(state.transactionQueue)) const dispatch = useDispatch() const [isSubmitting, setIsSubmitting] = useState(false) - const navigation = useNavigation() + const navigation = useNavigation>() const [isOnPage, setIsOnPage] = useState(true) const postAction = (): void => { if (isOnPage) { @@ -54,7 +54,13 @@ export function ConvertConfirmationScreen ({ route }: Props): JSX.Element { function onCancel (): void { if (!isSubmitting) { - navigation.navigate('Convert') + navigation.navigate({ + name: 'Convert', + params: { + mode + }, + merge: true + }) } } diff --git a/app/screens/AppNavigator/screens/Balances/screens/ConvertScreen.tsx b/app/screens/AppNavigator/screens/Balances/screens/ConvertScreen.tsx index abe39196a9..b0a46242cb 100644 --- a/app/screens/AppNavigator/screens/Balances/screens/ConvertScreen.tsx +++ b/app/screens/AppNavigator/screens/Balances/screens/ConvertScreen.tsx @@ -1,6 +1,6 @@ import { AddressToken } from '@defichain/whale-api-client/dist/api/address' import { MaterialIcons } from '@expo/vector-icons' -import { useNavigation } from '@react-navigation/native' +import { NavigationProp, useNavigation } from '@react-navigation/native' import { StackScreenProps } from '@react-navigation/stack' import BigNumber from 'bignumber.js' import * as React from 'react' @@ -36,7 +36,7 @@ export function ConvertScreen (props: Props): JSX.Element { // global state const tokens = useTokensAPI() const hasPendingJob = useSelector((state: RootState) => hasTxQueued(state.transactionQueue)) - const navigation = useNavigation() + const navigation = useNavigation>() const [mode, setMode] = useState(props.route.params.mode) const [sourceToken, setSourceToken] = useState() const [targetToken, setTargetToken] = useState() @@ -67,14 +67,18 @@ export function ConvertScreen (props: Props): JSX.Element { if (hasPendingJob) { return } - navigation.navigate('ConvertConfirmationScreen', { - sourceUnit: sourceToken.unit, - sourceBalance: BigNumber.maximum(new BigNumber(sourceToken.amount).minus(convAmount), 0), - targetUnit: targetToken.unit, - targetBalance: BigNumber.maximum(new BigNumber(targetToken.amount).plus(convAmount), 0), - mode, - amount: new BigNumber(amount), - fee + navigation.navigate({ + name: 'ConvertConfirmationScreen', + params: { + sourceUnit: sourceToken.unit, + sourceBalance: BigNumber.maximum(new BigNumber(sourceToken.amount).minus(convAmount), 0), + targetUnit: targetToken.unit, + targetBalance: BigNumber.maximum(new BigNumber(targetToken.amount).plus(convAmount), 0), + mode, + amount: new BigNumber(amount), + fee + }, + merge: true }) } @@ -212,7 +216,7 @@ function ToggleModeButton (props: { onPress: () => void }): JSX.Element { } function TokenVsUtxosInfo (): JSX.Element { - const navigation = useNavigation() + const navigation = useNavigation>() return ( hasTxQueued(state.transactionQueue)) const dispatch = useDispatch() const [isSubmitting, setIsSubmitting] = useState(false) - const navigation = useNavigation() + const navigation = useNavigation>() const [isOnPage, setIsOnPage] = useState(true) const postAction = (): void => { if (isOnPage) { @@ -61,7 +61,13 @@ export function SendConfirmationScreen ({ route }: Props): JSX.Element { function onCancel (): void { if (!isSubmitting) { - navigation.navigate('Send') + navigation.navigate({ + name: 'Send', + params: { + token + }, + merge: true + }) } } diff --git a/app/screens/AppNavigator/screens/Balances/screens/SendScreen.tsx b/app/screens/AppNavigator/screens/Balances/screens/SendScreen.tsx index 28df2d64ec..681b651cb0 100644 --- a/app/screens/AppNavigator/screens/Balances/screens/SendScreen.tsx +++ b/app/screens/AppNavigator/screens/Balances/screens/SendScreen.tsx @@ -56,11 +56,15 @@ export function SendScreen ({ route, navigation }: Props): JSX.Element { } if (isValid) { const values = getValues() - navigation.navigate('SendConfirmationScreen', { - destination: values.address, - token, - amount: new BigNumber(values.amount), - fee + navigation.navigate({ + name: 'SendConfirmationScreen', + params: { + destination: values.address, + token, + amount: new BigNumber(values.amount), + fee + }, + merge: true }) } } @@ -70,11 +74,15 @@ export function SendScreen ({ route, navigation }: Props): JSX.Element { navigation.navigate('BarCodeScanner', { - onQrScanned: async (value) => { - setValue('address', value) - await trigger('address') - } + onQrButtonPress={() => navigation.navigate({ + name: 'BarCodeScanner', + params: { + onQrScanned: async (value) => { + setValue('address', value) + await trigger('address') + } + }, + merge: true })} /> navigation.navigate('Send', { token })} + onPress={() => navigation.navigate({ name: 'Send', params: { token }, merge: true })} /> { const mode: ConversionMode = token.id === '0_utxo' ? 'utxosToAccount' : 'accountToUtxos' - navigation.navigate('Convert', { mode }) + navigation.navigate({ name: 'Convert', params: { mode }, merge: true }) }} /> ) diff --git a/app/screens/AppNavigator/screens/Dex/DexAddLiquidity.tsx b/app/screens/AppNavigator/screens/Dex/DexAddLiquidity.tsx index bf65166892..99fc30d188 100644 --- a/app/screens/AppNavigator/screens/Dex/DexAddLiquidity.tsx +++ b/app/screens/AppNavigator/screens/Dex/DexAddLiquidity.tsx @@ -120,14 +120,18 @@ export function AddLiquidityScreen (props: Props): JSX.Element { { - navigation.navigate('ConfirmAddLiquidity', { - summary: { - ...pair, - fee: new BigNumber(0.0001), - tokenAAmount: new BigNumber(tokenAAmount), - tokenBAmount: new BigNumber(tokenBAmount), - percentage: sharePercentage - } + navigation.navigate({ + name: 'ConfirmAddLiquidity', + params: { + summary: { + ...pair, + fee: new BigNumber(0.0001), + tokenAAmount: new BigNumber(tokenAAmount), + tokenBAmount: new BigNumber(tokenBAmount), + percentage: sharePercentage + } + }, + merge: true }) }} /> diff --git a/app/screens/AppNavigator/screens/Dex/DexScreen.tsx b/app/screens/AppNavigator/screens/Dex/DexScreen.tsx index 9017363be9..0f85fc9c9a 100644 --- a/app/screens/AppNavigator/screens/Dex/DexScreen.tsx +++ b/app/screens/AppNavigator/screens/Dex/DexScreen.tsx @@ -26,11 +26,11 @@ export function DexScreen (): JSX.Element { }))) const onAdd = (data: PoolPairData): void => { - navigation.navigate('AddLiquidity', { pair: data }) + navigation.navigate({ name: 'AddLiquidity', params: { pair: data }, merge: true }) } const onRemove = (data: PoolPairData): void => { - navigation.navigate('RemoveLiquidity', { pair: data }) + navigation.navigate({ name: 'RemoveLiquidity', params: { pair: data }, merge: true }) } return ( @@ -59,7 +59,7 @@ export function DexScreen (): JSX.Element { case 'available': return PoolPairRowAvailable(item.data, () => onAdd(item.data), - () => navigation.navigate('PoolSwap', { poolpair: item.data }) + () => navigation.navigate({ name: 'PoolSwap', params: { poolpair: item.data }, merge: true }) ) } }} diff --git a/app/screens/AppNavigator/screens/Dex/PoolSwap/ConfirmPoolSwapScreen.tsx b/app/screens/AppNavigator/screens/Dex/PoolSwap/ConfirmPoolSwapScreen.tsx index 3ecabb1e2b..92e10f8525 100644 --- a/app/screens/AppNavigator/screens/Dex/PoolSwap/ConfirmPoolSwapScreen.tsx +++ b/app/screens/AppNavigator/screens/Dex/PoolSwap/ConfirmPoolSwapScreen.tsx @@ -1,6 +1,6 @@ import { CTransactionSegWit, PoolSwap } from '@defichain/jellyfish-transaction/dist' import { WhaleWalletAccount } from '@defichain/whale-api-wallet' -import { StackActions, useNavigation } from '@react-navigation/native' +import { NavigationProp, StackActions, useNavigation } from '@react-navigation/native' import { StackScreenProps } from '@react-navigation/stack' import BigNumber from 'bignumber.js' import React, { Dispatch, useEffect, useState } from 'react' @@ -34,7 +34,7 @@ export function ConfirmPoolSwapScreen ({ route }: Props): JSX.Element { const hasPendingJob = useSelector((state: RootState) => hasTxQueued(state.transactionQueue)) const dispatch = useDispatch() const [isSubmitting, setIsSubmitting] = useState(false) - const navigation = useNavigation() + const navigation = useNavigation>() const [isOnPage, setIsOnPage] = useState(true) const { account } = useWalletContext() const postAction = (): void => { diff --git a/app/screens/AppNavigator/screens/Dex/PoolSwap/PoolSwapScreen.tsx b/app/screens/AppNavigator/screens/Dex/PoolSwap/PoolSwapScreen.tsx index a84fdc6f72..a767d73f3f 100644 --- a/app/screens/AppNavigator/screens/Dex/PoolSwap/PoolSwapScreen.tsx +++ b/app/screens/AppNavigator/screens/Dex/PoolSwap/PoolSwapScreen.tsx @@ -1,6 +1,6 @@ import { PoolPairData } from '@defichain/whale-api-client/dist/api/poolpairs' import { MaterialIcons } from '@expo/vector-icons' -import { useNavigation } from '@react-navigation/native' +import { NavigationProp, useNavigation } from '@react-navigation/native' import { StackScreenProps } from '@react-navigation/stack' import BigNumber from 'bignumber.js' import React, { useCallback, useEffect, useState } from 'react' @@ -42,7 +42,7 @@ export function PoolSwapScreen ({ route }: Props): JSX.Element { const tokens = useTokensAPI() const hasPendingJob = useSelector((state: RootState) => hasTxQueued(state.transactionQueue)) const [tokenAForm, tokenBForm] = ['tokenA', 'tokenB'] - const navigation = useNavigation() + const navigation = useNavigation>() useEffect(() => { client.fee.estimate() diff --git a/app/screens/AppNavigator/screens/Settings/SettingsNavigator.tsx b/app/screens/AppNavigator/screens/Settings/SettingsNavigator.tsx index b5bab39239..23d8fb2be8 100644 --- a/app/screens/AppNavigator/screens/Settings/SettingsNavigator.tsx +++ b/app/screens/AppNavigator/screens/Settings/SettingsNavigator.tsx @@ -1,5 +1,5 @@ import { MaterialIcons } from '@expo/vector-icons' -import { useNavigation } from '@react-navigation/native' +import { NavigationProp, useNavigation } from '@react-navigation/native' import { createStackNavigator } from '@react-navigation/stack' import * as React from 'react' import { TouchableOpacity } from 'react-native' @@ -27,7 +27,7 @@ export interface SettingsParamList { const SettingsStack = createStackNavigator() export function SettingsNavigator (): JSX.Element { - const navigation = useNavigation() + const navigation = useNavigation>() return ( diff --git a/app/screens/AppNavigator/screens/Settings/SettingsScreen.tsx b/app/screens/AppNavigator/screens/Settings/SettingsScreen.tsx index 27a9e56bab..fdf4cc039a 100644 --- a/app/screens/AppNavigator/screens/Settings/SettingsScreen.tsx +++ b/app/screens/AppNavigator/screens/Settings/SettingsScreen.tsx @@ -1,5 +1,5 @@ import { MaterialIcons } from '@expo/vector-icons' -import { useNavigation } from '@react-navigation/native' +import { NavigationProp, useNavigation } from '@react-navigation/native' import { StackScreenProps } from '@react-navigation/stack' import * as React from 'react' import { useCallback } from 'react' @@ -36,7 +36,7 @@ export function SettingsScreen ({ navigation }: Props): JSX.Element { message: translate('screens/Setting', 'To continue downloading your recovery words, we need you to enter your passcode.'), consume: async passphrase => await MnemonicWords.decrypt(passphrase), onAuthenticated: async (words) => { - navigation.navigate('RecoveryWordsScreen', { words }) + navigation.navigate({ name: 'RecoveryWordsScreen', params: { words }, merge: true }) }, onError: e => Logging.error(e) } @@ -52,7 +52,9 @@ export function SettingsScreen ({ navigation }: Props): JSX.Element { message: translate('screens/Setting', 'To update your passcode, we need you to enter your current passcode.'), consume: async passphrase => await MnemonicWords.decrypt(passphrase), onAuthenticated: async words => { - navigation.navigate('ChangePinScreen', { words, pinLength: 6 }) + navigation.navigate({ + name: 'ChangePinScreen', params: { words, pinLength: 6 }, merge: true + }) }, onError: (e) => { dispatch(ocean.actions.setError(e)) @@ -82,7 +84,7 @@ export function SettingsScreen ({ navigation }: Props): JSX.Element { } function RowNetworkItem (props: { network: EnvironmentNetwork }): JSX.Element { - const navigation = useNavigation() + const navigation = useNavigation>() const { network, updateNetwork } = useNetworkContext() const onPress = useCallback(async () => { @@ -160,7 +162,7 @@ function RowExitWalletItem (): JSX.Element { ) } -function SecurityRow ({ testID, label, onPress }: { testID: string, label: string, onPress: () => void}): JSX.Element { +function SecurityRow ({ testID, label, onPress }: { testID: string, label: string, onPress: () => void }): JSX.Element { return ( >() return ( { setNewPin('') - navigation.navigate('ConfirmPinScreen', { words, pin: newPin }) + navigation.navigate({ + name: 'ConfirmPinScreen', params: { words, pin: newPin }, merge: true + }) }} /> diff --git a/app/screens/AppNavigator/screens/Transactions/TransactionsScreen.tsx b/app/screens/AppNavigator/screens/Transactions/TransactionsScreen.tsx index e96035b449..1d1e156db6 100644 --- a/app/screens/AppNavigator/screens/Transactions/TransactionsScreen.tsx +++ b/app/screens/AppNavigator/screens/Transactions/TransactionsScreen.tsx @@ -97,7 +97,9 @@ function TransactionRow (navigation: NavigationProp): (ro key={row.item.id} style={tailwind('flex-row w-full h-16 bg-white p-2 border-b border-gray-200 items-center')} onPress={() => { - navigation.navigate('TransactionDetail', { tx: row.item }) + navigation.navigate({ + name: 'TransactionDetail', params: { tx: row.item }, merge: true + }) }} > diff --git a/app/screens/PlaygroundNavigator/PlaygroundNavigator.tsx b/app/screens/PlaygroundNavigator/PlaygroundNavigator.tsx index 02c26f7720..d900471871 100644 --- a/app/screens/PlaygroundNavigator/PlaygroundNavigator.tsx +++ b/app/screens/PlaygroundNavigator/PlaygroundNavigator.tsx @@ -16,7 +16,7 @@ const PlaygroundStack = createStackNavigator() export function PlaygroundNavigator (): JSX.Element { return ( - + () -const LinkingConfiguration: LinkingOptions = { +const LinkingConfiguration: LinkingOptions = { prefixes: [Linking.makeUrl('/')], config: { screens: { @@ -65,7 +65,7 @@ const LinkingConfiguration: LinkingOptions = { } export function WalletNavigator (): JSX.Element { - const navigationRef = React.useRef(null) + const navigationRef = React.useRef>(null) return ( diff --git a/app/screens/WalletNavigator/screens/CreateWallet/CreateMnemonicWallet.tsx b/app/screens/WalletNavigator/screens/CreateWallet/CreateMnemonicWallet.tsx index a092443b79..401f94d517 100644 --- a/app/screens/WalletNavigator/screens/CreateWallet/CreateMnemonicWallet.tsx +++ b/app/screens/WalletNavigator/screens/CreateWallet/CreateMnemonicWallet.tsx @@ -19,8 +19,12 @@ export function CreateMnemonicWallet ({ navigation }: Props): JSX.Element { }) function onContinue (): void { - navigation.navigate('VerifyMnemonicWallet', { - words + navigation.navigate({ + name: 'VerifyMnemonicWallet', + params: { + words + }, + merge: true }) } diff --git a/app/screens/WalletNavigator/screens/CreateWallet/PinCreation.tsx b/app/screens/WalletNavigator/screens/CreateWallet/PinCreation.tsx index 5c9a811acf..3d4955096c 100644 --- a/app/screens/WalletNavigator/screens/CreateWallet/PinCreation.tsx +++ b/app/screens/WalletNavigator/screens/CreateWallet/PinCreation.tsx @@ -53,7 +53,9 @@ export function PinCreation ({ route }: Props): JSX.Element { disabled={newPin.length !== pinLength} onPress={() => { setNewPin('') - navigation.navigate('PinConfirmation', { words, pin: newPin, type }) + navigation.navigate({ + name: 'PinConfirmation', params: { words, pin: newPin, type }, merge: true + }) }} /> diff --git a/app/screens/WalletNavigator/screens/CreateWallet/VerifyMnemonicWallet.tsx b/app/screens/WalletNavigator/screens/CreateWallet/VerifyMnemonicWallet.tsx index f9b4aff627..53b57c6031 100644 --- a/app/screens/WalletNavigator/screens/CreateWallet/VerifyMnemonicWallet.tsx +++ b/app/screens/WalletNavigator/screens/CreateWallet/VerifyMnemonicWallet.tsx @@ -48,10 +48,14 @@ export function VerifyMnemonicWallet ({ route, navigation }: Props): JSX.Element }, [JSON.stringify(recoveryWords)]) function navigateToPinCreation (): void { - navigation.navigate('PinCreation', { - pinLength: HARDCODED_PIN_LENGTH, - words: recoveryWords, - type: 'create' + navigation.navigate({ + name: 'PinCreation', + params: { + pinLength: HARDCODED_PIN_LENGTH, + words: recoveryWords, + type: 'create' + }, + merge: true }) } diff --git a/app/screens/WalletNavigator/screens/Onboarding.tsx b/app/screens/WalletNavigator/screens/Onboarding.tsx index 2094506714..0c82b274bc 100644 --- a/app/screens/WalletNavigator/screens/Onboarding.tsx +++ b/app/screens/WalletNavigator/screens/Onboarding.tsx @@ -1,14 +1,15 @@ -import { useNavigation } from '@react-navigation/native' +import { NavigationProp, useNavigation } from '@react-navigation/native' import * as React from 'react' import { ScrollView } from 'react-native' import { View } from '../../../components' import { Button } from '../../../components/Button' import { tailwind } from '../../../tailwind' import { translate } from '../../../translations' +import { WalletParamList } from '../WalletNavigator' import { OnboardingCarousel } from './components/OnboardingCarousel' export function Onboarding (): JSX.Element { - const navigator = useNavigation() + const navigator = useNavigation>() return ( { before(function () { - cy.createEmptyWallet(true) - cy - .sendDFItoWallet() - .sendDFItoWallet() - .sendDFITokentoWallet().wait(10000) - - cy.getByTestID('bottom_tab_balances').click() - cy.getByTestID('balances_list').should('exist') - cy.getByTestID('balances_row_0').should('exist') - cy.getByTestID('balances_row_0_amount').contains(10) - cy.getByTestID('balances_row_0_utxo_amount').contains(20) - cy.getByTestID('balances_row_0_utxo').click() - cy.getByTestID('convert_button').click() + createDFIWallet() }) it('should have form validation', function () { @@ -66,7 +70,7 @@ context('Wallet - Convert DFI', () => { cy.getByTestID('target_amount').contains('21.00000000') cy.getByTestID('target_amount_unit').contains('UTXO') cy.getByTestID('text_fee').should('exist') - cy.go('back') + cy.getByTestID('button_cancel_convert').click() }) it('should test UTXO to account conversion', function () { @@ -84,11 +88,44 @@ context('Wallet - Convert DFI', () => { cy.getByTestID('target_amount').contains('11.00000000') cy.getByTestID('target_amount_unit').contains('Token') cy.getByTestID('text_fee').should('exist') + }) +}) + +context('Wallet - Convert UTXO to Account', function () { + it('should test UTXO to account conversion', function () { + createDFIWallet() + cy.getByTestID('text_input_convert_from_input').clear().type('1') + cy.getByTestID('button_continue_convert').click() + cy.getByTestID('button_confirm_convert').should('not.have.attr', 'disabled') + cy.getByTestID('button_cancel_convert').click() + cy.getByTestID('text_input_convert_from_input').should('exist') + + cy.getByTestID('button_continue_convert').click() cy.getByTestID('button_confirm_convert').click().wait(4000) - cy.closeOceanInterface() + cy.closeOceanInterface().wait(5000) cy.getByTestID('balances_row_0_utxo_amount').contains('18.999') // 20 - 1 - fee cy.getByTestID('balances_row_0_amount').contains('11') }) }) + +context('Wallet - Convert Account to UTXO', function () { + it('should test UTXO to account conversion', function () { + createDFIWallet() + cy.getByTestID('button_convert_mode_toggle').click().wait(4000) + cy.getByTestID('text_input_convert_from_input').clear().type('1') + cy.getByTestID('button_continue_convert').click() + cy.getByTestID('button_confirm_convert').should('not.have.attr', 'disabled') + cy.getByTestID('button_cancel_convert').click() + cy.getByTestID('text_input_convert_from_input').should('exist') + + cy.getByTestID('button_continue_convert').click() + + cy.getByTestID('button_confirm_convert').click().wait(4000) + cy.closeOceanInterface().wait(5000) + + cy.getByTestID('balances_row_0_utxo_amount').contains('20.999') + cy.getByTestID('balances_row_0_amount').contains('9') + }) +}) diff --git a/package-lock.json b/package-lock.json index da2e293f1f..898924153f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,9 +24,9 @@ "@react-native-async-storage/async-storage": "~1.15.0", "@react-native-community/slider": "3.0.3", "@react-native-masked-view/masked-view": "0.2.4", - "@react-navigation/bottom-tabs": "5.11.11", - "@react-navigation/native": "~5.9.4", - "@react-navigation/stack": "~5.14.5", + "@react-navigation/bottom-tabs": "^6.0.4", + "@react-navigation/native": "^6.0.2", + "@react-navigation/stack": "^6.0.6", "@reduxjs/toolkit": "^1.6.1", "bignumber.js": "^9.0.1", "buffer": "^6.0.3", @@ -7549,16 +7549,6 @@ "which": "bin/which" } }, - "node_modules/@react-native-community/masked-view": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@react-native-community/masked-view/-/masked-view-0.1.11.tgz", - "integrity": "sha512-rQfMIGSR/1r/SyN87+VD8xHHzDYeHaJq6elOSCAD+0iLagXkSI2pfA0LmSXP21uw5i3em7GkkRjfJ8wpqWXZNw==", - "peer": true, - "peerDependencies": { - "react": ">=16.0", - "react-native": ">=0.57" - } - }, "node_modules/@react-native-community/slider": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@react-native-community/slider/-/slider-3.0.3.tgz", @@ -7578,74 +7568,97 @@ } }, "node_modules/@react-navigation/bottom-tabs": { - "version": "5.11.11", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-5.11.11.tgz", - "integrity": "sha512-hThj6Vfw+ITzAVj5TgLEoxkVEcBD+gYeieWOe6FryBRgokgKNCzFQzqArJ5UCmNMxklNH0rstJfcdyHflLuPtw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.0.4.tgz", + "integrity": "sha512-+3zzrJOAzyIyD9ax96fKOAFxBE0Hjy9S/LspfE1KkoI/eXRwFQLgmIsIcQZpUV5HB/fNLb+hw6T60G/yupgcIA==", "dependencies": { + "@react-navigation/elements": "^1.0.4", "color": "^3.1.3", - "react-native-iphone-x-helper": "^1.3.0" + "warn-once": "^0.1.0" }, "peerDependencies": { - "@react-navigation/native": "^5.0.5", + "@react-navigation/native": "^6.0.0", "react": "*", "react-native": "*", - "react-native-safe-area-context": ">= 0.6.0", - "react-native-screens": ">= 2.0.0-alpha.0 || >= 2.0.0-beta.0 || >= 2.0.0" + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" } }, - "node_modules/@react-navigation/core": { - "version": "5.15.5", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-5.15.5.tgz", - "integrity": "sha512-xrUQ0xVQTMuuMiILRhhRpBzoI4TaFh4dJ4INCy6uwK9dwHjLwtsx+++ZefV/K4tbMQmGFxq4zSnLtTRtfMZKrA==", - "dependencies": { - "@react-navigation/routers": "^5.7.4", - "escape-string-regexp": "^4.0.0", - "nanoid": "^3.1.15", - "query-string": "^6.13.6", - "react-is": "^16.13.0" - }, + "node_modules/@react-navigation/bottom-tabs/node_modules/@react-navigation/elements": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.0.4.tgz", + "integrity": "sha512-WtaQXZ1y0aVQlQegyS2quOeSSqBvASZThdruW9AAgVbqs6qJMwbKjE5SOEsZS2jQX8OoeZNz+8bJHqVflynunw==", "peerDependencies": { - "react": "*" + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0" } }, "node_modules/@react-navigation/native": { - "version": "5.9.6", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-5.9.6.tgz", - "integrity": "sha512-m2F2AWBr0qbi4a5MBk2puGNWyVQnfmVHcpuIzQ37juptX6QCCuXjmOxvtdyqRzh2gKGnUlIeNaQKcACYj4zG/w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.0.2.tgz", + "integrity": "sha512-HDqEwgvQ4Cu16vz8jQ55lfyNK9CGbECI1wM9cPOcUa+gkOQEDZ/95VFfFjGGflXZs3ybPvGXlMC4ZAyh1CcO6w==", "dependencies": { - "@react-navigation/core": "^5.15.5", + "@react-navigation/core": "^6.0.1", "escape-string-regexp": "^4.0.0", - "nanoid": "^3.1.15" + "nanoid": "^3.1.23" }, "peerDependencies": { "react": "*", "react-native": "*" } }, + "node_modules/@react-navigation/native/node_modules/@react-navigation/core": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.0.1.tgz", + "integrity": "sha512-mVdvBDYdz8uzLQHokmVdX/xC4rS7NIkD1FN/yaGdovVzYApAhM+UGd3w1zskjyCSyXaVHHOwV59ZGVew+84xfQ==", + "dependencies": { + "@react-navigation/routers": "^6.0.1", + "escape-string-regexp": "^4.0.0", + "nanoid": "^3.1.23", + "query-string": "^7.0.0", + "react-is": "^16.13.0" + }, + "peerDependencies": { + "react": "*" + } + }, "node_modules/@react-navigation/routers": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-5.7.4.tgz", - "integrity": "sha512-0N202XAqsU/FlE53Nmh6GHyMtGm7g6TeC93mrFAFJOqGRKznT0/ail+cYlU6tNcPA9AHzZu1Modw1eoDINSliQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.0.1.tgz", + "integrity": "sha512-5ctB49rmtTRQuTSBVgqMsEzBUjPP2ByUzBjNivA7jmvk+PDCl4oZsiR8KAm/twhxe215GYThfi2vUWXKAg6EEQ==", "dependencies": { - "nanoid": "^3.1.15" + "nanoid": "^3.1.23" } }, "node_modules/@react-navigation/stack": { - "version": "5.14.7", - "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-5.14.7.tgz", - "integrity": "sha512-Ew+MYaJGvJUpZ3XYIilSCRruldr3JXNOWYM8bqE21EeJ5d3mfynpTPihck5ol0AN8uFEAeskQzoixGWh5eMYuA==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.0.6.tgz", + "integrity": "sha512-2yaY0RLkZoakyou9mKdUA1UqJmyldPCtXMsOUyjCncW7PmKToAusYZbgDAIrQQB97u+/yUtvYbEQsFyQQO+rNw==", "dependencies": { + "@react-navigation/elements": "^1.0.4", "color": "^3.1.3", - "react-native-iphone-x-helper": "^1.3.0" + "warn-once": "^0.1.0" }, "peerDependencies": { - "@react-native-community/masked-view": ">= 0.1.0", - "@react-navigation/native": "^5.0.5", + "@react-navigation/native": "^6.0.0", "react": "*", "react-native": "*", "react-native-gesture-handler": ">= 1.0.0", - "react-native-safe-area-context": ">= 0.6.0", - "react-native-screens": ">= 2.0.0-alpha.0 || >= 2.0.0-beta.0 || >= 2.0.0" + "react-native-safe-area-context": ">= 3.0.0", + "react-native-screens": ">= 3.0.0" + } + }, + "node_modules/@react-navigation/stack/node_modules/@react-navigation/elements": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.0.4.tgz", + "integrity": "sha512-WtaQXZ1y0aVQlQegyS2quOeSSqBvASZThdruW9AAgVbqs6qJMwbKjE5SOEsZS2jQX8OoeZNz+8bJHqVflynunw==", + "peerDependencies": { + "@react-navigation/native": "^6.0.0", + "react": "*", + "react-native": "*", + "react-native-safe-area-context": ">= 3.0.0" } }, "node_modules/@reduxjs/toolkit": { @@ -32941,9 +32954,9 @@ } }, "node_modules/query-string": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", - "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.0.1.tgz", + "integrity": "sha512-uIw3iRvHnk9to1blJCG3BTc+Ro56CBowJXKmNNAm3RulvPBzWLRqKSiiDk+IplJhsydwtuNMHi8UGQFcCLVfkA==", "dependencies": { "decode-uri-component": "^0.2.0", "filter-obj": "^1.1.0", @@ -47474,13 +47487,6 @@ "resolved": "https://registry.npmjs.org/@react-native-community/cli-types/-/cli-types-4.10.1.tgz", "integrity": "sha512-ael2f1onoPF3vF7YqHGWy7NnafzGu+yp88BbFbP0ydoCP2xGSUzmZVw0zakPTC040Id+JQ9WeFczujMkDy6jYQ==" }, - "@react-native-community/masked-view": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/@react-native-community/masked-view/-/masked-view-0.1.11.tgz", - "integrity": "sha512-rQfMIGSR/1r/SyN87+VD8xHHzDYeHaJq6elOSCAD+0iLagXkSI2pfA0LmSXP21uw5i3em7GkkRjfJ8wpqWXZNw==", - "peer": true, - "requires": {} - }, "@react-native-community/slider": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@react-native-community/slider/-/slider-3.0.3.tgz", @@ -47494,51 +47500,71 @@ "requires": {} }, "@react-navigation/bottom-tabs": { - "version": "5.11.11", - "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-5.11.11.tgz", - "integrity": "sha512-hThj6Vfw+ITzAVj5TgLEoxkVEcBD+gYeieWOe6FryBRgokgKNCzFQzqArJ5UCmNMxklNH0rstJfcdyHflLuPtw==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-6.0.4.tgz", + "integrity": "sha512-+3zzrJOAzyIyD9ax96fKOAFxBE0Hjy9S/LspfE1KkoI/eXRwFQLgmIsIcQZpUV5HB/fNLb+hw6T60G/yupgcIA==", "requires": { + "@react-navigation/elements": "^1.0.4", "color": "^3.1.3", - "react-native-iphone-x-helper": "^1.3.0" - } - }, - "@react-navigation/core": { - "version": "5.15.5", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-5.15.5.tgz", - "integrity": "sha512-xrUQ0xVQTMuuMiILRhhRpBzoI4TaFh4dJ4INCy6uwK9dwHjLwtsx+++ZefV/K4tbMQmGFxq4zSnLtTRtfMZKrA==", - "requires": { - "@react-navigation/routers": "^5.7.4", - "escape-string-regexp": "^4.0.0", - "nanoid": "^3.1.15", - "query-string": "^6.13.6", - "react-is": "^16.13.0" + "warn-once": "^0.1.0" + }, + "dependencies": { + "@react-navigation/elements": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.0.4.tgz", + "integrity": "sha512-WtaQXZ1y0aVQlQegyS2quOeSSqBvASZThdruW9AAgVbqs6qJMwbKjE5SOEsZS2jQX8OoeZNz+8bJHqVflynunw==", + "requires": {} + } } }, "@react-navigation/native": { - "version": "5.9.6", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-5.9.6.tgz", - "integrity": "sha512-m2F2AWBr0qbi4a5MBk2puGNWyVQnfmVHcpuIzQ37juptX6QCCuXjmOxvtdyqRzh2gKGnUlIeNaQKcACYj4zG/w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-6.0.2.tgz", + "integrity": "sha512-HDqEwgvQ4Cu16vz8jQ55lfyNK9CGbECI1wM9cPOcUa+gkOQEDZ/95VFfFjGGflXZs3ybPvGXlMC4ZAyh1CcO6w==", "requires": { - "@react-navigation/core": "^5.15.5", + "@react-navigation/core": "^6.0.1", "escape-string-regexp": "^4.0.0", - "nanoid": "^3.1.15" + "nanoid": "^3.1.23" + }, + "dependencies": { + "@react-navigation/core": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-6.0.1.tgz", + "integrity": "sha512-mVdvBDYdz8uzLQHokmVdX/xC4rS7NIkD1FN/yaGdovVzYApAhM+UGd3w1zskjyCSyXaVHHOwV59ZGVew+84xfQ==", + "requires": { + "@react-navigation/routers": "^6.0.1", + "escape-string-regexp": "^4.0.0", + "nanoid": "^3.1.23", + "query-string": "^7.0.0", + "react-is": "^16.13.0" + } + } } }, "@react-navigation/routers": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-5.7.4.tgz", - "integrity": "sha512-0N202XAqsU/FlE53Nmh6GHyMtGm7g6TeC93mrFAFJOqGRKznT0/ail+cYlU6tNcPA9AHzZu1Modw1eoDINSliQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@react-navigation/routers/-/routers-6.0.1.tgz", + "integrity": "sha512-5ctB49rmtTRQuTSBVgqMsEzBUjPP2ByUzBjNivA7jmvk+PDCl4oZsiR8KAm/twhxe215GYThfi2vUWXKAg6EEQ==", "requires": { - "nanoid": "^3.1.15" + "nanoid": "^3.1.23" } }, "@react-navigation/stack": { - "version": "5.14.7", - "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-5.14.7.tgz", - "integrity": "sha512-Ew+MYaJGvJUpZ3XYIilSCRruldr3JXNOWYM8bqE21EeJ5d3mfynpTPihck5ol0AN8uFEAeskQzoixGWh5eMYuA==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/@react-navigation/stack/-/stack-6.0.6.tgz", + "integrity": "sha512-2yaY0RLkZoakyou9mKdUA1UqJmyldPCtXMsOUyjCncW7PmKToAusYZbgDAIrQQB97u+/yUtvYbEQsFyQQO+rNw==", "requires": { + "@react-navigation/elements": "^1.0.4", "color": "^3.1.3", - "react-native-iphone-x-helper": "^1.3.0" + "warn-once": "^0.1.0" + }, + "dependencies": { + "@react-navigation/elements": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-1.0.4.tgz", + "integrity": "sha512-WtaQXZ1y0aVQlQegyS2quOeSSqBvASZThdruW9AAgVbqs6qJMwbKjE5SOEsZS2jQX8OoeZNz+8bJHqVflynunw==", + "requires": {} + } } }, "@reduxjs/toolkit": { @@ -67388,9 +67414,9 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "query-string": { - "version": "6.14.1", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", - "integrity": "sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.0.1.tgz", + "integrity": "sha512-uIw3iRvHnk9to1blJCG3BTc+Ro56CBowJXKmNNAm3RulvPBzWLRqKSiiDk+IplJhsydwtuNMHi8UGQFcCLVfkA==", "requires": { "decode-uri-component": "^0.2.0", "filter-obj": "^1.1.0", diff --git a/package.json b/package.json index 982ee36ec3..f41bcbce3e 100644 --- a/package.json +++ b/package.json @@ -33,9 +33,9 @@ "@react-native-async-storage/async-storage": "~1.15.0", "@react-native-community/slider": "3.0.3", "@react-native-masked-view/masked-view": "0.2.4", - "@react-navigation/bottom-tabs": "5.11.11", - "@react-navigation/native": "~5.9.4", - "@react-navigation/stack": "~5.14.5", + "@react-navigation/bottom-tabs": "^6.0.4", + "@react-navigation/native": "^6.0.2", + "@react-navigation/stack": "^6.0.6", "@reduxjs/toolkit": "^1.6.1", "bignumber.js": "^9.0.1", "buffer": "^6.0.3",