Resolution de bugs

This commit is contained in:
Brice Zele 2020-09-30 06:46:30 +01:00
parent f112d90468
commit e126780bd9
27 changed files with 1739 additions and 1597 deletions

44
App.js
View File

@ -9,7 +9,10 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import { ActionSheetProvider, connectActionSheet } from '@expo/react-native-action-sheet' import { ActionSheetProvider, connectActionSheet } from '@expo/react-native-action-sheet'
import { Platform, StyleSheet, Text, View, YellowBox, AsyncStorage } from 'react-native'; import { Platform, StyleSheet, Text, View, YellowBox, AsyncStorage } from 'react-native';
import { createSwitchNavigator, createStackNavigator, createDrawerNavigator, createAppContainer, createBottomTabNavigator, HeaderBackButton, withNavigation } from 'react-navigation'; import { createAppContainer, HeaderBackButton, createSwitchNavigator } from 'react-navigation';
import { createStackNavigator } from 'react-navigation-stack';
import { createBottomTabNavigator } from 'react-navigation-tabs';
import { createDrawerNavigator } from 'react-navigation-drawer';
import OneSignal from 'react-native-onesignal'; import OneSignal from 'react-native-onesignal';
import _ from 'lodash'; import _ from 'lodash';
import Connect from "./screens/login/Connect"; import Connect from "./screens/login/Connect";
@ -85,6 +88,8 @@ import CautionNanoCreditAgent from './screens/nano-credit/CautionNanoCreditAgent
import EpargnerArgentUser from './screens/nano-credit/EpargnerArgentUser'; import EpargnerArgentUser from './screens/nano-credit/EpargnerArgentUser';
import CasserEpargneUser from './screens/nano-credit/CasserEpargneUser'; import CasserEpargneUser from './screens/nano-credit/CasserEpargneUser';
import { IlinkEmitter } from './utils/events'; import { IlinkEmitter } from './utils/events';
import { fromBottom, fromLeft, zoomIn } from 'react-navigation-transitions';
const instructions = Platform.select({ const instructions = Platform.select({
ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu', ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu',
@ -137,6 +142,7 @@ const AppStack = createDrawerNavigator({
retraitCarteVersCashUser: RetraitCarteVersCashUser, retraitCarteVersCashUser: RetraitCarteVersCashUser,
retraitCarteVersWalletUser: RetraitCarteVersWalletUser, retraitCarteVersWalletUser: RetraitCarteVersWalletUser,
linkCard: LinkCard, linkCard: LinkCard,
epargnerArgentUser: EpargnerArgentUser,
createGroupNanoCredit: CreateGroupNanoCredit, createGroupNanoCredit: CreateGroupNanoCredit,
groupNanoCredit: { groupNanoCredit: {
screen: createBottomTabNavigator({ screen: createBottomTabNavigator({
@ -202,7 +208,11 @@ const AppStack = createDrawerNavigator({
casserEpargneUser: CasserEpargneUser casserEpargneUser: CasserEpargneUser
}) })
}, { contentComponent: OptionsMenu, headerMode: 'none', contentOptions: { activeTintColor: theme.accent } }) }, {
contentComponent: OptionsMenu,
headerMode: 'none',
contentOptions: { activeTintColor: theme.accent }
})
const AppAgentStack = createDrawerNavigator({ const AppAgentStack = createDrawerNavigator({
sta: createStackNavigator({ sta: createStackNavigator({
@ -263,7 +273,6 @@ const AppAgentStack = createDrawerNavigator({
envoiCashVersCashAgent: EnvoiCashVersCashAgent, envoiCashVersCashAgent: EnvoiCashVersCashAgent,
createGroupNanoCredit: CreateGroupNanoCredit, createGroupNanoCredit: CreateGroupNanoCredit,
cautionNanoCreditAgent: CautionNanoCreditAgent, cautionNanoCreditAgent: CautionNanoCreditAgent,
epargnerArgentUser: EpargnerArgentUser
}) })
}, { }, {
contentComponent: OptionsMenu, contentComponent: OptionsMenu,
@ -383,9 +392,7 @@ export const AppNavigator = createSwitchNavigator({
supAdminApp: AppSuperAdministrator, supAdminApp: AppSuperAdministrator,
Auth: AuthStack Auth: AuthStack
}, { }, {
initialRouteName: 'first', initialRouteName: 'first'
transitionConfig: () => ({
})
}); });
const AppContainer = createAppContainer(AppNavigator); const AppContainer = createAppContainer(AppNavigator);
@ -395,7 +402,7 @@ class App extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);
console.log("APP PROPS", this.props); console.log("APP PROPS", this.props);
global.appHasLoaded = false;
//Remove this method to stop OneSignal Debugging //Remove this method to stop OneSignal Debugging
OneSignal.setLogLevel(6, 0); OneSignal.setLogLevel(6, 0);
@ -433,17 +440,28 @@ class App extends React.Component {
goToScreen = (routeName, params, isReset = true) => { goToScreen = (routeName, params, isReset = true) => {
const { navigator } = this.refs; const { navigator } = this.refs;
navigator.dispatch({ if (global.appHasLoaded) {
type: "Navigation/NAVIGATE", navigator.dispatch({
routeName, type: "Navigation/NAVIGATE",
params routeName,
}); params
});
} else {
console.warn("NOTIFICATION PARAMS", params);
navigator.dispatch({
type: "Navigation/NAVIGATE",
routeName: "first",
params: { routeName, params }
});
}
}; };
handleDeepLink = (openResult) => { handleDeepLink = (openResult) => {
const data = openResult.notification.payload.additionalData; const data = openResult.notification.payload.additionalData;
//const dataParse = data.replace("'", "\"");
console.warn("HANDLE DEEP LINK", data);
this.goToScreen(data.screen, { this.goToScreen(data.screen, {
id: data.data.id id: JSON.parse(data.data).id
}); });
/* if (data && data.id) { /* if (data && data.id) {
this.goToScreen(data.screen, { this.goToScreen(data.screen, {

View File

@ -21,7 +21,6 @@
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/app_name" android:label="@string/app_name"
android:largeHeap="true" android:largeHeap="true"
android:launchMode="singleTask"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<meta-data <meta-data
@ -30,6 +29,7 @@
<activity <activity
android:name=".MainActivity" android:name=".MainActivity"
android:launchMode="singleTask"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:label="@string/app_name" android:label="@string/app_name"
android:windowSoftInputMode="adjustResize"> android:windowSoftInputMode="adjustResize">

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

View File

@ -8,8 +8,8 @@ import App from './App';
import { name as appName } from './app.json'; import { name as appName } from './app.json';
import axios from "axios"; import axios from "axios";
YellowBox.ignoredYellowBox = ['Warning: Each', 'Warning: Failed']; YellowBox.ignoredYellowBox = ['Warning: Each', 'Warning: Failed'];
console.disableYellowBox = true; console.disableYellowBox = true;
//console.reportErrorsAsExceptions = false;
AppRegistry.registerComponent(appName, () => App); AppRegistry.registerComponent(appName, () => App);

View File

@ -39,23 +39,14 @@
</dict> </dict>
<key>NSLocationWhenInUseUsageDescription</key> <key>NSLocationWhenInUseUsageDescription</key>
<string/> <string/>
<key>NSCameraUsageDescription</key> <key>NSCameraUsageDescription</key>
<string>ReactNativeCamera</string> <string>Your message to user when the camera is accessed for the first time</string>
<!-- Required with iOS 10 and higher --> <key>NSPhotoLibraryAddUsageDescription</key>
<key>NSCameraUsageDescription</key> <string>Your message to user when the photo library is accessed for the first time</string>
<string>Your message to user when the camera is accessed for the first time</string> <key>NSPhotoLibraryUsageDescription</key>
<string>Your message to user when the photo library is accessed for the first time</string>
<!-- Required with iOS 11 and higher: include this only if you are planning to use the camera roll --> <key>NSMicrophoneUsageDescription</key>
<key>NSPhotoLibraryAddUsageDescription</key> <string>Your message to user when the microphone is accessed for the first time</string>
<string>Your message to user when the photo library is accessed for the first time</string>
<!-- Include this only if you are planning to use the camera roll -->
<key>NSPhotoLibraryUsageDescription</key>
<string>Your message to user when the photo library is accessed for the first time</string>
<!-- Include this only if you are planning to use the microphone for video recording -->
<key>NSMicrophoneUsageDescription</key>
<string>Your message to user when the microphone is accessed for the first time</string>
<key>UILaunchStoryboardName</key> <key>UILaunchStoryboardName</key>
<string>LaunchScreen</string> <string>LaunchScreen</string>
<key>UIRequiredDeviceCapabilities</key> <key>UIRequiredDeviceCapabilities</key>

View File

@ -63,7 +63,7 @@
"react-native-popup-dialog": "^0.18.3", "react-native-popup-dialog": "^0.18.3",
"react-native-progress": "^3.6.0", "react-native-progress": "^3.6.0",
"react-native-range-datepicker": "^1.8.2", "react-native-range-datepicker": "^1.8.2",
"react-native-reanimated": "^1.0.1", "react-native-reanimated": "^1.13.0",
"react-native-responsive-dimensions": "^2.0.1", "react-native-responsive-dimensions": "^2.0.1",
"react-native-root-toast": "^3.2.1", "react-native-root-toast": "^3.2.1",
"react-native-screens": "^2.3.0", "react-native-screens": "^2.3.0",
@ -76,8 +76,12 @@
"react-native-tab-view": "^2.14.0", "react-native-tab-view": "^2.14.0",
"react-native-textinput-effects": "^0.5.1", "react-native-textinput-effects": "^0.5.1",
"react-native-vector-icons": "^6.5.0", "react-native-vector-icons": "^6.5.0",
"react-navigation": "3.9.1", "react-navigation": "^4.4.0",
"react-navigation-drawer": "^1.4.0",
"react-navigation-material-bottom-tabs": "^1.0.0", "react-navigation-material-bottom-tabs": "^1.0.0",
"react-navigation-stack": "^1.7.3",
"react-navigation-tabs": "^1.2.0",
"react-navigation-transitions": "^1.0.12",
"react-redux": "^7.2.0", "react-redux": "^7.2.0",
"realm": "^3.6.5", "realm": "^3.6.5",
"reanimated-bottom-sheet": "^1.0.0-alpha.10", "reanimated-bottom-sheet": "^1.0.0-alpha.10",

View File

@ -49,7 +49,7 @@ import {
CASSER_EPARGNE_USER_PENDING, CASSER_EPARGNE_USER_PENDING,
CASSER_EPARGNE_USER_SUCCESS, CASSER_EPARGNE_USER_SUCCESS,
CASSER_EPARGNE_USER_ERROR, CASSER_EPARGNE_USER_ERROR,
CASSER_EPARGNE_USER_RESET CASSER_EPARGNE_USER_RESET, GET_NANO_CREDIT_ACCOUNT_USER_PENDING, GET_NANO_CREDIT_ACCOUNT_USER_SUCCESS, GET_NANO_CREDIT_ACCOUNT_USER_ERROR, GET_NANO_CREDIT_ACCOUNT_USER_RESET
} from "../types/NanoCreditType"; } from "../types/NanoCreditType";
export const fetchCreateGroupPending = () => ({ export const fetchCreateGroupPending = () => ({
@ -313,3 +313,22 @@ export const fetchCasserEpargneUserError = (error) => ({
export const fetchCasserEpargneUserReset = () => ({ export const fetchCasserEpargneUserReset = () => ({
type: CASSER_EPARGNE_USER_RESET type: CASSER_EPARGNE_USER_RESET
}); });
export const fetchGetNanoCreditUserAccountPending = () => ({
type: GET_NANO_CREDIT_ACCOUNT_USER_PENDING
});
export const fetchGetNanoCreditUserAccountSuccess = (res) => ({
type: GET_NANO_CREDIT_ACCOUNT_USER_SUCCESS,
result: res,
});
export const fetchGetNanoCreditUserAccountError = (error) => ({
type: GET_NANO_CREDIT_ACCOUNT_USER_ERROR,
result: error
});
export const fetchGetNanoCreditUserAccountReset = () => ({
type: GET_NANO_CREDIT_ACCOUNT_USER_RESET
});

View File

@ -1,4 +1,4 @@
import { GET_NANO_CREDIT_DEMAND_DETAIL_ERROR, GET_NANO_CREDIT_DEMAND_DETAIL_PENDING, GET_NANO_CREDIT_DEMAND_DETAIL_RESET, GET_NANO_CREDIT_DEMAND_DETAIL_SUCCESS } from "../types/NanoCreditType"; import { GET_DEMAND_GROUP_ERROR, GET_DEMAND_GROUP_PENDING, GET_DEMAND_GROUP_RESET, GET_DEMAND_GROUP_SUCCESS } from "../types/NanoCreditType";
const initialState = { const initialState = {
loading: false, loading: false,
@ -8,23 +8,23 @@ const initialState = {
export default (state = initialState, action) => { export default (state = initialState, action) => {
switch (action.type) { switch (action.type) {
case GET_NANO_CREDIT_DEMAND_DETAIL_PENDING: return { case GET_DEMAND_GROUP_PENDING: return {
...state, ...state,
loading: true loading: true
} }
case GET_NANO_CREDIT_DEMAND_DETAIL_SUCCESS: return { case GET_DEMAND_GROUP_SUCCESS: return {
...state, ...state,
loading: false, loading: false,
result: action.result.data, result: action.result.data,
error: null error: null
} }
case GET_NANO_CREDIT_DEMAND_DETAIL_ERROR: return { case GET_DEMAND_GROUP_ERROR: return {
...state, ...state,
loading: false, loading: false,
result: null, result: null,
error: action.result error: action.result
} }
case GET_NANO_CREDIT_DEMAND_DETAIL_RESET: return initialState; case GET_DEMAND_GROUP_RESET: return initialState;
default: { default: {
return state; return state;

View File

@ -0,0 +1,33 @@
import { GET_NANO_CREDIT_ACCOUNT_USER_ERROR, GET_NANO_CREDIT_ACCOUNT_USER_PENDING, GET_NANO_CREDIT_ACCOUNT_USER_RESET, GET_NANO_CREDIT_ACCOUNT_USER_SUCCESS } from "../types/NanoCreditType";
const initialState = {
loading: false,
result: null,
error: null
};
export default (state = initialState, action) => {
switch (action.type) {
case GET_NANO_CREDIT_ACCOUNT_USER_PENDING: return {
...state,
loading: true
}
case GET_NANO_CREDIT_ACCOUNT_USER_SUCCESS: return {
...state,
loading: false,
result: action.result.data,
error: null
}
case GET_NANO_CREDIT_ACCOUNT_USER_ERROR: return {
...state,
loading: false,
result: null,
error: action.result
}
case GET_NANO_CREDIT_ACCOUNT_USER_RESET: return initialState;
default: {
return state;
}
}
};

View File

@ -39,6 +39,7 @@ import walletHistoryReducer from "./WalletTransactionHistoryReducer";
import walletTransferCommissionReducer from "./WalletTransferCommission"; import walletTransferCommissionReducer from "./WalletTransferCommission";
import EpargnerArgentUserReducer from "./EpargnerArgentUserReducer"; import EpargnerArgentUserReducer from "./EpargnerArgentUserReducer";
import CasserEpargneUserReducer from "./CasserEpargneUserReducer"; import CasserEpargneUserReducer from "./CasserEpargneUserReducer";
import GetNanoCreditAccountUserReducer from "./GetNanoCreditAccountUserReducer";
const persistConfig = { const persistConfig = {
key: 'root', key: 'root',
@ -87,7 +88,8 @@ const rootReducer = persistCombineReducers(persistConfig, {
refundCreditDemandReducer: RefundCreditDemandUserReducer, refundCreditDemandReducer: RefundCreditDemandUserReducer,
getNanoCreditDemandDetailReducer: GetNanoCreditDemandDetailReducer, getNanoCreditDemandDetailReducer: GetNanoCreditDemandDetailReducer,
epargnerArgentUserReducer: EpargnerArgentUserReducer, epargnerArgentUserReducer: EpargnerArgentUserReducer,
casserEpargneUserReducer: CasserEpargneUserReducer casserEpargneUserReducer: CasserEpargneUserReducer,
getNanoCreditAccountUserReducer: GetNanoCreditAccountUserReducer
}); });

View File

@ -67,3 +67,8 @@ export const CASSER_EPARGNE_USER_PENDING = 'CASSER_EPARGNE_USER_PENDING';
export const CASSER_EPARGNE_USER_SUCCESS = 'CASSER_EPARGNE_USER_SUCCESS'; export const CASSER_EPARGNE_USER_SUCCESS = 'CASSER_EPARGNE_USER_SUCCESS';
export const CASSER_EPARGNE_USER_ERROR = 'CASSER_EPARGNE_USER_ERROR'; export const CASSER_EPARGNE_USER_ERROR = 'CASSER_EPARGNE_USER_ERROR';
export const CASSER_EPARGNE_USER_RESET = 'CASSER_EPARGNE_USER_RESET'; export const CASSER_EPARGNE_USER_RESET = 'CASSER_EPARGNE_USER_RESET';
export const GET_NANO_CREDIT_ACCOUNT_USER_PENDING = 'GET_NANO_CREDIT_ACCOUNT_USER_PENDING';
export const GET_NANO_CREDIT_ACCOUNT_USER_SUCCESS = 'GET_NANO_CREDIT_ACCOUNT_USER_SUCCESS';
export const GET_NANO_CREDIT_ACCOUNT_USER_ERROR = 'GET_NANO_CREDIT_ACCOUNT_USER_ERROR';
export const GET_NANO_CREDIT_ACCOUNT_USER_RESET = 'GET_NANO_CREDIT_ACCOUNT_USER_RESET';

View File

@ -161,13 +161,15 @@ class Home extends BaseScreen {
AsyncStorage.getAllKeys((err, keys) => { AsyncStorage.getAllKeys((err, keys) => {
AsyncStorage.multiGet(keys, (err, stores) => { AsyncStorage.multiGet(keys, (err, stores) => {
stores.map(async (result, i, store) => { stores.map(async (result, i, store) => {
console.warn("KEY MAP", store); /* console.warn("KEY MAP", store);
console.log("KEY SAVE " + store[i][0]); console.log("KEY SAVE " + store[i][0]); */
let key = store[i][0]; let key = store[i][0];
if (i === 0) { if (i === 0) {
if (!_.isEqual(key, '@config:onesignalIds')) { if (!_.isEqual(key, '@config:onesignalIds')) {
this._saveOneSignalIds(device.userId); this._saveOneSignalIds(device.userId);
IlinkEmitter.emit("firstlaunch"); console.log("FIRST LAUNCH", true);
//IlinkEmitter.emit("firstlaunch");
this.onFirstLaunch();
} }
} }
}); });
@ -181,18 +183,16 @@ class Home extends BaseScreen {
console.log("USER", user); console.log("USER", user);
if (user) { if (user) {
if (user !== undefined) { if (user !== undefined) {
if (user.phone !== undefined)
this.props.getAuthApiKey(user.phone);
const onesignalIds = await this._getOneSignalIds(); global.onesignalIds = await this._getOneSignalIds();
if (onesignalIds) { if (global.onesignalIds) {
console.log("ONESIGNAL", onesignalIds); console.log("ONESIGNAL", global.onesignalIds);
if (user !== undefined) { if (user !== undefined) {
if (user.category !== undefined) { if (user.category !== undefined) {
if (user.category === "geolocated") { if (user.category === "geolocated") {
this.saveOneSignal(false, false, { this.saveOneSignal(false, {
code_membre: user.user_code, code_membre: user.code_membre,
player_id: onesignalIds, player_id: global.onesignalIds,
set_default: false set_default: false
}); });
@ -205,7 +205,7 @@ class Home extends BaseScreen {
} else { } else {
this.saveOneSignal(true, { this.saveOneSignal(true, {
user_code: user.user_code, user_code: user.user_code,
player_id: onesignalIds, player_id: global.onesignalIds,
set_default: false set_default: false
}); });
/* this.props.saveOnesignalIdsAction(true, { /* this.props.saveOnesignalIdsAction(true, {
@ -235,20 +235,20 @@ class Home extends BaseScreen {
}) })
.then(response => { .then(response => {
console.warn(response); console.warn(response);
//this.renderOneSignalResponse(); if (response.data.status === 201)
this.renderOneSignalResponse(response.data.error);
}) })
.catch(error => { .catch(error => {
console.warn(error); console.warn(error);
/* if (error.response) if (error.response)
this.renderOneSignalResponse(error.response); this.renderOneSignalResponse(error.response);
else if (error.request) else if (error.request)
this.renderOneSignalResponse(error.request); this.renderOneSignalResponse(error.request);
else else
this.renderOneSignalResponse(error.message); */ this.renderOneSignalResponse(error.message);
}); });
} }
navigationEventListener
_retrieveData = async () => { _retrieveData = async () => {
try { try {
const value = await AsyncStorage.getItem('position'); const value = await AsyncStorage.getItem('position');
@ -276,6 +276,17 @@ class Home extends BaseScreen {
} }
componentDidMount() { componentDidMount() {
readUser().then(async (user) => {
if (user) {
if (user !== undefined) {
if (user.phone !== undefined)
this.props.getAuthApiKey(user.phone);
}
}
});
global.appHasLoaded = true;
console.log("APP HAS LOADED", global.appHasLoaded);
/* AsyncStorage.getAllKeys((err, keys) => { /* AsyncStorage.getAllKeys((err, keys) => {
AsyncStorage.multiGet(keys, (err, stores) => { AsyncStorage.multiGet(keys, (err, stores) => {
stores.map((result, i, store) => { stores.map((result, i, store) => {
@ -1508,52 +1519,50 @@ class Home extends BaseScreen {
} }
renderOneSignalResponse = (message) => { renderOneSignalResponse = (message) => {
Alert.alert(
I18n.t('PHISIC_SECURITY'),
"Message",
[{ text: "OK" }]
);
/* Alert.alert( /* Alert.alert(
I18n.t('PHISIC_SECURITY'), I18n.t('PHISIC_SECURITY'),
message, "Message",
[ [{ text: "OK" }]
{ ); */
Alert.alert(
I18n.t('PHISIC_SECURITY'),
message,
[
{
text: I18n.t('REFUSED'), text: I18n.t('REFUSED'),
onPress: () => { onPress: () => {
} }
}, },
{ {
text: I18n.t("SUBMIT_LABEL"), onPress: () => { text: I18n.t("SUBMIT_LABEL"), onPress: () => {
readUser().then((user) => { readUser().then((user) => {
if (user) { if (user) {
if (user.category !== undefined && user.category !== null) { if (user.category !== undefined) {
if (user.category !== undefined) { if (user.category === "geolocated") {
if (user.category === "geolocated") { this.saveOneSignal(false, {
this.saveOneSignal(false, { code_membre: user.code_membre,
code_membre: user.user_code, player_id: global.onesignalIds,
player_id: onesignalIds, set_default: true
set_default: true });
});
}
} else {
this.saveOneSignal(true, {
user_code: user.user_code,
player_id: onesignalIds,
set_default: true
});
}
}
} }
}); } else {
this.saveOneSignal(true, {
user_code: user.user_code,
player_id: global.onesignalIds,
set_default: true
});
}
} }
} });
}
}
], ],
{ cancelable: false } { cancelable: false }
) */ )
} }
renderOldHome() { renderOldHome() {
@ -1565,7 +1574,7 @@ class Home extends BaseScreen {
translucent={true} translucent={true}
/> />
{/* Start here to comment */} {/* Start here to comment */}
{ {/* {
(this.state.loadingDialog || this.props.loading) ? (this.state.loadingDialog || this.props.loading) ?
<View <View
style={{ position: "absolute", zIndex: 1, backgroundColor: "#00000050", width: this.state.loadingDialog ? responsiveWidth(100) : 0, height: this.state.loadingDialog ? responsiveHeight(100) : 0, flex: 1, justifyContent: 'center', alignItems: 'center' }} style={{ position: "absolute", zIndex: 1, backgroundColor: "#00000050", width: this.state.loadingDialog ? responsiveWidth(100) : 0, height: this.state.loadingDialog ? responsiveHeight(100) : 0, flex: 1, justifyContent: 'center', alignItems: 'center' }}
@ -1601,7 +1610,7 @@ class Home extends BaseScreen {
this.setState({ showProgress: false }) this.setState({ showProgress: false })
Alert.alert(I18n.t("PROBLEM_OCCUR"), I18n.t("PROBLEM_OCCUR_DIRECTION"), [{ text: "Ok", onPress: () => { } }]) Alert.alert(I18n.t("PROBLEM_OCCUR"), I18n.t("PROBLEM_OCCUR_DIRECTION"), [{ text: "Ok", onPress: () => { } }])
}} }}
/> /> */}
{this.makeCardSearch()} {this.makeCardSearch()}
{this.makeSlidingUp()} {this.makeSlidingUp()}
{this.makeDialogLoader()} {this.makeDialogLoader()}

View File

@ -35,6 +35,7 @@ import walletDepot from './wallet/WalletDepot';
import WalletRetrait from './wallet/WalletRetrait'; import WalletRetrait from './wallet/WalletRetrait';
import WalletSelect from './wallet/WalletSelect'; import WalletSelect from './wallet/WalletSelect';
import CreateIdentification from './identification/createIdentification'; import CreateIdentification from './identification/createIdentification';
import DemandGroupNanoCredit from './nano-credit/DemandGroupNanoCredit';
let route = require('./../route.json') let route = require('./../route.json')
export function registerScreens() { export function registerScreens() {
@ -66,6 +67,8 @@ export function registerScreens() {
Navigation.registerComponent(route.generateNetwork, () => GenerateNetworkForGeo); Navigation.registerComponent(route.generateNetwork, () => GenerateNetworkForGeo);
Navigation.registerComponent(route.helpmenu, () => HelpMenu); Navigation.registerComponent(route.helpmenu, () => HelpMenu);
Navigation.registerComponent(route.updateinfo, () => UpdateInformations); Navigation.registerComponent(route.updateinfo, () => UpdateInformations);
Navigation.registerComponent(route.notification, () => Notifications);
Navigation.registerComponent(route.demandGroupNanoCreditDetail, () => DemandGroupNanoCredit);
/* Navigation.registerComponent(route.walletDetail, () => WalletDetail); /* Navigation.registerComponent(route.walletDetail, () => WalletDetail);
Navigation.registerComponent(route.walletDepot, () => walletDepot); Navigation.registerComponent(route.walletDepot, () => walletDepot);
Navigation.registerComponent(route.walletRetrait, () => WalletRetrait); Navigation.registerComponent(route.walletRetrait, () => WalletRetrait);

View File

@ -66,7 +66,7 @@ class CautionNanoCreditAgent extends Component {
static navigationOptions = () => { static navigationOptions = () => {
return { return {
drawerLabel: () => null, drawerLabel: () => null,
headerTitle: I18n.t('REFUND_NANO_CREDIT'), headerTitle: I18n.t('CAUTION_CREDIT'),
headerTintColor: 'white', headerTintColor: 'white',
headerStyle: { headerStyle: {
backgroundColor: Color.primaryColor, backgroundColor: Color.primaryColor,
@ -76,7 +76,7 @@ class CautionNanoCreditAgent extends Component {
headerTitleStyle: { headerTitleStyle: {
color: "white" color: "white"
}, },
title: I18n.t('REFUND_NANO_CREDIT') title: I18n.t('CAUTION_CREDIT')
} }
}; };
@ -277,7 +277,7 @@ class CautionNanoCreditAgent extends Component {
return (isNil(champ) || isEqual(champ.length, 0)); return (isNil(champ) || isEqual(champ.length, 0));
} }
onSubmitSendWalletToCard = () => { onSubmitCautionnerNanoCredit = () => {
const { idDemand, password } = this.state; const { idDemand, password } = this.state;
if (this.ckeckIfFieldIsOK(idDemand)) if (this.ckeckIfFieldIsOK(idDemand))
@ -422,7 +422,7 @@ class CautionNanoCreditAgent extends Component {
<Button style={styles.btnvalide} <Button style={styles.btnvalide}
textStyle={styles.textbtnvalide} textStyle={styles.textbtnvalide}
onPress={() => { this.onSubmitSendWalletToCard(); }}> onPress={() => { this.onSubmitCautionnerNanoCredit(); }}>
{this.state.isGroupToModify ? I18n.t('MODIFY') : I18n.t('SUBMIT_LABEL')}</Button> {this.state.isGroupToModify ? I18n.t('MODIFY') : I18n.t('SUBMIT_LABEL')}</Button>
</ScrollView> </ScrollView>
</> </>

View File

@ -81,7 +81,8 @@ class DemandValidationGroup extends React.Component {
isSectionned: false, isSectionned: false,
isDateTimePickerVisible: false, isDateTimePickerVisible: false,
isDateEndTimePickerVisible: false, isDateEndTimePickerVisible: false,
isDataSubmit: false isDataSubmit: false,
position: 0
}; };
readUser().then((user) => { readUser().then((user) => {
this.setState({ user: user }); this.setState({ user: user });
@ -311,6 +312,7 @@ class DemandValidationGroup extends React.Component {
} }
render() { render() {
console.warn("POSITION", this.state.position);
return ( return (
<Provider> <Provider>
<View style={{ flex: 1 }} <View style={{ flex: 1 }}

View File

@ -175,7 +175,7 @@ class RefundNanoCreditUser extends Component {
<Text style={styles.subbigtitle}>{I18n.t('DEMAND_INFO')}</Text> <Text style={styles.subbigtitle}>{I18n.t('DEMAND_INFO')}</Text>
<Animatable.View ref={(comp) => { thisidDemandAnim = comp }}> <Animatable.View ref={(comp) => { this.idDemandAnim = comp }}>
<Fumi iconClass={FontAwesomeIcon} iconName={'id-card'} <Fumi iconClass={FontAwesomeIcon} iconName={'id-card'}
label={I18n.t('ID_DEMAND')} label={I18n.t('ID_DEMAND')}
iconColor={'#f95a25'} iconColor={'#f95a25'}
@ -208,7 +208,7 @@ class RefundNanoCreditUser extends Component {
<Button style={styles.btnvalide} <Button style={styles.btnvalide}
textStyle={styles.textbtnvalide} textStyle={styles.textbtnvalide}
onPress={() => { this.onSubmitCasserEpargne(); }}> onPress={() => { this.onSubmitRefundNanoCredit(); }}>
{this.state.isGroupToModify ? I18n.t('MODIFY') : I18n.t('SUBMIT_LABEL')}</Button> {this.state.isGroupToModify ? I18n.t('MODIFY') : I18n.t('SUBMIT_LABEL')}</Button>
</ScrollView> </ScrollView>
</> </>
@ -218,9 +218,9 @@ class RefundNanoCreditUser extends Component {
const maptStateToProps = state => ({ const maptStateToProps = state => ({
loading: state.casserEpargneUserReducer.loading, loading: state.refundCreditDemandReducer.loading,
result: state.casserEpargneUserReducer.result, result: state.refundCreditDemandReducer.result,
error: state.casserEpargneUserReducer.error, error: state.refundCreditDemandReducer.error,
}); });
const mapDispatchToProps = dispatch => bindActionCreators({ const mapDispatchToProps = dispatch => bindActionCreators({

View File

@ -56,10 +56,16 @@ class Notifications extends BaseScreen {
readUser().then((user) => { readUser().then((user) => {
if (user) { if (user) {
if (user !== undefined) { if (user !== undefined) {
if (user.phone !== undefined) { if (user.category !== undefined) {
this.props.getNotificationAction({ if (user.category === "super" || user.category === "geolocated" || user.category === "hyper") {
user_code: user.user_code this.props.getNotificationAction({
}); agent_code: user.code_membre
});
} else {
this.props.getNotificationAction({
user_code: user.user_code
});
}
} }
} }
} }

View File

@ -13,6 +13,7 @@ import { baseUrl } from '../../webservice/IlinkConstants';
import { IlinkEmitter } from "../../utils/events"; import { IlinkEmitter } from "../../utils/events";
import { Provider, Appbar } from 'react-native-paper'; import { Provider, Appbar } from 'react-native-paper';
import { readUser } from '../../webservice/AuthApi'; import { readUser } from '../../webservice/AuthApi';
import { getNanoCreditAccountReset, getNanoCreditAccountAction } from '../../webservice/user/NanoCreditApi';
import _ from 'lodash'; import _ from 'lodash';
import Icons from 'react-native-vector-icons/Ionicons' import Icons from 'react-native-vector-icons/Ionicons'
import { FontWeight, Typography } from '../../config/typography'; import { FontWeight, Typography } from '../../config/typography';
@ -21,6 +22,8 @@ import { isIlinkWorldWallet, optionDepotScreen, optionPaiementFactureSubScreen,
import chunk from 'lodash/chunk'; import chunk from 'lodash/chunk';
import thousands from 'thousands'; import thousands from 'thousands';
import Tag from '../../components/Tag'; import Tag from '../../components/Tag';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
class WalletOptionSelect extends Component { class WalletOptionSelect extends Component {
@ -37,19 +40,33 @@ class WalletOptionSelect extends Component {
onGoBack: this.props.navigation.state.params.onGoBack, onGoBack: this.props.navigation.state.params.onGoBack,
isIdentified: this.props.navigation.state.params.isIdentified || null, isIdentified: this.props.navigation.state.params.isIdentified || null,
isNanoCredit: this.props.navigation.state.params.hasOwnProperty('isNanoCredit'), isNanoCredit: this.props.navigation.state.params.hasOwnProperty('isNanoCredit'),
user: null user: null,
isDataHasLoaded: false
} }
console.log("WALLET OPTION PROPS", this.props); console.log("WALLET OPTION PROPS", this.props);
IlinkEmitter.on("langueChange", this.updateLangue.bind(this)); IlinkEmitter.on("langueChange", this.updateLangue.bind(this));
this.props.getNanoCreditAccountReset();
readUser().then((user) => { readUser().then((user) => {
if (user) { if (user) {
if (user !== undefined) { if (user !== undefined) {
this.props.getNanoCreditAccountAction(user.id);
this.setState({ user }); this.setState({ user });
} }
} }
}); });
this.willFocus = this.props.navigation.addListener(
'willFocus',
payload => {
readUser().then((user) => {
if (user) {
if (user !== undefined) {
this.props.getNanoCreditAccountAction(user.id);
}
}
});
});
} }
static navigationOptions = ({ navigation }) => ({ static navigationOptions = ({ navigation }) => ({
@ -68,7 +85,20 @@ class WalletOptionSelect extends Component {
/>) />)
}); });
renderResultGetNanoCreditAccount() {
const { result } = this.props;
console.log("BEFORE", this.props);
if (result !== null) {
if (result.response !== null) {
this.setState({
user: { ...this.state.user, balance_credit: result.response.balance_credit, balance_epargne: result.response.balance_epargne },
isDataHasLoaded: true
});
console.log("AFTER", this.props);
}
}
}
updateLangue() { updateLangue() {
this.props.navigation.setParams({ name: I18n.t('WALLET') }) this.props.navigation.setParams({ name: I18n.t('WALLET') })
@ -308,6 +338,7 @@ class WalletOptionSelect extends Component {
); );
render() { render() {
!this.state.isDataHasLoaded && this.renderResultGetNanoCreditAccount();
return ( return (
<Provider> <Provider>
<View style={{ flex: 1 }}> <View style={{ flex: 1 }}>
@ -382,7 +413,18 @@ class WalletOptionSelect extends Component {
} }
} }
export default connectActionSheet(WalletOptionSelect); const mapStateToProps = state => ({
loading: state.getNanoCreditAccountUserReducer.loading,
result: state.getNanoCreditAccountUserReducer.result,
error: state.getNanoCreditAccountUserReducer.error,
});
const mapDispatchToProps = dispatch => bindActionCreators({
getNanoCreditAccountAction,
getNanoCreditAccountReset,
}, dispatch);
export default connect(mapStateToProps, mapDispatchToProps)(connectActionSheet(WalletOptionSelect));
const styles = StyleSheet.create({ const styles = StyleSheet.create({
container: { container: {

View File

@ -65,6 +65,7 @@ export const epargnerArgentUrl = testBaseUrl + '/walletService/groups/nanoCredit
export const casserEpargneUrl = testBaseUrl + '/walletService/groups/nanoCredit/savings/break'; export const casserEpargneUrl = testBaseUrl + '/walletService/groups/nanoCredit/savings/break';
export const saveOnesignalIds = testBaseUrl + '/notificationService/onesignal'; export const saveOnesignalIds = testBaseUrl + '/notificationService/onesignal';
export const getNotificationUrl = testBaseUrl + '/notificationService/notifications'; export const getNotificationUrl = testBaseUrl + '/notificationService/notifications';
export const getNanoCreditAccount = testBaseUrl + '/walletService/groups/nanoCredit/accounts';
export const authKeyUrl = testBaseUrl + '/oauth/token'; export const authKeyUrl = testBaseUrl + '/oauth/token';
export const videoUrl = "https://www.youtube.com/watch?v=wwGPDPsSLWY"; export const videoUrl = "https://www.youtube.com/watch?v=wwGPDPsSLWY";

View File

@ -2,8 +2,8 @@
import axios from "axios"; import axios from "axios";
import I18n from 'react-native-i18n'; import I18n from 'react-native-i18n';
import { store } from "../../redux/store"; import { store } from "../../redux/store";
import { fetchCautionCreditDemandUserError, fetchCautionCreditDemandUserPending, fetchCautionCreditDemandUserReset, fetchCautionCreditDemandUserSuccess, fetchGetDemandsGroupError, fetchGetDemandsGroupPending, fetchGetDemandsGroupReset, fetchGetDemandsGroupSuccess, fetchGetUniqueDemandsGroupError, fetchGetUniqueDemandsGroupPending, fetchGetUniqueDemandsGroupReset, fetchGetUniqueDemandsGroupSuccess, fetchGetUserGroupDetailError, fetchGetUserGroupDetailPending, fetchGetUserGroupDetailReset, fetchGetUserGroupDetailSuccess, fetchEpargnerArgentUserPending, fetchEpargnerArgentUserSuccess, fetchEpargnerArgentUserError, fetchEpargnerArgentUserReset, fetchCasserEpargneUserPending, fetchCasserEpargneUserSuccess, fetchCasserEpargneUserError, fetchCasserEpargneUserReset } from "../../redux/actions/NanoCreditAction"; import { fetchCautionCreditDemandUserError, fetchCautionCreditDemandUserPending, fetchCautionCreditDemandUserReset, fetchCautionCreditDemandUserSuccess, fetchGetDemandsGroupError, fetchGetDemandsGroupPending, fetchGetDemandsGroupReset, fetchGetDemandsGroupSuccess, fetchGetUniqueDemandsGroupError, fetchGetUniqueDemandsGroupPending, fetchGetUniqueDemandsGroupReset, fetchGetUniqueDemandsGroupSuccess, fetchGetUserGroupDetailError, fetchGetUserGroupDetailPending, fetchGetUserGroupDetailReset, fetchGetUserGroupDetailSuccess, fetchEpargnerArgentUserPending, fetchEpargnerArgentUserSuccess, fetchEpargnerArgentUserError, fetchEpargnerArgentUserReset, fetchCasserEpargneUserPending, fetchCasserEpargneUserSuccess, fetchCasserEpargneUserError, fetchCasserEpargneUserReset, fetchGetNanoCreditUserAccountPending, fetchGetNanoCreditUserAccountSuccess, fetchGetNanoCreditUserAccountError, fetchGetNanoCreditUserAccountReset } from "../../redux/actions/NanoCreditAction";
import { cautionCreditDemandtUrl, getCreditDemand, groupUrl, refundCreditDemandUrl, epargnerArgentUrl, casserEpargneUrl } from "../IlinkConstants"; import { cautionCreditDemandtUrl, getCreditDemand, groupUrl, refundCreditDemandUrl, epargnerArgentUrl, casserEpargneUrl, getNanoCreditAccount } from "../IlinkConstants";
export const getNanoCreditDemandsAction = (id) => { export const getNanoCreditDemandsAction = (id) => {
@ -233,3 +233,41 @@ export const casserEpargneUserReset = () => {
dispatch(fetchCasserEpargneUserReset()); dispatch(fetchCasserEpargneUserReset());
} }
} }
export const getNanoCreditAccountAction = (idUser) => {
const auth = store.getState().authKeyReducer;
const authKey = auth !== null ? `${auth.authKey.token_type} ${auth.authKey.access_token}` : '';
return dispatch => {
dispatch(fetchGetNanoCreditUserAccountPending());
axios({
url: `${getNanoCreditAccount}/${idUser}`,
method: 'GET',
headers: {
'Authorization': authKey,
'X-Localization': I18n.currentLocale()
},
})
.then(response => {
console.log(response);
dispatch(fetchGetNanoCreditUserAccountSuccess(response));
})
.catch(error => {
if (error.response)
dispatch(fetchGetNanoCreditUserAccountError(error.response));
else if (error.request)
dispatch(fetchGetNanoCreditUserAccountError(error.request))
else
dispatch(fetchGetNanoCreditUserAccountError(error.message))
});
}
}
export const getNanoCreditAccountReset = () => {
return dispatch => {
dispatch(fetchGetNanoCreditUserAccountReset());
}
}

112
yarn.lock
View File

@ -1003,24 +1003,23 @@
resolved "https://registry.yarnpkg.com/@react-native-community/viewpager/-/viewpager-3.3.0.tgz#e613747a43a31a6f3278f817ba96fdaaa7941f23" resolved "https://registry.yarnpkg.com/@react-native-community/viewpager/-/viewpager-3.3.0.tgz#e613747a43a31a6f3278f817ba96fdaaa7941f23"
integrity sha512-tyzh79l4t/hxiyS9QD3LRmWMs8KVkZzjrkQ8U8+8To1wmvVCBtp8BenvNsDLTBO7CpO/YmiThpmIdEZMr1WuVw== integrity sha512-tyzh79l4t/hxiyS9QD3LRmWMs8KVkZzjrkQ8U8+8To1wmvVCBtp8BenvNsDLTBO7CpO/YmiThpmIdEZMr1WuVw==
"@react-navigation/core@~3.4.1": "@react-navigation/core@^3.7.6":
version "3.4.2" version "3.7.6"
resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-3.4.2.tgz#bec563e94fde40fbab3730cdc97f22afbb2a1498" resolved "https://registry.yarnpkg.com/@react-navigation/core/-/core-3.7.6.tgz#e0244fcdc22937825b252197f70308bbe5709c58"
integrity sha512-7G+iDzLSTeOUU4vVZeRZKJ+Bd7ds7ZxYNqZcB8i0KlBeQEQfR74Ounfu/p0KIEq2RiNnaE3QT7WVP3C87sebzw== integrity sha512-loYFIn0Boy7C+vYxwcqsBVRFRO1EizZJErdutE6/3Jw6dbzz3Bnzupbw5hckZNB16GckacMwGoepZNIK51IIcg==
dependencies: dependencies:
hoist-non-react-statics "^3.3.0" hoist-non-react-statics "^3.3.2"
path-to-regexp "^1.7.0" path-to-regexp "^1.8.0"
query-string "^6.4.2" query-string "^6.11.1"
react-is "^16.8.6" react-is "^16.13.0"
"@react-navigation/native@~3.4.0": "@react-navigation/native@^3.8.0":
version "3.4.2" version "3.8.0"
resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-3.4.2.tgz#ed1efe79627a9d50258088d793d6d5eca8b5c382" resolved "https://registry.yarnpkg.com/@react-navigation/native/-/native-3.8.0.tgz#35882c3fc2f997ea1a43c12a15088cf4c818fd92"
integrity sha512-oDUZ9y10nM4td3nGmcMCkq2pYRCSOMPxLOPs55lWdT9CwY8PB/3sFuQrSW50/t0krO9KvAjclYfOLywuOB1Vtg== integrity sha512-Uym5XdNOTpTR6XC4IVa/Shfn12DUF3DUIqch+cpiLNfvauQukVmWoz+Rfxd2faGOzxT12EhrWGFsMJ/8nuTfcw==
dependencies: dependencies:
hoist-non-react-statics "^3.0.1" hoist-non-react-statics "^3.3.2"
react-native-safe-area-view "^0.14.1" react-native-safe-area-view "^0.14.9"
react-native-screens "^1.0.0 || ^1.0.0-alpha"
"@types/babel__core@^7.1.0": "@types/babel__core@^7.1.0":
version "7.1.6" version "7.1.6"
@ -3861,7 +3860,7 @@ hoist-non-react-statics@^2.3.1, hoist-non-react-statics@^2.5.0:
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz#c5903cf409c0dfd908f388e619d86b9c1174cb47"
integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw== integrity sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw==
hoist-non-react-statics@^3.0.1, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0: hoist-non-react-statics@^3.0.1, hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2:
version "3.3.2" version "3.3.2"
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
@ -6065,7 +6064,7 @@ path-parse@^1.0.6:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
path-to-regexp@^1.7.0: path-to-regexp@^1.8.0:
version "1.8.0" version "1.8.0"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a"
integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==
@ -6274,10 +6273,10 @@ qs@~6.5.2:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
query-string@^6.4.2: query-string@^6.11.1:
version "6.13.1" version "6.13.2"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.1.tgz#d913ccfce3b4b3a713989fe6d39466d92e71ccad" resolved "https://registry.yarnpkg.com/query-string/-/query-string-6.13.2.tgz#3585aa9412c957cbd358fd5eaca7466f05586dda"
integrity sha512-RfoButmcK+yCta1+FuU8REvisx1oEzhMKwhLUNcepQTPGcNMp1sIqjnfCtfnvGSQZQEhaBHvccujtWoUV3TTbA== integrity sha512-BMmDaUiLDFU1hlM38jTFcRt7HYiGP/zt1sRzrIWm5zpeEuO1rkbPS0ELI3uehoLuuhHDCS8u8lhFN3fEN4JzPQ==
dependencies: dependencies:
decode-uri-component "^0.2.0" decode-uri-component "^0.2.0"
split-on-first "^1.0.0" split-on-first "^1.0.0"
@ -6333,7 +6332,7 @@ react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.3, react-i
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz#0f37c3613c34fe6b37cd7f763a0d6293ab15c527"
integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA== integrity sha512-GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==
react-is@^16.8.6, react-is@^16.9.0: react-is@^16.13.0, react-is@^16.9.0:
version "16.13.1" version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@ -6672,10 +6671,12 @@ react-native-ratings@^6.3.0:
lodash "^4.17.4" lodash "^4.17.4"
prop-types "^15.5.10" prop-types "^15.5.10"
react-native-reanimated@^1.0.1: react-native-reanimated@^1.13.0:
version "1.7.0" version "1.13.0"
resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-1.7.0.tgz#896db2576552ac59d288a1f6c7f00afc171f240c" resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-1.13.0.tgz#1ee5d27d34bd2cee7dfad4ae9a3673300872c917"
integrity sha512-FQWSqP605eQVJumuK2HpR+7heF0ZI+qfy4jNguv3Xv8nPFHeIgZaRTXHCEQL2AcuSIj50zy8jGJf5l134QMQWQ== integrity sha512-uadP/0QO+4TCsyPSvzRdl+76NPM7Bp8M25KQLB4Hg3tWBMjhrMrETnzNi33L/OPfmhU+7rceyi0QPe/DxKT5bQ==
dependencies:
fbjs "^1.0.0"
react-native-responsive-dimensions@^2.0.1: react-native-responsive-dimensions@^2.0.1:
version "2.0.1" version "2.0.1"
@ -6712,7 +6713,7 @@ react-native-safe-area-view@^0.12.0:
dependencies: dependencies:
hoist-non-react-statics "^2.3.1" hoist-non-react-statics "^2.3.1"
react-native-safe-area-view@^0.14.1: react-native-safe-area-view@^0.14.9:
version "0.14.9" version "0.14.9"
resolved "https://registry.yarnpkg.com/react-native-safe-area-view/-/react-native-safe-area-view-0.14.9.tgz#90ee8383037010d9a5055a97cf97e4c1da1f0c3d" resolved "https://registry.yarnpkg.com/react-native-safe-area-view/-/react-native-safe-area-view-0.14.9.tgz#90ee8383037010d9a5055a97cf97e4c1da1f0c3d"
integrity sha512-WII/ulhpVyL/qbYb7vydq7dJAfZRBcEhg4/UWt6F6nAKpLa3gAceMOxBxI914ppwSP/TdUsandFy6lkJQE0z4A== integrity sha512-WII/ulhpVyL/qbYb7vydq7dJAfZRBcEhg4/UWt6F6nAKpLa3gAceMOxBxI914ppwSP/TdUsandFy6lkJQE0z4A==
@ -6726,13 +6727,6 @@ react-native-safe-modules@^1.0.0:
dependencies: dependencies:
dedent "^0.6.0" dedent "^0.6.0"
"react-native-screens@^1.0.0 || ^1.0.0-alpha":
version "1.0.0-alpha.23"
resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-1.0.0-alpha.23.tgz#25d7ea4d11bda4fcde2d1da7ae50271c6aa636e0"
integrity sha512-tOxHGQUN83MTmQB4ghoQkibqOdGiX4JQEmeyEv96MKWO/x8T2PJv84ECUos9hD3blPRQwVwSpAid1PPPhrVEaw==
dependencies:
debounce "^1.2.0"
react-native-screens@^2.3.0: react-native-screens@^2.3.0:
version "2.3.0" version "2.3.0"
resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-2.3.0.tgz#fd2b0c841f4fdebb2937c0e84acccc62bf9ebb22" resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-2.3.0.tgz#fd2b0c841f4fdebb2937c0e84acccc62bf9ebb22"
@ -6784,7 +6778,7 @@ react-native-switch-selector@^1.1.14:
resolved "https://registry.yarnpkg.com/react-native-switch-selector/-/react-native-switch-selector-1.1.14.tgz#953fc2fb1f1feb97e9a3a1fc7f87718a7b4c2a5b" resolved "https://registry.yarnpkg.com/react-native-switch-selector/-/react-native-switch-selector-1.1.14.tgz#953fc2fb1f1feb97e9a3a1fc7f87718a7b4c2a5b"
integrity sha512-VhmasNtYuJpG5B0954vyMSvOcT1qM6WQeZ1hrx6OxgcH6kdfZynC77MKlj8w022wI1AccyPCQrttgne+WSe5Wg== integrity sha512-VhmasNtYuJpG5B0954vyMSvOcT1qM6WQeZ1hrx6OxgcH6kdfZynC77MKlj8w022wI1AccyPCQrttgne+WSe5Wg==
react-native-tab-view@^1.2.0, react-native-tab-view@^1.3.4, react-native-tab-view@^1.4.1: react-native-tab-view@^1.2.0, react-native-tab-view@^1.4.1:
version "1.4.1" version "1.4.1"
resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-1.4.1.tgz#f113cd87485808f0c991abec937f70fa380478b9" resolved "https://registry.yarnpkg.com/react-native-tab-view/-/react-native-tab-view-1.4.1.tgz#f113cd87485808f0c991abec937f70fa380478b9"
integrity sha512-Bke8KkDcDhvB/z0AS7MnQKMD2p6Kwfc1rSKlMOvg9CC5CnClQ2QEnhPSbwegKDYhUkBI92iH/BYy7hNSm5kbUQ== integrity sha512-Bke8KkDcDhvB/z0AS7MnQKMD2p6Kwfc1rSKlMOvg9CC5CnClQ2QEnhPSbwegKDYhUkBI92iH/BYy7hNSm5kbUQ==
@ -6859,10 +6853,10 @@ react-native@0.61.5:
stacktrace-parser "^0.1.3" stacktrace-parser "^0.1.3"
whatwg-fetch "^3.0.0" whatwg-fetch "^3.0.0"
react-navigation-drawer@1.2.1: react-navigation-drawer@^1.4.0:
version "1.2.1" version "1.4.0"
resolved "https://registry.yarnpkg.com/react-navigation-drawer/-/react-navigation-drawer-1.2.1.tgz#7bd5efeee7d2f611d3ebb0933e0c8e8eb7cafe52" resolved "https://registry.yarnpkg.com/react-navigation-drawer/-/react-navigation-drawer-1.4.0.tgz#70f3dd83e3da9cd4ea6e2739526502c823d466b9"
integrity sha512-T2kaBjY2c4/3I6noWFnaf/c18ntNH5DsST38i+pdc2NPxn5Yi5lkK+ZZTeKuHSFD4a7G0jWY9OGf1iRkHWLMAQ== integrity sha512-ZyWBozcjB2aZ7vwCALv90cYA2NpDjM+WALaiYRshvPvue8l7cqynePbHK8GhlMGyJDwZqp4MxQmu8u1XAKp3Bw==
dependencies: dependencies:
react-native-tab-view "^1.2.0" react-native-tab-view "^1.2.0"
@ -6875,22 +6869,14 @@ react-navigation-material-bottom-tabs@^1.0.0:
prop-types "^15.6.0" prop-types "^15.6.0"
react-navigation-tabs "~1.2.0" react-navigation-tabs "~1.2.0"
react-navigation-stack@1.3.0: react-navigation-stack@^1.7.3:
version "1.3.0" version "1.10.3"
resolved "https://registry.yarnpkg.com/react-navigation-stack/-/react-navigation-stack-1.3.0.tgz#34bbddb068c094c9ab843e36059b9fd92b728250" resolved "https://registry.yarnpkg.com/react-navigation-stack/-/react-navigation-stack-1.10.3.tgz#e714e442b20427f0d2d3c18fce1f9e8cfe69be0b"
integrity sha512-ouyD1GkRksJSGuvAuqrJnlJnZ5g2g/+/WB/MTa8BzjSBvyOgruD5TrmEkpViCOMr1R17C8D4Htln90H4D+NV3Q== integrity sha512-1gksFi/g/Lg9sBhgLlD0OiEB5xnatHb4C0eNMA5tli9cTVlhq375XNPIqOiTyftibBmjdApAsZFj5srUCoOu/w==
react-navigation-tabs@1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/react-navigation-tabs/-/react-navigation-tabs-1.1.2.tgz#10b7501522d99960340a0d23a471d571b70aeb82"
integrity sha512-D4fecSwZfvNh5WHTURmUVrNSgy3tiNfID0n5eKTOhCz4Sls4EM2l27UTX833ngxXhQ1FqRtBxzQZ+Dp1FWJ1pw==
dependencies: dependencies:
hoist-non-react-statics "^2.5.0" prop-types "^15.7.2"
prop-types "^15.6.1"
react-lifecycles-compat "^3.0.4"
react-native-tab-view "^1.3.4"
react-navigation-tabs@~1.2.0: react-navigation-tabs@^1.2.0, react-navigation-tabs@~1.2.0:
version "1.2.0" version "1.2.0"
resolved "https://registry.yarnpkg.com/react-navigation-tabs/-/react-navigation-tabs-1.2.0.tgz#602c147029bb4f1c569b26479ddba534fe3ebb19" resolved "https://registry.yarnpkg.com/react-navigation-tabs/-/react-navigation-tabs-1.2.0.tgz#602c147029bb4f1c569b26479ddba534fe3ebb19"
integrity sha512-I6vq3XX4ub9KhWQzcrggznls+2Z2C6w2ro46vokDGGvJ02CBpQRar7J0ETV29Ot5AJY67HucNUmZdH3yDFckmQ== integrity sha512-I6vq3XX4ub9KhWQzcrggznls+2Z2C6w2ro46vokDGGvJ02CBpQRar7J0ETV29Ot5AJY67HucNUmZdH3yDFckmQ==
@ -6899,16 +6885,18 @@ react-navigation-tabs@~1.2.0:
prop-types "^15.6.1" prop-types "^15.6.1"
react-native-tab-view "^1.4.1" react-native-tab-view "^1.4.1"
react-navigation@3.9.1: react-navigation-transitions@^1.0.12:
version "3.9.1" version "1.0.12"
resolved "https://registry.yarnpkg.com/react-navigation/-/react-navigation-3.9.1.tgz#2b2545f5c11905b534d96996c658d0691bc5f11f" resolved "https://registry.yarnpkg.com/react-navigation-transitions/-/react-navigation-transitions-1.0.12.tgz#7307668bc7d5fdbdc1954224e7891f7fe6cb5f74"
integrity sha512-4rUQXGT0yvLb9yX9NDuKdrXb/NcAPGUHDTlto8Fg4Tm23uuyBBSrDVStqC59rUM4JcoQnRqhenN2wXGvWE+WYA== integrity sha512-Hp0wX9KoXwsFch6Fgiz9HpGjQZDhnyucLbCai0LcaOC3VpmgYmvkbeAg/mQ5Z5exuY6PPrh/+FXU00yMPDHkcw==
react-navigation@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/react-navigation/-/react-navigation-4.4.0.tgz#c5523669df642aab23ff9e2ceb2109d3492a9374"
integrity sha512-BtxqNNlEGm/ve1mGHxCvrtvDzZ+2OF/V9OJaDPz/Cdx2VvYiFGaq6mtlFQm5/2bLxiEVXhNFcYSTCP26YGiENA==
dependencies: dependencies:
"@react-navigation/core" "~3.4.1" "@react-navigation/core" "^3.7.6"
"@react-navigation/native" "~3.4.0" "@react-navigation/native" "^3.8.0"
react-navigation-drawer "1.2.1"
react-navigation-stack "1.3.0"
react-navigation-tabs "1.1.2"
react-proxy@^1.1.7: react-proxy@^1.1.7:
version "1.1.8" version "1.1.8"