diff --git a/android/app/src/main/java/com/rsk/rwallet/v2/MainApplication.java b/android/app/src/main/java/com/rsk/rwallet/v2/MainApplication.java index 7b30bd30..1ec384ab 100644 --- a/android/app/src/main/java/com/rsk/rwallet/v2/MainApplication.java +++ b/android/app/src/main/java/com/rsk/rwallet/v2/MainApplication.java @@ -7,6 +7,7 @@ import com.facebook.react.PackageList; import com.facebook.react.ReactApplication; +import com.swmansion.reanimated.ReanimatedPackage; import com.facebook.react.ReactInstanceManager; import com.facebook.react.ReactNativeHost; import com.facebook.react.ReactPackage; diff --git a/android/settings.gradle b/android/settings.gradle index 42b7d214..983d1199 100644 --- a/android/settings.gradle +++ b/android/settings.gradle @@ -1,4 +1,6 @@ rootProject.name = 'rwallet' +include ':react-native-reanimated' +project(':react-native-reanimated').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-reanimated/android') apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) include ':app' diff --git a/ios/Podfile b/ios/Podfile index 8e308c18..7b0aee16 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -20,4 +20,6 @@ target 'rwallet' do #post_install do |installer| # react_native_post_install(installer) #end + pod 'RNReanimated', :path => '../node_modules/react-native-reanimated' + end diff --git a/package-lock.json b/package-lock.json index 0bc23821..6f66ffbc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3865,24 +3865,16 @@ "integrity": "sha512-0jbp4RxjYopTsIdLl+/Fy2TiwVYHy4mgeu07DG4b/LyM0OS/+lPP5c9sbnt/AMlnF6qz2JRZpPpGw1eMNS6A4w==" }, "@react-navigation/core": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-3.5.2.tgz", - "integrity": "sha512-HgKXci1h74aETgm5CXMBoIWG8R7VZG1eUUHYb3BdxwekdiZjW1P/srjiXzsCqFGlsESnVIOIkzT4DqI9J752Bw==", + "version": "3.7.9", + "resolved": "https://registry.npmjs.org/@react-navigation/core/-/core-3.7.9.tgz", + "integrity": "sha512-EknbzM8OI9A5alRxXtQRV5Awle68B+z1QAxNty5DxmlS3BNfmduWNGnim159ROyqxkuDffK9L/U/Tbd45mx+Jg==", "requires": { - "hoist-non-react-statics": "^3.3.0", - "path-to-regexp": "^1.7.0", - "query-string": "^6.4.2", - "react-is": "^16.8.6" + "hoist-non-react-statics": "^3.3.2", + "path-to-regexp": "^1.8.0", + "query-string": "^6.13.6", + "react-is": "^16.13.0" }, "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, "query-string": { "version": "6.14.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", @@ -3902,37 +3894,12 @@ } }, "@react-navigation/native": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-3.6.5.tgz", - "integrity": "sha512-ttEmnokFVf09CvrkzlPIdfA693KfYcRxTYf9OZwp0Ll6El27UYjJD4arwGc+zvlohjTErCdba6CAKV702Wv28w==", + "version": "3.8.4", + "resolved": "https://registry.npmjs.org/@react-navigation/native/-/native-3.8.4.tgz", + "integrity": "sha512-gXSVcL7bfFDyVkvyg1FiAqTCIgZub5K1X/TZqURBs2CPqDpfX1OsCtB9D33eTF14SpbfgHW866btqrrxoCACfg==", "requires": { "hoist-non-react-statics": "^3.3.2", - "react-native-safe-area-view": "^0.14.8" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "react-native-safe-area-view": { - "version": "0.14.9", - "resolved": "https://registry.npmjs.org/react-native-safe-area-view/-/react-native-safe-area-view-0.14.9.tgz", - "integrity": "sha512-WII/ulhpVyL/qbYb7vydq7dJAfZRBcEhg4/UWt6F6nAKpLa3gAceMOxBxI914ppwSP/TdUsandFy6lkJQE0z4A==", - "requires": { - "hoist-non-react-statics": "^2.3.1" - }, - "dependencies": { - "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" - } - } - } + "react-native-safe-area-view": "^0.14.9" } }, "@redux-saga/core": { @@ -9901,9 +9868,12 @@ } }, "hoist-non-react-statics": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", - "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } }, "hosted-git-info": { "version": "2.8.9", @@ -16574,6 +16544,11 @@ "minimist": "^1.2.5" } }, + "mockdate": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/mockdate/-/mockdate-3.0.5.tgz", + "integrity": "sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==" + }, "moment": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", @@ -18152,6 +18127,11 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, "react-native": { "version": "0.64.2", "resolved": "https://registry.npmjs.org/react-native/-/react-native-0.64.2.tgz", @@ -18656,6 +18636,53 @@ } } }, + "react-native-reanimated": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/react-native-reanimated/-/react-native-reanimated-2.2.0.tgz", + "integrity": "sha512-lOJDd+5w1gY6DHGXG2jD1dsjzQmXQ2699HUc3IztvI2WP4zUT+UAA+zSG+5JiBS5DUnTL8YhhkmUQmr1KNGO5w==", + "requires": { + "@babel/plugin-transform-object-assign": "^7.10.4", + "fbjs": "^3.0.0", + "mockdate": "^3.0.2", + "string-hash-64": "^1.0.3" + }, + "dependencies": { + "fbjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", + "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", + "requires": { + "cross-fetch": "^3.0.4", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + } + } + }, + "react-native-safe-area-context": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-native-safe-area-context/-/react-native-safe-area-context-3.2.0.tgz", + "integrity": "sha512-k2Nty4PwSnrg9HwrYeeE+EYqViYJoOFwEy9LxL5RIRfoqxAq/uQXNGwpUg2/u4gnKpBbEPa9eRh15KKMe/VHkA==" + }, + "react-native-safe-area-view": { + "version": "0.14.9", + "resolved": "https://registry.npmjs.org/react-native-safe-area-view/-/react-native-safe-area-view-0.14.9.tgz", + "integrity": "sha512-WII/ulhpVyL/qbYb7vydq7dJAfZRBcEhg4/UWt6F6nAKpLa3gAceMOxBxI914ppwSP/TdUsandFy6lkJQE0z4A==", + "requires": { + "hoist-non-react-statics": "^2.3.1" + }, + "dependencies": { + "hoist-non-react-statics": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz", + "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==" + } + } + }, "react-native-screens": { "version": "1.0.0-alpha.23", "resolved": "https://registry.npmjs.org/react-native-screens/-/react-native-screens-1.0.0-alpha.23.tgz", @@ -18712,12 +18739,9 @@ "integrity": "sha512-HTsVaxA3an6myShlLroTyDZo/AOrZ6HJr+EwCaGRE2YuGdM/cFHoYfsuslOEEig5GenTw8DILUB8kqYWQ5lJtA==" }, "react-native-tab-view": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-1.4.1.tgz", - "integrity": "sha512-Bke8KkDcDhvB/z0AS7MnQKMD2p6Kwfc1rSKlMOvg9CC5CnClQ2QEnhPSbwegKDYhUkBI92iH/BYy7hNSm5kbUQ==", - "requires": { - "prop-types": "^15.6.1" - } + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/react-native-tab-view/-/react-native-tab-view-2.16.0.tgz", + "integrity": "sha512-ac2DmT7+l13wzIFqtbfXn4wwfgtPoKzWjjZyrK1t+T8sdemuUvD4zIt+UImg03fu3s3VD8Wh/fBrIdcqQyZJWg==" }, "react-native-tcp-socket": { "version": "5.2.1", @@ -19024,41 +19048,32 @@ } }, "react-navigation": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-3.13.0.tgz", - "integrity": "sha512-r64bTImY2aNye8wtd39ubouVB6ZMJqjVQYKxH4LFmOav4FsI59fQTDN7sZzyJa29owowYw/wVkh+NWGT+tdD1A==", - "requires": { - "@react-navigation/core": "~3.5.1", - "@react-navigation/native": "~3.6.2", - "react-navigation-drawer": "~1.4.0", - "react-navigation-stack": "1.5.3", - "react-navigation-tabs": "~1.2.0" - } - }, - "react-navigation-drawer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/react-navigation-drawer/-/react-navigation-drawer-1.4.0.tgz", - "integrity": "sha512-ZyWBozcjB2aZ7vwCALv90cYA2NpDjM+WALaiYRshvPvue8l7cqynePbHK8GhlMGyJDwZqp4MxQmu8u1XAKp3Bw==", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/react-navigation/-/react-navigation-4.4.4.tgz", + "integrity": "sha512-08Nzy1aKEd73496CsuzN49vLFmxPKYF5WpKGgGvkQ10clB79IRM2BtAfVl6NgPKuUM8FXq1wCsrjo/c5ftl5og==", "requires": { - "react-native-tab-view": "^1.2.0" + "@react-navigation/core": "^3.7.9", + "@react-navigation/native": "^3.8.4" } }, "react-navigation-stack": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/react-navigation-stack/-/react-navigation-stack-1.5.3.tgz", - "integrity": "sha512-MQcwDVbZUYsTtDJb5cFOSm+K+e7KpUCoROaGoUOR+JHWE3uuaJ3pd/Nu+32a57J98TNBf4qq0+2TPJWl6z6IBg==", + "version": "2.10.4", + "resolved": "https://registry.npmjs.org/react-navigation-stack/-/react-navigation-stack-2.10.4.tgz", + "integrity": "sha512-3LE1PFsFV9v4PUlZRATMotqs6H7MOOpIKtjyP+l8D1cyzYmsMQh3EFikeDfzGQUXIvy8VyLAMtcEssicQPYvFA==", "requires": { - "prop-types": "^15.7.2" + "color": "^3.1.3", + "react-native-iphone-x-helper": "^1.3.0" } }, "react-navigation-tabs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/react-navigation-tabs/-/react-navigation-tabs-1.2.0.tgz", - "integrity": "sha512-I6vq3XX4ub9KhWQzcrggznls+2Z2C6w2ro46vokDGGvJ02CBpQRar7J0ETV29Ot5AJY67HucNUmZdH3yDFckmQ==", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/react-navigation-tabs/-/react-navigation-tabs-2.11.1.tgz", + "integrity": "sha512-wq2wR3awu6PKimmVOycBf+iTPA9FWThbJwcaDBQEhQiiviXQzAtT3lw3nV9oqNIg4v65tdPhL1Dg8ptTJ03NjQ==", "requires": { - "hoist-non-react-statics": "^2.5.0", - "prop-types": "^15.6.1", - "react-native-tab-view": "^1.4.1" + "hoist-non-react-statics": "^3.3.2", + "react-lifecycles-compat": "^3.0.4", + "react-native-iphone-x-helper": "^1.3.0", + "react-native-tab-view": "^2.15.2" } }, "react-pose-core": { @@ -20465,6 +20480,11 @@ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", "dev": true }, + "string-hash-64": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string-hash-64/-/string-hash-64-1.0.3.tgz", + "integrity": "sha512-D5OKWKvDhyVWWn2x5Y9b+37NUllks34q1dCDhk/vYcso9fmhs+Tl3KR/gE4v5UNj2UA35cnX4KdVVGkG1deKqw==" + }, "string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", diff --git a/package.json b/package.json index 49258af9..3a07773e 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "postinstall": "./node_modules/.bin/rn-nodeify --hack --install stream,http,https,crypto,os,url && ./node_modules/.bin/patch-package", "install:windows": "npm i && copy .\\postinstall\\blacklist.js .\\node_modules\\metro-config\\src\\defaults\\blacklist.js", "start": "react-native start", + "start-clean": "react-native start --reset-cache", "test": "jest", "lint": "eslint .", "podinstall": "cd ios && rm -rf Pods Podfile.lock && pod install && cd ..", @@ -88,6 +89,8 @@ "react-native-pose": "^0.9.1", "react-native-qrcode-svg": "^6.1.1", "react-native-randombytes": "^3.6.1", + "react-native-reanimated": "^2.2.0", + "react-native-safe-area-context": "^3.2.0", "react-native-screens": "^1.0.0-alpha.23", "react-native-shapes": "^0.1.0", "react-native-share": "^6.2.1", @@ -104,7 +107,9 @@ "react-native-view-shot": "^3.1.2", "react-native-webview": "^11.6.4", "react-native-windows": "^0.64.11", - "react-navigation": "^3.11.0", + "react-navigation": "^4.4.0", + "react-navigation-stack": "^2.10.4", + "react-navigation-tabs": "^2.11.1", "react-redux": "^7.1.0", "react-router-redux": "^4.0.8", "readable-stream": "^1.0.33", diff --git a/src/common/storage.js b/src/common/storage.js index 7a05e7f0..cd4fa8a1 100644 --- a/src/common/storage.js +++ b/src/common/storage.js @@ -1,5 +1,5 @@ import Storage from 'react-native-storage'; -import AsyncStorage from '@react-native-community/async-storage'; +import AsyncStorage from '@react-native-async-storage/async-storage'; import RNSecureStorage, { ACCESSIBLE } from 'rn-secure-storage'; import _ from 'lodash'; diff --git a/src/navigation/stack.dapp.js b/src/navigation/stack.dapp.js index 6cc05f76..19074bde 100644 --- a/src/navigation/stack.dapp.js +++ b/src/navigation/stack.dapp.js @@ -1,4 +1,5 @@ -import { createAppContainer, createStackNavigator } from 'react-navigation'; +import { createAppContainer } from 'react-navigation'; +import { createStackNavigator } from 'react-navigation-stack'; import { defaultNavigationOptions, routeConfigMaps } from '../common/navigation.config'; diff --git a/src/navigation/stack.exchange.js b/src/navigation/stack.exchange.js index c566e87f..128f5875 100644 --- a/src/navigation/stack.exchange.js +++ b/src/navigation/stack.exchange.js @@ -1,4 +1,5 @@ -import { createAppContainer, createStackNavigator } from 'react-navigation'; +import { createAppContainer } from 'react-navigation'; +import { createStackNavigator } from 'react-navigation-stack'; import { defaultNavigationOptions, routeConfigMaps } from '../common/navigation.config'; diff --git a/src/navigation/stack.home.js b/src/navigation/stack.home.js index b437d2c7..a0efd551 100644 --- a/src/navigation/stack.home.js +++ b/src/navigation/stack.home.js @@ -1,4 +1,5 @@ -import { createAppContainer, createStackNavigator } from 'react-navigation'; +import { createAppContainer } from 'react-navigation'; +import { createStackNavigator } from 'react-navigation-stack'; import { defaultNavigationOptions, routeConfigMaps } from '../common/navigation.config'; diff --git a/src/navigation/stack.mine.js b/src/navigation/stack.mine.js index db7299fb..2a9f9dc5 100644 --- a/src/navigation/stack.mine.js +++ b/src/navigation/stack.mine.js @@ -1,4 +1,5 @@ -import { createAppContainer, createStackNavigator } from 'react-navigation'; +import { createAppContainer } from 'react-navigation'; +import { createStackNavigator } from 'react-navigation-stack'; import { defaultNavigationOptions, routeConfigMaps } from '../common/navigation.config'; diff --git a/src/navigation/stack.spend.js b/src/navigation/stack.spend.js index a1340a9d..1e56b8e6 100644 --- a/src/navigation/stack.spend.js +++ b/src/navigation/stack.spend.js @@ -1,4 +1,5 @@ -import { createAppContainer, createStackNavigator } from 'react-navigation'; +import { createAppContainer } from 'react-navigation'; +import { createStackNavigator } from 'react-navigation-stack'; import { defaultNavigationOptions, routeConfigMaps } from '../common/navigation.config'; diff --git a/src/navigation/tab.primary.js b/src/navigation/tab.primary.js index 39086edf..8973c553 100644 --- a/src/navigation/tab.primary.js +++ b/src/navigation/tab.primary.js @@ -1,6 +1,6 @@ import React from 'react'; import { View, Image, StyleSheet } from 'react-native'; -import { createBottomTabNavigator } from 'react-navigation'; +import { createBottomTabNavigator } from 'react-navigation-tabs'; import HomeStackNavigator from './stack.home'; import MineStackNavigator from './stack.mine'; import DAppStackNavigator from './stack.dapp'; @@ -12,7 +12,6 @@ import MineLight from '../assets/images/root/tab/mine.l.png'; import spendLight from '../assets/images/root/tab/spend.l.png'; import dappLight from '../assets/images/root/tab/dapp.l.png'; - const styles = StyleSheet.create({ tabBarView: { position: 'absolute',