souscrire a une assure pending
This commit is contained in:
parent
c41bb77124
commit
a52ff41487
|
@ -60,6 +60,7 @@
|
||||||
"react-native-modal-datetime-picker": "^10.2.0",
|
"react-native-modal-datetime-picker": "^10.2.0",
|
||||||
"react-native-onesignal": "^3.9.0",
|
"react-native-onesignal": "^3.9.0",
|
||||||
"react-native-paper": "^2.16.0",
|
"react-native-paper": "^2.16.0",
|
||||||
|
"react-native-permissions": "^3.0.5",
|
||||||
"react-native-phone-call": "^1.0.9",
|
"react-native-phone-call": "^1.0.9",
|
||||||
"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",
|
||||||
|
@ -11118,6 +11119,21 @@
|
||||||
"react-native-vector-icons": "*"
|
"react-native-vector-icons": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-native-permissions": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-Y/kAU8cUTNhX5CLxfAG96ItEjjmwvyqnVBie38Gj8HoomXQcKM+ToFmq/rPt+DOziCq7YFKinn9AIlnLBiV3AQ==",
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=16.13.1",
|
||||||
|
"react-native": ">=0.63.3",
|
||||||
|
"react-native-windows": ">=0.62.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"react-native-windows": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/react-native-phone-call": {
|
"node_modules/react-native-phone-call": {
|
||||||
"version": "1.0.9",
|
"version": "1.0.9",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-phone-call/-/react-native-phone-call-1.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-phone-call/-/react-native-phone-call-1.0.9.tgz",
|
||||||
|
@ -23373,6 +23389,12 @@
|
||||||
"react-native-safe-area-view": "^0.12.0"
|
"react-native-safe-area-view": "^0.12.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"react-native-permissions": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-Y/kAU8cUTNhX5CLxfAG96ItEjjmwvyqnVBie38Gj8HoomXQcKM+ToFmq/rPt+DOziCq7YFKinn9AIlnLBiV3AQ==",
|
||||||
|
"requires": {}
|
||||||
|
},
|
||||||
"react-native-phone-call": {
|
"react-native-phone-call": {
|
||||||
"version": "1.0.9",
|
"version": "1.0.9",
|
||||||
"resolved": "https://registry.npmjs.org/react-native-phone-call/-/react-native-phone-call-1.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/react-native-phone-call/-/react-native-phone-call-1.0.9.tgz",
|
||||||
|
|
|
@ -66,6 +66,7 @@
|
||||||
"react-native-modal-datetime-picker": "^10.2.0",
|
"react-native-modal-datetime-picker": "^10.2.0",
|
||||||
"react-native-onesignal": "^3.9.0",
|
"react-native-onesignal": "^3.9.0",
|
||||||
"react-native-paper": "^2.16.0",
|
"react-native-paper": "^2.16.0",
|
||||||
|
"react-native-permissions": "^3.0.5",
|
||||||
"react-native-phone-call": "^1.0.9",
|
"react-native-phone-call": "^1.0.9",
|
||||||
"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",
|
||||||
|
|
|
@ -9,6 +9,8 @@ import InsuranceActions from './insurance.type';
|
||||||
import {
|
import {
|
||||||
getInsuranceListUrl,
|
getInsuranceListUrl,
|
||||||
getInsurancePrimeAmountUrl,
|
getInsurancePrimeAmountUrl,
|
||||||
|
getUserByIdQRCodeUrl,
|
||||||
|
getUserByNameOrNumberUrl,
|
||||||
subscribeInsuranceUrl,
|
subscribeInsuranceUrl,
|
||||||
uploadInsuranceImagetUrl
|
uploadInsuranceImagetUrl
|
||||||
} from "../../webservice/IlinkConstants";
|
} from "../../webservice/IlinkConstants";
|
||||||
|
@ -221,3 +223,61 @@ export const fetchAddBeneficiaryToSubscription = (id, data) => {
|
||||||
onError: fetchAddBeneficiaryToSubscriptionError,
|
onError: fetchAddBeneficiaryToSubscriptionError,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/************************************************************/
|
||||||
|
export const fetchGetUserByIdQRCodePending = () => ({
|
||||||
|
type: InsuranceActions.GET_USER_BY_ID_QR_CODE_PENDING,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const fetchGetUserByIdQRCodeReset = () => ({
|
||||||
|
type: InsuranceActions.GET_USER_BY_ID_QR_CODE_RESET,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const fetchGetUserByIdQRCodeSuccess = (authkey: any) => ({
|
||||||
|
type: InsuranceActions.GET_USER_BY_ID_QR_CODE_SUCCESS,
|
||||||
|
payload: authkey,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const fetchGetUserByIdQRCodeError = (error: any) => ({
|
||||||
|
type: InsuranceActions.GET_USER_BY_ID_QR_CODE_ERROR,
|
||||||
|
payload: error,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const fetchGetUserByIdQRCode = (network_id, id) => {
|
||||||
|
return ApiAction({
|
||||||
|
url: `${getUserByIdQRCodeUrl}?network_id=${network_id}&${id}`,
|
||||||
|
method: 'GET',
|
||||||
|
onLoading: fetchGetUserByIdQRCodePending,
|
||||||
|
onSuccess: fetchGetUserByIdQRCodeSuccess,
|
||||||
|
onError: fetchGetUserByIdQRCodeError,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/************************************************************/
|
||||||
|
export const fetchGetUserByNameOrNumberPending = () => ({
|
||||||
|
type: InsuranceActions.GET_USER_BY_NAME_OR_NUMBER_PENDING,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const fetchGetUserByNameOrNumberReset = () => ({
|
||||||
|
type: InsuranceActions.GET_USER_BY_NAME_OR_NUMBER_RESET,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const fetchGetUserByNameOrNumberSuccess = (authkey: any) => ({
|
||||||
|
type: InsuranceActions.GET_USER_BY_NAME_OR_NUMBER_SUCCESS,
|
||||||
|
payload: authkey,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const fetchGetUserByNameOrNumberError = (error: any) => ({
|
||||||
|
type: InsuranceActions.GET_USER_BY_NAME_OR_NUMBER_ERROR,
|
||||||
|
payload: error,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const fetchGetUserByNameOrNumber = (network_id, id) => {
|
||||||
|
return ApiAction({
|
||||||
|
url: `${getUserByNameOrNumberUrl}?network_id=${network_id}&${id}`,
|
||||||
|
method: 'GET',
|
||||||
|
onLoading: fetchGetUserByNameOrNumberPending,
|
||||||
|
onSuccess: fetchGetUserByNameOrNumberSuccess,
|
||||||
|
onError: fetchGetUserByNameOrNumberError,
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
|
@ -227,3 +227,63 @@ export const addBeneficiaryToSubscriptionReducer = (state = INITIAL_STATE, actio
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getUserByIdQRCodeReducer = (state = INITIAL_STATE, action: InsuranceActions) => {
|
||||||
|
switch (action.type) {
|
||||||
|
case InsuranceActions.GET_USER_BY_ID_QR_CODE_PENDING:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
loading: true
|
||||||
|
}
|
||||||
|
case InsuranceActions.GET_USER_BY_ID_QR_CODE_SUCCESS:
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
result: action.payload,
|
||||||
|
error: null
|
||||||
|
}
|
||||||
|
case InsuranceActions.GET_USER_BY_ID_QR_CODE_ERROR:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
loading: false,
|
||||||
|
result: null,
|
||||||
|
error: action.payload
|
||||||
|
}
|
||||||
|
|
||||||
|
case InsuranceActions.GET_USER_BY_ID_QR_CODE_RESET:
|
||||||
|
return INITIAL_STATE;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return state
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getUserByNameOrNumberReducer = (state = INITIAL_STATE, action: InsuranceActions) => {
|
||||||
|
switch (action.type) {
|
||||||
|
case InsuranceActions.GET_USER_BY_NAME_OR_NUMBER_PENDING:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
loading: true
|
||||||
|
}
|
||||||
|
case InsuranceActions.GET_USER_BY_NAME_OR_NUMBER_SUCCESS:
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
result: action.payload,
|
||||||
|
error: null
|
||||||
|
}
|
||||||
|
case InsuranceActions.GET_USER_BY_NAME_OR_NUMBER_ERROR:
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
loading: false,
|
||||||
|
result: null,
|
||||||
|
error: action.payload
|
||||||
|
}
|
||||||
|
|
||||||
|
case InsuranceActions.GET_USER_BY_NAME_OR_NUMBER_RESET:
|
||||||
|
return INITIAL_STATE;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return state
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
|
@ -14,6 +14,8 @@ const selectUploadInsuranceImagesReducerReducer = (state) => state.uploadInsuran
|
||||||
const selectGetSubscriptionListReducerReducer = (state) => state.subscriptionList;
|
const selectGetSubscriptionListReducerReducer = (state) => state.subscriptionList;
|
||||||
const selectActivatePaySubscriptionReducer = (state) => state.activatePaySubscription;
|
const selectActivatePaySubscriptionReducer = (state) => state.activatePaySubscription;
|
||||||
const selectAddBeneficiaryToSubscriptionReducer = (state) => state.addBeneficiaryToSubscription;
|
const selectAddBeneficiaryToSubscriptionReducer = (state) => state.addBeneficiaryToSubscription;
|
||||||
|
const selectGetUserByIdQRCodeReducer = (state) => state.getUserByIdQRCodeReducer;
|
||||||
|
const selectGetUserByNameOrNumberReducer = (state) => state.getUserByNameOrNumberReducer;
|
||||||
|
|
||||||
export const selectInsuranceList = createSelector(
|
export const selectInsuranceList = createSelector(
|
||||||
[selectInsuranceListReducer],
|
[selectInsuranceListReducer],
|
||||||
|
@ -49,3 +51,12 @@ export const selectActivatePaySubscription = createSelector(
|
||||||
[selectActivatePaySubscriptionReducer],
|
[selectActivatePaySubscriptionReducer],
|
||||||
(activatePaySubscription) => activatePaySubscription
|
(activatePaySubscription) => activatePaySubscription
|
||||||
);
|
);
|
||||||
|
|
||||||
|
export const selectGetUserByIdQRCode = createSelector(
|
||||||
|
[selectGetUserByIdQRCodeReducer],
|
||||||
|
(getUserByIdQRCode) => getUserByIdQRCode
|
||||||
|
);
|
||||||
|
export const selectGetUserByNameOrNumber = createSelector(
|
||||||
|
[selectGetUserByNameOrNumberReducer],
|
||||||
|
(getUserByNameOrNumber) => getUserByNameOrNumber
|
||||||
|
);
|
||||||
|
|
|
@ -41,6 +41,16 @@ const InsuranceActions = {
|
||||||
ADD_BENEFICIARY_TO_SUBSCRIPTION_ERROR: 'ADD_BENEFICIARY_TO_SUBSCRIPTION_ERROR',
|
ADD_BENEFICIARY_TO_SUBSCRIPTION_ERROR: 'ADD_BENEFICIARY_TO_SUBSCRIPTION_ERROR',
|
||||||
ADD_BENEFICIARY_TO_SUBSCRIPTION_RESET: 'ADD_BENEFICIARY_TO_SUBSCRIPTION_RESET',
|
ADD_BENEFICIARY_TO_SUBSCRIPTION_RESET: 'ADD_BENEFICIARY_TO_SUBSCRIPTION_RESET',
|
||||||
|
|
||||||
|
GET_USER_BY_ID_QR_CODE_PENDING: 'GET_USER_BY_ID_QR_CODE_PENDING',
|
||||||
|
GET_USER_BY_ID_QR_CODE_SUCCESS: 'GET_USER_BY_ID_QR_CODE_SUCCESS',
|
||||||
|
GET_USER_BY_ID_QR_CODE_ERROR: 'GET_USER_BY_ID_QR_CODE_ERROR',
|
||||||
|
GET_USER_BY_ID_QR_CODE_RESET: 'GET_USER_BY_ID_QR_CODE_RESET',
|
||||||
|
|
||||||
|
GET_USER_BY_NAME_OR_NUMBER_PENDING: 'GET_USER_BY_NAME_OR_NUMBER_PENDING',
|
||||||
|
GET_USER_BY_NAME_OR_NUMBER_SUCCESS: 'GET_USER_BY_NAME_OR_NUMBER_SUCCESS',
|
||||||
|
GET_USER_BY_NAME_OR_NUMBER_ERROR: 'GET_USER_BY_NAME_OR_NUMBER_ERROR',
|
||||||
|
GET_USER_BY_NAME_OR_NUMBER_RESET: 'GET_USER_BY_NAME_OR_NUMBER_RESET',
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
export default InsuranceActions;
|
export default InsuranceActions;
|
||||||
|
|
|
@ -55,6 +55,8 @@ import {
|
||||||
addBeneficiaryToSubscriptionReducer,
|
addBeneficiaryToSubscriptionReducer,
|
||||||
getInsurancePrimeAmountReducer,
|
getInsurancePrimeAmountReducer,
|
||||||
getSubscriptionListReducer,
|
getSubscriptionListReducer,
|
||||||
|
getUserByIdQRCodeReducer,
|
||||||
|
getUserByNameOrNumberReducer,
|
||||||
insuranceListReducer,
|
insuranceListReducer,
|
||||||
subscribeInsuranceReducer,
|
subscribeInsuranceReducer,
|
||||||
uploadInsuranceImagesReducer
|
uploadInsuranceImagesReducer
|
||||||
|
@ -151,7 +153,9 @@ const rootReducer = persistCombineReducers(persistConfig, {
|
||||||
uploadInsuranceImagesReducer: uploadInsuranceImagesReducer,
|
uploadInsuranceImagesReducer: uploadInsuranceImagesReducer,
|
||||||
subscriptionList: getSubscriptionListReducer,
|
subscriptionList: getSubscriptionListReducer,
|
||||||
activatePaySubscription: activatePaySubscriptionReducer,
|
activatePaySubscription: activatePaySubscriptionReducer,
|
||||||
addBeneficiaryToSubscription: addBeneficiaryToSubscriptionReducer
|
addBeneficiaryToSubscription: addBeneficiaryToSubscriptionReducer,
|
||||||
|
getUserByIdQRCodeReducer: getUserByIdQRCodeReducer,
|
||||||
|
getUserByNameOrNumberReducer: getUserByNameOrNumberReducer,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default rootReducer;
|
export default rootReducer;
|
||||||
|
|
|
@ -1336,7 +1336,44 @@ class WalletDetail extends Component {
|
||||||
{I18n.t('TRANSACTIONS')}
|
{I18n.t('TRANSACTIONS')}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
|
{(wallet.type === "ilink_sante") &&
|
||||||
|
<View style={styles.transactionContainer}>
|
||||||
|
|
||||||
|
<View style={[styles.containerTouch]}>
|
||||||
|
<TouchableOpacity style={styles.contain}
|
||||||
|
onPress={() => {
|
||||||
|
this.props.navigation.push(route.walletOptionSelect, {
|
||||||
|
optionSelect: optionNanoSanteAgentScreen,
|
||||||
|
wallet,
|
||||||
|
lottie: {
|
||||||
|
source: require("./../../datas/json/cedit-cards.json"),
|
||||||
|
loop: true
|
||||||
|
},
|
||||||
|
isNanoSanteAgent: true
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
activeOpacity={0.9}>
|
||||||
|
<Icon name='heart-multiple'
|
||||||
|
color={Color.primaryColor}
|
||||||
|
size={30}
|
||||||
|
style={styles.imageBanner}/>
|
||||||
|
|
||||||
|
<View style={[styles.content]}>
|
||||||
|
|
||||||
|
<View style={{paddingTop: 20,}}>
|
||||||
|
<Text
|
||||||
|
style={[Typography.headline, Typography.semibold]}>
|
||||||
|
{I18n.t('NANO_SANTE')}
|
||||||
|
</Text>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
</View>
|
||||||
|
</TouchableOpacity>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
</View>}
|
||||||
|
|
||||||
|
{(wallet.type === "ilink-world" || wallet.type === "ilink") &&
|
||||||
<View style={styles.transactionContainer}>
|
<View style={styles.transactionContainer}>
|
||||||
|
|
||||||
<View style={[styles.containerTouch]}>
|
<View style={[styles.containerTouch]}>
|
||||||
|
@ -1436,7 +1473,7 @@ class WalletDetail extends Component {
|
||||||
</View>
|
</View>
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>}
|
||||||
|
|
||||||
{isIlinkWorldWallet(wallet.type) &&
|
{isIlinkWorldWallet(wallet.type) &&
|
||||||
<>
|
<>
|
||||||
|
@ -1481,37 +1518,6 @@ class WalletDetail extends Component {
|
||||||
</TouchableOpacity>
|
</TouchableOpacity>
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
<View style={[styles.containerTouch]}>
|
|
||||||
<TouchableOpacity style={styles.contain}
|
|
||||||
onPress={() => {
|
|
||||||
this.props.navigation.push(route.walletOptionSelect, {
|
|
||||||
optionSelect: optionNanoSanteAgentScreen,
|
|
||||||
wallet,
|
|
||||||
lottie: {
|
|
||||||
source: require("./../../datas/json/cedit-cards.json"),
|
|
||||||
loop: true
|
|
||||||
},
|
|
||||||
isNanoSanteAgent: true
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
activeOpacity={0.9}>
|
|
||||||
<Icon name='heart-multiple'
|
|
||||||
color={Color.primaryColor}
|
|
||||||
size={30}
|
|
||||||
style={styles.imageBanner}/>
|
|
||||||
|
|
||||||
<View style={[styles.content]}>
|
|
||||||
|
|
||||||
<View style={{paddingTop: 20,}}>
|
|
||||||
<Text
|
|
||||||
style={[Typography.headline, Typography.semibold]}>
|
|
||||||
{I18n.t('NANO_SANTE')}
|
|
||||||
</Text>
|
|
||||||
</View>
|
|
||||||
|
|
||||||
</View>
|
|
||||||
</TouchableOpacity>
|
|
||||||
</View>
|
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
<View style={styles.transactionContainer}>
|
<View style={styles.transactionContainer}>
|
||||||
|
|
|
@ -8,7 +8,9 @@
|
||||||
import React, {useEffect, useRef, useState} from 'react';
|
import React, {useEffect, useRef, useState} from 'react';
|
||||||
import {
|
import {
|
||||||
ActivityIndicator,
|
ActivityIndicator,
|
||||||
|
Alert,
|
||||||
Dimensions,
|
Dimensions,
|
||||||
|
FlatList,
|
||||||
Keyboard,
|
Keyboard,
|
||||||
KeyboardAvoidingView,
|
KeyboardAvoidingView,
|
||||||
Platform,
|
Platform,
|
||||||
|
@ -30,13 +32,24 @@ import {
|
||||||
fetchActivePaySubscription,
|
fetchActivePaySubscription,
|
||||||
fetchActivePaySubscriptionReset,
|
fetchActivePaySubscriptionReset,
|
||||||
fetchGetSubscriptionList,
|
fetchGetSubscriptionList,
|
||||||
fetchGetSubscriptionListReset
|
fetchGetSubscriptionListReset,
|
||||||
|
fetchGetUserByIdQRCode,
|
||||||
|
fetchGetUserByIdQRCodeReset,
|
||||||
|
fetchGetUserByNameOrNumber,
|
||||||
|
fetchGetUserByNameOrNumberReset
|
||||||
} from "../../../redux/insurance/insurance.actions";
|
} from "../../../redux/insurance/insurance.actions";
|
||||||
import DropdownAlert from "react-native-dropdownalert";
|
import DropdownAlert from "react-native-dropdownalert";
|
||||||
import {readUser} from "../../../webservice/AuthApi";
|
import {readUser} from "../../../webservice/AuthApi";
|
||||||
import TextInput from "../../../components/TextInput";
|
import TextInput from "../../../components/TextInput";
|
||||||
import {createStructuredSelector} from "reselect";
|
import {createStructuredSelector} from "reselect";
|
||||||
import {selectActivatePaySubscription, selectSubscriptionList} from "../../../redux/insurance/insurance.selector";
|
import {
|
||||||
|
selectActivatePaySubscription,
|
||||||
|
selectGetUserByIdQRCode,
|
||||||
|
selectGetUserByIdQRCodeReducer,
|
||||||
|
selectGetUserByNameOrNumber,
|
||||||
|
selectGetUserByNameOrNumberReducer,
|
||||||
|
selectSubscriptionList
|
||||||
|
} from "../../../redux/insurance/insurance.selector";
|
||||||
import StepHeader from "../../../components/StepHeaderComponent";
|
import StepHeader from "../../../components/StepHeaderComponent";
|
||||||
import Wizard from "react-native-wizard";
|
import Wizard from "react-native-wizard";
|
||||||
import Icon from "react-native-vector-icons/FontAwesome5";
|
import Icon from "react-native-vector-icons/FontAwesome5";
|
||||||
|
@ -49,6 +62,8 @@ import Modal from "react-native-modal";
|
||||||
import DateTimePicker from "@react-native-community/datetimepicker";
|
import DateTimePicker from "@react-native-community/datetimepicker";
|
||||||
import QRCodeScanner from "react-native-qrcode-scanner";
|
import QRCodeScanner from "react-native-qrcode-scanner";
|
||||||
import {RNCamera} from "react-native-camera";
|
import {RNCamera} from "react-native-camera";
|
||||||
|
import * as Utils from "../../../utils/UtilsFunction";
|
||||||
|
import {store} from "../../../redux/store";
|
||||||
|
|
||||||
let moment = require('moment-timezone');
|
let moment = require('moment-timezone');
|
||||||
|
|
||||||
|
@ -211,6 +226,10 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
fetchGetSubscriptionList,
|
fetchGetSubscriptionList,
|
||||||
subscriptionList,
|
subscriptionList,
|
||||||
fetchActivePaySubscription,
|
fetchActivePaySubscription,
|
||||||
|
fetchGetUserByIdQRCode,
|
||||||
|
fetchGetUserByNameOrNumber,
|
||||||
|
getUserByNameOrNumber,
|
||||||
|
getUserByIdQRCode,
|
||||||
navigation
|
navigation
|
||||||
}) => {
|
}) => {
|
||||||
|
|
||||||
|
@ -222,6 +241,11 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
const [showQRCodeScanner, setShowQRCodeScanner] = useState(false);
|
const [showQRCodeScanner, setShowQRCodeScanner] = useState(false);
|
||||||
const [showDateAccidentPicker, setShowDateAccidentPicker] = useState(false);
|
const [showDateAccidentPicker, setShowDateAccidentPicker] = useState(false);
|
||||||
|
|
||||||
|
const [wallet] = useState(store.getState().walletDetailReducer.result.response);
|
||||||
|
|
||||||
|
const [isNumeroAssureSearch, setIsNumeroAssureSearch] = useState(true);
|
||||||
|
const [isNomAssureSearch, setIsNomAssureSearch] = useState(false);
|
||||||
|
|
||||||
const [dateDebutGrossesse, setDateDebutGrossesse] = useState(null);
|
const [dateDebutGrossesse, setDateDebutGrossesse] = useState(null);
|
||||||
const [dateFinGrossesse, setDateFinGrossesse] = useState(null);
|
const [dateFinGrossesse, setDateFinGrossesse] = useState(null);
|
||||||
const [isGrossesse, setIsGrossesse] = useState(false);
|
const [isGrossesse, setIsGrossesse] = useState(false);
|
||||||
|
@ -229,12 +253,14 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
const [showDateFinGrossessePicker, setShowDateFinGrossessePicker] = useState(false);
|
const [showDateFinGrossessePicker, setShowDateFinGrossessePicker] = useState(false);
|
||||||
|
|
||||||
const [user, setUser] = useState(null);
|
const [user, setUser] = useState(null);
|
||||||
|
const [assure, setAssure] = useState(null);
|
||||||
const wizard = useRef();
|
const wizard = useRef();
|
||||||
const [isFirstStep, setIsFirstStep] = useState(true);
|
const [isFirstStep, setIsFirstStep] = useState(true);
|
||||||
const [isLastStep, setIsLastStep] = useState(false);
|
const [isLastStep, setIsLastStep] = useState(false);
|
||||||
const [currentStep, setCurrentStep] = useState(1);
|
const [currentStep, setCurrentStep] = useState(1);
|
||||||
const [modalPrestation, setModalPrestation] = useState(false);
|
const [modalPrestation, setModalPrestation] = useState(false);
|
||||||
const [modalPrescription, setModalPrescription] = useState(false);
|
const [modalPrescription, setModalPrescription] = useState(false);
|
||||||
|
const [modalListAssure, setModalListAssure] = useState(false);
|
||||||
|
|
||||||
const [statutPatientOption] = useState([
|
const [statutPatientOption] = useState([
|
||||||
{label: I18n.t('AYANT_DROITS'), value: "M"},
|
{label: I18n.t('AYANT_DROITS'), value: "M"},
|
||||||
|
@ -270,14 +296,43 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
});
|
});
|
||||||
dispatch(fetchGetSubscriptionListReset());
|
dispatch(fetchGetSubscriptionListReset());
|
||||||
dispatch(fetchActivePaySubscriptionReset());
|
dispatch(fetchActivePaySubscriptionReset());
|
||||||
|
dispatch(fetchGetUserByNameOrNumberReset());
|
||||||
|
dispatch(fetchGetUserByIdQRCodeReset());
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (user !== null) {
|
if (user !== null) {
|
||||||
console.log("user", user.id);
|
console.log("user", user);
|
||||||
}
|
}
|
||||||
}, [user]);
|
}, [user]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
console.log("getUserByNameOrNumber.result", getUserByNameOrNumber);
|
||||||
|
if (getUserByNameOrNumber.result !== null) {
|
||||||
|
if (getUserByNameOrNumber.result.response.length > 0) {
|
||||||
|
setModalListAssure(true);
|
||||||
|
//wizard.current.next();
|
||||||
|
} else {
|
||||||
|
dropDownAlertRef.alertWithType(
|
||||||
|
'warn',
|
||||||
|
I18n.t('EMPTY_LIST'),
|
||||||
|
I18n.t('NO_ASSURE_MATCH_SEARCH'),
|
||||||
|
);
|
||||||
|
//dispatch(fetchGetUserByNameOrNumberReset());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (getUserByNameOrNumber.error) {
|
||||||
|
dropDownAlertRef.alertWithType(
|
||||||
|
'error',
|
||||||
|
I18n.t('ERROR_LABEL'),
|
||||||
|
Utils.getErrorMsg(getUserByNameOrNumber),
|
||||||
|
);
|
||||||
|
dispatch(fetchGetUserByNameOrNumberReset());
|
||||||
|
}
|
||||||
|
}, [getUserByNameOrNumber]);
|
||||||
|
|
||||||
|
|
||||||
console.log("Date accident", dateAccident);
|
console.log("Date accident", dateAccident);
|
||||||
const SaisirFeuilleSoinSchema = Yup.object().shape({
|
const SaisirFeuilleSoinSchema = Yup.object().shape({
|
||||||
|
@ -366,8 +421,6 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
|
|
||||||
const renderDialogQRCodeScanner = () => {
|
const renderDialogQRCodeScanner = () => {
|
||||||
|
|
||||||
const {resultSearchUserByName, errorGetAvisImposition} = this.props;
|
|
||||||
console.log("resultGetAvisImposition", resultSearchUserByName);
|
|
||||||
return (
|
return (
|
||||||
<Dialog.Container contentStyle={{width: responsiveWidth(80)}} useNativeDriver={true}
|
<Dialog.Container contentStyle={{width: responsiveWidth(80)}} useNativeDriver={true}
|
||||||
visible={showQRCodeScanner}>
|
visible={showQRCodeScanner}>
|
||||||
|
@ -699,6 +752,80 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
</Formik>
|
</Formik>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const renderListAssure = () => (
|
||||||
|
<ScrollView style={{flex: 1}}>
|
||||||
|
<View style={[styles.containModal, {backgroundColor: Color.containerBackgroundColor}]}>
|
||||||
|
<Modal
|
||||||
|
isVisible={modalListAssure}
|
||||||
|
onSwipeComplete={() => {
|
||||||
|
setModalListAssure(false);
|
||||||
|
}}
|
||||||
|
swipeDirection={['down']}
|
||||||
|
style={styles.bottomModal}>
|
||||||
|
<View
|
||||||
|
style={[
|
||||||
|
styles.contentFilterBottom,
|
||||||
|
{backgroundColor: Color.containerBackgroundColor},
|
||||||
|
]}>
|
||||||
|
<View style={styles.contentSwipeDown}>
|
||||||
|
<View style={styles.lineSwipeDown}/>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<Text body2 style={{marginTop: 10}}>{I18n.t('LIST_ASSURE')}</Text>
|
||||||
|
|
||||||
|
<FlatList data={getUserByNameOrNumber.result?.response}
|
||||||
|
extraData={getUserByNameOrNumber.result?.response}
|
||||||
|
keyExtractor={(item, index) => index}
|
||||||
|
renderItem={({item, index}) => {
|
||||||
|
return (
|
||||||
|
<TouchableOpacity
|
||||||
|
style={[
|
||||||
|
styles.contentActionModalBottom,
|
||||||
|
{borderBottomColor: Color.borderColor},
|
||||||
|
]}
|
||||||
|
key={item.id}
|
||||||
|
onPress={() => {
|
||||||
|
if (item.state !== 'PAID') {
|
||||||
|
Alert.alert(I18n.t('ERROR_LABEL'), I18n.t('ASSURE_NON_EN_REGLE'),
|
||||||
|
[{
|
||||||
|
text: I18n.t('OK'), onPress: () => {
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
} else {
|
||||||
|
setAssure(item);
|
||||||
|
setModalListAssure(false);
|
||||||
|
setFieldValue(
|
||||||
|
'lastname_patient',
|
||||||
|
item.user.lastname,
|
||||||
|
);
|
||||||
|
setFieldValue(
|
||||||
|
'firstname_patient',
|
||||||
|
item.user.firstname,
|
||||||
|
);
|
||||||
|
dispatch(fetchGetUserByNameOrNumberReset());
|
||||||
|
wizard.current.next();
|
||||||
|
}
|
||||||
|
}}>
|
||||||
|
<Text body2 semibold>
|
||||||
|
{`${item.user.firstname} ${item.user.lastname}`}
|
||||||
|
</Text>
|
||||||
|
</TouchableOpacity>
|
||||||
|
)
|
||||||
|
}}/>
|
||||||
|
|
||||||
|
<Button
|
||||||
|
full
|
||||||
|
style={{marginTop: 10, marginBottom: 20}}
|
||||||
|
onPress={() => setModalListAssure(false)}>
|
||||||
|
{I18n.t('OK')}
|
||||||
|
</Button>
|
||||||
|
|
||||||
|
</View>
|
||||||
|
</Modal>
|
||||||
|
</View>
|
||||||
|
</ScrollView>
|
||||||
|
)
|
||||||
|
|
||||||
const {
|
const {
|
||||||
handleChange,
|
handleChange,
|
||||||
handleSubmit,
|
handleSubmit,
|
||||||
|
@ -725,15 +852,24 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
});
|
});
|
||||||
|
|
||||||
const onNext = () => {
|
const onNext = () => {
|
||||||
|
console.log("currentStep", currentStep);
|
||||||
|
console.log("values", values);
|
||||||
switch (currentStep) {
|
switch (currentStep) {
|
||||||
case 1:
|
case 0:
|
||||||
return (
|
if (values.numero_assure !== '') {
|
||||||
errors.numero_assure
|
if (getUserByNameOrNumber.result === null) {
|
||||||
);
|
if (isNumeroAssureSearch)
|
||||||
|
fetchGetUserByNameOrNumber(wallet.id_network, `&phone=${values.numero_assure}`);
|
||||||
|
else
|
||||||
|
fetchGetUserByNameOrNumber(wallet.id_network, `&name=${values.numero_assure}`)
|
||||||
|
console.log("errors", errors);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -744,7 +880,7 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
<View>
|
<View>
|
||||||
<TextInput
|
<TextInput
|
||||||
style={{marginTop: 10}}
|
style={{marginTop: 10}}
|
||||||
placeholder={I18n.t('NUMERO_ASSURE')}
|
placeholder={isNumeroAssureSearch ? I18n.t('NUMERO_ASSURE') : I18n.t('NOM_ASSURE')}
|
||||||
value={values.numero_assure}
|
value={values.numero_assure}
|
||||||
onChangeText={handleChange('numero_assure')}
|
onChangeText={handleChange('numero_assure')}
|
||||||
onBlur={handleBlur('numero_assure')}
|
onBlur={handleBlur('numero_assure')}
|
||||||
|
@ -754,7 +890,7 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
icon={
|
icon={
|
||||||
<FontAwesome
|
<FontAwesome
|
||||||
style={{zIndex: 10}}
|
style={{zIndex: 10}}
|
||||||
name="lock"
|
name={isNumeroAssureSearch ? 'lock' : 'user'}
|
||||||
size={20}
|
size={20}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
|
@ -769,10 +905,11 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
}}>
|
}}>
|
||||||
<Icon
|
<Icon
|
||||||
style={{paddingRight: 5}}
|
style={{paddingRight: 5}}
|
||||||
name='user'
|
name={isNumeroAssureSearch ? 'user' : 'lock'}
|
||||||
size={20}
|
size={20}
|
||||||
color={Color.primaryColor}
|
color={Color.primaryColor}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
|
setIsNumeroAssureSearch(!isNumeroAssureSearch);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<Icon
|
<Icon
|
||||||
|
@ -1157,12 +1294,13 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
]}
|
]}
|
||||||
onPress={e => {
|
onPress={e => {
|
||||||
handleSubmit(e);
|
handleSubmit(e);
|
||||||
|
if (onNext())
|
||||||
wizard.current.next();
|
wizard.current.next();
|
||||||
}}>
|
}}>
|
||||||
{subscriptionList.loading ?
|
{(subscriptionList.loading || getUserByNameOrNumber.loading || getUserByIdQRCode.loading) ?
|
||||||
<ActivityIndicator
|
<ActivityIndicator
|
||||||
size="small"
|
size="small"
|
||||||
color={colors.primary}
|
color="#fff"
|
||||||
/>
|
/>
|
||||||
: <Icon
|
: <Icon
|
||||||
name="arrow-right"
|
name="arrow-right"
|
||||||
|
@ -1179,6 +1317,7 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
{showDateDebutGrossessePicker && renderDateDebutGrossessePicker()}
|
{showDateDebutGrossessePicker && renderDateDebutGrossessePicker()}
|
||||||
{showDateFinGrossessePicker && renderDateFinGrossessePicker()}
|
{showDateFinGrossessePicker && renderDateFinGrossessePicker()}
|
||||||
{showQRCodeScanner && renderDialogQRCodeScanner()}
|
{showQRCodeScanner && renderDialogQRCodeScanner()}
|
||||||
|
{modalListAssure && renderListAssure()}
|
||||||
</View>
|
</View>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</KeyboardAvoidingView>
|
</KeyboardAvoidingView>
|
||||||
|
@ -1188,12 +1327,16 @@ const SaisirFeuilleSoinScreen = ({
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
subscriptionList: selectSubscriptionList,
|
subscriptionList: selectSubscriptionList,
|
||||||
activatePaySubscription: selectActivatePaySubscription
|
activatePaySubscription: selectActivatePaySubscription,
|
||||||
|
getUserByNameOrNumber: selectGetUserByNameOrNumber,
|
||||||
|
getUserByIdQRCode: selectGetUserByIdQRCode,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default connect(mapStateToProps, {
|
export default connect(mapStateToProps, {
|
||||||
fetchActivePaySubscription,
|
fetchActivePaySubscription,
|
||||||
fetchGetSubscriptionList,
|
fetchGetSubscriptionList,
|
||||||
|
fetchGetUserByIdQRCode,
|
||||||
|
fetchGetUserByNameOrNumber
|
||||||
})(
|
})(
|
||||||
SaisirFeuilleSoinScreen,
|
SaisirFeuilleSoinScreen,
|
||||||
);
|
);
|
||||||
|
|
|
@ -640,5 +640,12 @@
|
||||||
"EXONERE": "Exonéré",
|
"EXONERE": "Exonéré",
|
||||||
"DATE_ACCIDENT": "Date accident",
|
"DATE_ACCIDENT": "Date accident",
|
||||||
"DATE_DEBUT_GROSSESSE": "Date début de grossesse",
|
"DATE_DEBUT_GROSSESSE": "Date début de grossesse",
|
||||||
"DATE_FIN_GROSSESSE": "Date fin de grossesse"
|
"DATE_FIN_GROSSESSE": "Date fin de grossesse",
|
||||||
|
"SCAN": "Scanner",
|
||||||
|
"BRING_YOUR_CAMERA_CLOSER_TO_SCAN_QR_CODE": "Approchez votre caméra du QR Code afin de le scanner",
|
||||||
|
"CLOSE": "Fermer",
|
||||||
|
"EMPTY_LIST": "Liste vide",
|
||||||
|
"NO_ASSURE_MATCH_SEARCH": "Aucun assuré ne correspond à la recherche",
|
||||||
|
"LIST_ASSURE": "Liste des assurés",
|
||||||
|
"ASSURE_NON_EN_REGLE": "Assuré non en règle"
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,6 +82,8 @@ export const linkBankAccountUrl = testBaseUrl + '/walletService/wallets/users/li
|
||||||
export const payBillUrl = testBaseUrl + '/walletService/transactions/ilink';
|
export const payBillUrl = testBaseUrl + '/walletService/transactions/ilink';
|
||||||
|
|
||||||
export const getInsuranceListUrl = testBaseUrl + '/nanoSanteService/insurances';
|
export const getInsuranceListUrl = testBaseUrl + '/nanoSanteService/insurances';
|
||||||
|
export const getUserByIdQRCodeUrl = testBaseUrl + '/nanoSanteService/qrcode/read';
|
||||||
|
export const getUserByNameOrNumberUrl = testBaseUrl + '/nanoSanteService/insured';
|
||||||
export const subscribeInsuranceUrl = testBaseUrl + '/nanoSanteService/insurances/subscriptions';
|
export const subscribeInsuranceUrl = testBaseUrl + '/nanoSanteService/insurances/subscriptions';
|
||||||
export const getInsurancePrimeAmountUrl = testBaseUrl + '/nanoSanteService/insurances/subscriptions/bonus-amount';
|
export const getInsurancePrimeAmountUrl = testBaseUrl + '/nanoSanteService/insurances/subscriptions/bonus-amount';
|
||||||
export const uploadInsuranceImagetUrl = 'https://test.ilink-app.com:8086/insurances/subscriptions/upload-images';
|
export const uploadInsuranceImagetUrl = 'https://test.ilink-app.com:8086/insurances/subscriptions/upload-images';
|
||||||
|
|
|
@ -7191,6 +7191,11 @@
|
||||||
"resolved" "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-2.2.2.tgz"
|
"resolved" "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-2.2.2.tgz"
|
||||||
"version" "2.2.2"
|
"version" "2.2.2"
|
||||||
|
|
||||||
|
"react-native-permissions@^3.0.5":
|
||||||
|
"integrity" "sha512-Y/kAU8cUTNhX5CLxfAG96ItEjjmwvyqnVBie38Gj8HoomXQcKM+ToFmq/rPt+DOziCq7YFKinn9AIlnLBiV3AQ=="
|
||||||
|
"resolved" "https://registry.npmjs.org/react-native-permissions/-/react-native-permissions-3.1.0.tgz"
|
||||||
|
"version" "3.1.0"
|
||||||
|
|
||||||
"react-native-phone-call@^1.0.9":
|
"react-native-phone-call@^1.0.9":
|
||||||
"integrity" "sha512-OPWYg8qeWNG/U4bWGMAKcQTH/ifqJnsvUPCH4lOkvWFHbQS3fbH5M8rFhXCzcfS0GVNzHhZX9ZByMM368TFAUQ=="
|
"integrity" "sha512-OPWYg8qeWNG/U4bWGMAKcQTH/ifqJnsvUPCH4lOkvWFHbQS3fbH5M8rFhXCzcfS0GVNzHhZX9ZByMM368TFAUQ=="
|
||||||
"resolved" "https://registry.npmjs.org/react-native-phone-call/-/react-native-phone-call-1.0.9.tgz"
|
"resolved" "https://registry.npmjs.org/react-native-phone-call/-/react-native-phone-call-1.0.9.tgz"
|
||||||
|
@ -7405,7 +7410,7 @@
|
||||||
"resolved" "https://registry.npmjs.org/react-native-wizard/-/react-native-wizard-2.1.0.tgz"
|
"resolved" "https://registry.npmjs.org/react-native-wizard/-/react-native-wizard-2.1.0.tgz"
|
||||||
"version" "2.1.0"
|
"version" "2.1.0"
|
||||||
|
|
||||||
"react-native@*", "react-native@^0.0.0-0 || ^0.60.6 || ^0.61.5 || ^0.62.2 || ^0.63.2 || ^0.64.0 || ^0.65.0 || ^0.66.0 || 1000.0.0", "react-native@^0.41.2", "react-native@^0.56.0", "react-native@^0.57.8", "react-native@^0.61.0", "react-native@>= 0.51", "react-native@>=0.11", "react-native@>=0.40.0", "react-native@>=0.44", "react-native@>=0.44.1", "react-native@>=0.45.0", "react-native@>=0.46", "react-native@>=0.47.0", "react-native@>=0.50.0", "react-native@>=0.57", "react-native@>=0.59", "react-native@>=0.60.0", "react-native@>=0.65.1", "react-native@0.61.5":
|
"react-native@*", "react-native@^0.0.0-0 || ^0.60.6 || ^0.61.5 || ^0.62.2 || ^0.63.2 || ^0.64.0 || ^0.65.0 || ^0.66.0 || 1000.0.0", "react-native@^0.41.2", "react-native@^0.56.0", "react-native@^0.57.8", "react-native@^0.61.0", "react-native@>= 0.51", "react-native@>=0.11", "react-native@>=0.40.0", "react-native@>=0.44", "react-native@>=0.44.1", "react-native@>=0.45.0", "react-native@>=0.46", "react-native@>=0.47.0", "react-native@>=0.50.0", "react-native@>=0.57", "react-native@>=0.59", "react-native@>=0.60.0", "react-native@>=0.63.3", "react-native@>=0.65.1", "react-native@0.61.5":
|
||||||
"integrity" "sha512-MXqE3NoGO0T3dUKIKkIppijBhRRMpfN6ANbhMXHDuyfA+fSilRWgCwYgR/YNCC7ntECoJYikKaNTUBB0DeQy6Q=="
|
"integrity" "sha512-MXqE3NoGO0T3dUKIKkIppijBhRRMpfN6ANbhMXHDuyfA+fSilRWgCwYgR/YNCC7ntECoJYikKaNTUBB0DeQy6Q=="
|
||||||
"resolved" "https://registry.npmjs.org/react-native/-/react-native-0.61.5.tgz"
|
"resolved" "https://registry.npmjs.org/react-native/-/react-native-0.61.5.tgz"
|
||||||
"version" "0.61.5"
|
"version" "0.61.5"
|
||||||
|
@ -7553,7 +7558,7 @@
|
||||||
"raf" "^3.1.0"
|
"raf" "^3.1.0"
|
||||||
"tween-functions" "^1.0.1"
|
"tween-functions" "^1.0.1"
|
||||||
|
|
||||||
"react@*", "react@^0.14.0 || ^15.0.0 || ^16.0.0", "react@^15.3.0 || ^16.0.0", "react@^16.0", "react@^16.0.0", "react@^16.8", "react@^16.8.3", "react@>= 16.0 || < 17.0", "react@>=15.3.1", "react@>=15.3.1 || >=16.0.0-beta.5", "react@>=16.3.0", "react@>=16.8.0", "react@>=16.8.6", "react@16.7.0", "react@16.9.0":
|
"react@*", "react@^0.14.0 || ^15.0.0 || ^16.0.0", "react@^15.3.0 || ^16.0.0", "react@^16.0", "react@^16.0.0", "react@^16.8", "react@^16.8.3", "react@>= 16.0 || < 17.0", "react@>=15.3.1", "react@>=15.3.1 || >=16.0.0-beta.5", "react@>=16.13.1", "react@>=16.3.0", "react@>=16.8.0", "react@>=16.8.6", "react@16.7.0", "react@16.9.0":
|
||||||
"integrity" "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w=="
|
"integrity" "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w=="
|
||||||
"resolved" "https://registry.npmjs.org/react/-/react-16.9.0.tgz"
|
"resolved" "https://registry.npmjs.org/react/-/react-16.9.0.tgz"
|
||||||
"version" "16.9.0"
|
"version" "16.9.0"
|
||||||
|
|
Loading…
Reference in New Issue