Intégration des moyens de paiement

This commit is contained in:
Brice Zele 2022-05-04 03:26:39 +01:00
parent 67cfe8fa3e
commit 5f6e41b3ae
11 changed files with 398 additions and 114 deletions

View File

@ -799,34 +799,3 @@ export const getExclusionReducer = (state = INITIAL_STATE, action: InsuranceActi
} }
}; };
export const getExclusionReducer = (state = INITIAL_STATE, action: InsuranceActions) => {
console.log("ACTION", action);
switch (action.type) {
case InsuranceActions.GET_EXCLUSION_PENDING:
return {
...state,
loading: true
}
case InsuranceActions.GET_EXCLUSION_SUCCESS:
return {
loading: false,
result: action.payload.response,
error: null
}
case InsuranceActions.GET_EXCLUSION_ERROR:
return {
...state,
loading: false,
result: null,
error: action.payload
}
case InsuranceActions.GET_EXCLUSION_RESET:
return INITIAL_STATE;
default:
return state
}
};

View File

@ -59,23 +59,6 @@ export const PAY_BILL_ERROR = 'PAY_BILL_ERROR';
export const PAY_BILL_RESET = 'PAY_BILL_RESET'; export const PAY_BILL_RESET = 'PAY_BILL_RESET';
export const SEARCH_USER_PENDING = 'SEARCH_USER_PENDING';
export const SEARCH_USER_SUCCESS = 'SEARCH_USER_SUCCESS';
export const SEARCH_USER_ERROR = 'SEARCH_USER_ERROR';
export const SEARCH_USER_RESET = 'SEARCH_USER_RESET';
export const GET_QR_CODE_DETAIL_PENDING = 'GET_QR_CODE_DETAIL_PENDING';
export const GET_QR_CODE_DETAIL_SUCCESS = 'GET_QR_CODE_DETAIL_SUCCESS';
export const GET_QR_CODE_DETAIL_ERROR = 'GET_QR_CODE_DETAIL_ERROR';
export const GET_QR_CODE_DETAIL_RESET = 'GET_QR_CODE_DETAIL_RESET';
export const PASSWORD_VALIDATION_PENDING = 'PASSWORD_VALIDATION_PENDING';
export const PASSWORD_VALIDATION_SUCCESS = 'PASSWORD_VALIDATION_SUCCESS';
export const PASSWORD_VALIDATION_ERROR = 'PASSWORD_VALIDATION_ERROR';
export const PASSWORD_VALIDATION_RESET = 'PASSWORD_VALIDATION_RESET';
export const SEARCH_USER_PENDING = 'SEARCH_USER_PENDING'; export const SEARCH_USER_PENDING = 'SEARCH_USER_PENDING';
export const SEARCH_USER_SUCCESS = 'SEARCH_USER_SUCCESS'; export const SEARCH_USER_SUCCESS = 'SEARCH_USER_SUCCESS';
export const SEARCH_USER_ERROR = 'SEARCH_USER_ERROR'; export const SEARCH_USER_ERROR = 'SEARCH_USER_ERROR';

View File

@ -367,7 +367,133 @@ const HistoriqueNanoSanteAgentScreen = ({
</View> </View>
</ScrollView> </ScrollView>
: <ScrollView persistentScrollbar={true}> :
'health_care_sheet_id' in historyItemDetail ?
<ScrollView persistentScrollbar={true}>
<View style={[styles.blockView, {borderBottomColor: Color.borderColor}]}>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>ID</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{historyItemDetail.id}</Text>
</View>
</View>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>{I18n.t('NETWORK')}</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{historyItemDetail.network.name}</Text>
</View>
</View>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>{I18n.t('ACTE')}</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{historyItemDetail.act_name}</Text>
</View>
</View>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>{I18n.t('STATUS')}</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{historyItemDetail.state.toLowerCase()}</Text>
</View>
</View>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>{I18n.t('BENEFICIARY')}</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{`${historyItemDetail.user_firstname !== null ? historyItemDetail.user_firstname : ''} ${historyItemDetail.user_lastname !== null ? historyItemDetail.user_lastname : ''}`}
</Text>
</View>
</View>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>{I18n.t('EMAIL')}</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{historyItemDetail.user_email}</Text>
</View>
</View>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>{I18n.t('PHONE')}</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{historyItemDetail.user_phone}</Text>
</View>
</View>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>{I18n.t('EMETTEUR')}</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{`${historyItemDetail.issuer_agent_lastname !== null ? historyItemDetail.issuer_agent_lastname : ''} ${historyItemDetail.issuer_agent_firstname !== null ? historyItemDetail.issuer_agent_firstname : ''}`}</Text>
</View>
</View>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>{I18n.t('PHONE_EMETTEUR')}</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{historyItemDetail.issuer_agent_phone}</Text>
</View>
</View>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>{I18n.t('AGENT_VALIDEUR')}</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{`${historyItemDetail.validating_agent_lastname !== null ? historyItemDetail.validating_agent_lasstname : ''} ${historyItemDetail.validating_agent_firstname !== null ? historyItemDetail.validating_agent_firstname : ''}`}</Text>
</View>
</View>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>{I18n.t('AGENT_VALIDEUR_EMAIL')}</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{historyItemDetail.validating_agent_email}</Text>
</View>
</View>
<View style={{flexDirection: 'row', marginTop: 10}}>
<View style={{flex: 1}}>
<Text style={[styles.body2]}>{I18n.t('AGENT_VALIDEUR_PHONE')}</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
style={[Typography.caption1, Color.grayColor]}>{historyItemDetail.validating_agent_phone}</Text>
</View>
</View>
</View>
</ScrollView>
:
<ScrollView persistentScrollbar={true}>
<View style={[styles.blockView, {borderBottomColor: Color.borderColor}]}> <View style={[styles.blockView, {borderBottomColor: Color.borderColor}]}>
<View style={{flexDirection: 'row', marginTop: 10}}> <View style={{flexDirection: 'row', marginTop: 10}}>
@ -526,6 +652,47 @@ const HistoriqueNanoSanteAgentScreen = ({
</View> </View>
</View> </View>
</TouchableOpacity> </TouchableOpacity>
: 'health_care_sheet_id' in item ?
<TouchableOpacity
style={[styles.content, {backgroundColor: Color.cardBackgroundColor}]}
onPress={() => {
setDisplayModalHistory(true);
setHistoryItemDetail(item);
/*navigation.navigate('validateConsultationDetailScreen', {
item
});*/
}}>
<View style={[styles.contentTop, {borderColor: Color.borderColor}]}>
<View style={{flex: 1, alignItems: 'flex-start'}}>
<Text caption1>{`${I18n.t('ACTE')}: ${item.act_name}`}</Text>
<Text footnote light numberOfLines={1}>
{`${I18n.t('EMETTEUR')}: ${item.issuer_agent_lastname}`}
</Text>
</View>
<View style={{flex: 1, alignItems: 'flex-end'}}>
<Text
caption1>{`${I18n.t('NETWORK')}: ${item.network.name}`}</Text>
<Text footnote light numberOfLines={1}>
{`${I18n.t('BENEFICIARY')}: ${item.user_firstname !== null ? item.user_firstname : ''} ${item.user_lastname !== null ? item.user_lastname : ''}`}
</Text>
</View>
</View>
<View style={styles.contentBottom}>
<View style={styles.bottomLeft}>
<View style={{marginHorizontal: 5}}>
<Text caption1 semibold accentColor>
{`${I18n.t('STATUS')}: ${item.state}`}
</Text>
</View>
</View>
<View style={{flexDirection: 'row', alignItems: 'flex-end'}}>
<Text caption1 semibold primaryColor>
{`Date: ${moment(item.created_at).format('YYYY-MM-DD')}`}
</Text>
</View>
</View>
</TouchableOpacity>
: :
<TouchableOpacity <TouchableOpacity
style={[styles.content, {backgroundColor: Color.cardBackgroundColor}]} style={[styles.content, {backgroundColor: Color.cardBackgroundColor}]}
@ -589,6 +756,19 @@ const HistoriqueNanoSanteAgentScreen = ({
}}> }}>
{` ${I18n.t('SOINS')}`} {` ${I18n.t('SOINS')}`}
</Tag> </Tag>
<Tag icon={<MaterialCommunityIcons name='file' size={20} color={Color.whiteColor}/>}
style={{width: 110, borderTopLeftRadius: 0, borderBottomLeftRadius: 0, borderTopRightRadius: 0, borderBottomRightRadius: 0,}}
primary
onPress={() => {
dispatch(fetchGetConsultationReset());
setPage(1);
setLoadMore(false);
setHistoryResult([]);
setHistoriqueDetailLabel(I18n.t('AUTORISATION_SOIN'));
fetchGetDemandeAutorisationSoin(`?network_id=${wallet.id_network}&network_agent_id=${wallet.network_agent_id}&page=1&perPage=20`);
}}>
{` ${I18n.t('AUTORISATION_SOIN')}`}
</Tag>
<Tag icon={<MaterialCommunityIcons name='file' size={20} color={Color.whiteColor}/>} <Tag icon={<MaterialCommunityIcons name='file' size={20} color={Color.whiteColor}/>}
style={{width: 110, borderTopLeftRadius: 0, borderBottomLeftRadius: 0,}} style={{width: 110, borderTopLeftRadius: 0, borderBottomLeftRadius: 0,}}
primary primary

View File

@ -6,7 +6,16 @@
* Date: 08/11/2021 * Date: 08/11/2021
*/ */
import React, {useEffect, useState} from 'react'; import React, {useEffect, useState} from 'react';
import {Alert, Dimensions, KeyboardAvoidingView, Platform, ScrollView, StyleSheet, View,} from 'react-native'; import {
Alert,
Dimensions,
KeyboardAvoidingView,
Platform,
ScrollView,
StyleSheet,
TouchableOpacity,
View,
} from 'react-native';
import {connect, useDispatch} from 'react-redux'; import {connect, useDispatch} from 'react-redux';
import {Formik} from 'formik'; import {Formik} from 'formik';
import * as Yup from 'yup'; import * as Yup from 'yup';
@ -32,6 +41,9 @@ import {selectActivatePaySubscription, selectSubscriptionList} from "../../../re
import {Dropdown} from "react-native-material-dropdown"; import {Dropdown} from "react-native-material-dropdown";
import {store} from "../../../redux/store"; import {store} from "../../../redux/store";
import Modal from "react-native-modal";
import Text from "../../../components/Text";
import Icon from "react-native-vector-icons/FontAwesome5";
let moment = require('moment-timezone'); let moment = require('moment-timezone');
@ -172,6 +184,25 @@ const styles = StyleSheet.create({
paddingVertical: 10, paddingVertical: 10,
borderBottomWidth: 0.5, borderBottomWidth: 0.5,
}, },
containPaymentMethod: {
flex: 1,
alignItems: 'center',
paddingHorizontal: 20,
paddingVertical: 15,
},
methodItem: {
width: '100%',
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
paddingVertical: 15,
marginBottom: 5,
},
iconContent: {
width: 30,
marginRight: 10,
alignItems: 'center',
},
}); });
const ActivateBuySubscriptionScreen = ({ const ActivateBuySubscriptionScreen = ({
@ -186,6 +217,7 @@ const ActivateBuySubscriptionScreen = ({
const [password, setPassword] = useState(null); const [password, setPassword] = useState(null);
const [subscriptions, setSubscriptions] = useState([]); const [subscriptions, setSubscriptions] = useState([]);
const [subscription, setSubscription] = useState(null); const [subscription, setSubscription] = useState(null);
const [modalPaymentModal, setModalPaymentModal] = useState(true);
const dispatch = useDispatch(); const dispatch = useDispatch();
let dropDownAlertRef: any = null; let dropDownAlertRef: any = null;
@ -280,10 +312,140 @@ const ActivateBuySubscriptionScreen = ({
}, [activatePaySubscription]); }, [activatePaySubscription]);
const RegisterSchema = Yup.object().shape({ const RegisterSchema = Yup.object().shape({
password: wallet.password_validation === "MAX" ? Yup.string() password: wallet.password_validation === "MAX" ? Yup.string()
.required(I18n.t('THIS_FIELD_IS_REQUIRED')) : Yup.string() .required(I18n.t('THIS_FIELD_IS_REQUIRED')) : Yup.string()
}); });
const renderPaymentMethodModal = () => (
<ScrollView style={{flex: 1}}>
<View style={[styles.containModal, {backgroundColor: Color.containerBackgroundColor}]}>
<Modal
isVisible={modalPaymentModal}
onSwipeComplete={() => {
setModalPaymentModal(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('PAYMENT_METHOD')}</Text>
<View>
<TouchableOpacity
style={[
styles.methodItem,
{
borderBottomColor: Color.borderColor,
borderBottomWidth: 1,
},
]}
onPress={() => {
}}>
<View
style={{
flexDirection: 'row',
alignItems: 'center',
}}>
<View style={styles.iconContent}>
<Icon name="paypal" size={24} color={Color.textColor}/>
</View>
<Text headline>{I18n.t('PAYPAL')}</Text>
</View>
<Icon
name="angle-right"
size={18}
color={Color.primaryColor}
enableRTL
/>
</TouchableOpacity>
<TouchableOpacity
style={[
styles.methodItem,
{
borderBottomColor: Color.borderColor,
borderBottomWidth: 1,
},
]}
onPress={() => {
}}>
<View
style={{
flexDirection: 'row',
alignItems: 'center',
}}>
<View style={styles.iconContent}>
<Icon
name="cc-visa"
size={24}
color={Color.textColor}
/>
</View>
<Text headline>{I18n.t('CREDIT_CARD')}</Text>
</View>
<Icon
name="angle-right"
size={18}
color={Color.primaryColor}
enableRTL
/>
</TouchableOpacity>
<TouchableOpacity
style={[
styles.methodItem,
{
borderBottomColor: Color.borderColor,
borderBottomWidth: 1,
},
]}
onPress={() => {
/* navigation.navigate('WebviewModalScreen', {
url: `${Config.YOOLEARN_CINET_PAY}`,
title: t('terms_of_services'),
}); */
}}>
<View
style={{
flexDirection: 'row',
alignItems: 'center',
}}>
<View style={styles.iconContent}>
<Icon
name="mobile-alt"
size={24}
color={Color.textColor}
/>
</View>
<Text headline>{I18n.t('MOBILE_MONEY')}</Text>
</View>
<Icon
name="angle-right"
size={18}
color={Color.primaryColor}
enableRTL
/>
</TouchableOpacity>
</View>
<Button
full
style={{marginTop: 10, marginBottom: 20}}
onPress={() => setModalPaymentModal(false)}>
{I18n.t('OK')}
</Button>
</View>
</Modal>
</View>
</ScrollView>
)
return ( return (
<ScreenComponent> <ScreenComponent>
<DropdownAlert ref={ref => (dropDownAlertRef = ref)}/> <DropdownAlert ref={ref => (dropDownAlertRef = ref)}/>
@ -302,7 +464,8 @@ const ActivateBuySubscriptionScreen = ({
subscriptionRef.shake(800); subscriptionRef.shake(800);
} else { } else {
console.log("subscription", subscription); console.log("subscription", subscription);
fetchActivePaySubscription(subscription.id, {password: values.password}); setModalPaymentModal(true);
//fetchActivePaySubscription(subscription.id, {password: values.password});
} }
} }
}}> }}>
@ -360,7 +523,7 @@ const ActivateBuySubscriptionScreen = ({
return value return value
}} }}
labelExtractor={(value) => { labelExtractor={(value) => {
return `${I18n.t('MNT')}: ${value.amount} | ${I18n.t('FACT')}: ${value.invoice_id.slice(0,7)} | ${I18n.t('ECH')}: ${value.deadline_number}` return `${I18n.t('MNT')}: ${value.amount} | ${I18n.t('FACT')}: ${value.invoice_id.slice(0, 7)} | ${I18n.t('ECH')}: ${value.deadline_number}`
}} }}
/> />
</Animatable.View> </Animatable.View>
@ -391,6 +554,7 @@ const ActivateBuySubscriptionScreen = ({
</View> </View>
)} )}
</Formik> </Formik>
{modalPaymentModal && renderPaymentMethodModal()}
</ScrollView> </ScrollView>
</KeyboardAvoidingView> </KeyboardAvoidingView>

View File

@ -440,8 +440,7 @@ const AddBeneficiaryScreen = ({
}, [uploadInsuranceImages]); }, [uploadInsuranceImages]);
const RegisterSchema = Yup.object().shape({ const RegisterSchema = Yup.object().shape({
password: wallet.password_validation === "MAX" ? Yup.string() password: Yup.string().required(I18n.t('THIS_FIELD_IS_REQUIRED'))
.required(I18n.t('THIS_FIELD_IS_REQUIRED')) : Yup.string()
}); });
const AddBeneficiarySchema = Yup.object().shape({ const AddBeneficiarySchema = Yup.object().shape({
@ -983,8 +982,6 @@ const AddBeneficiaryScreen = ({
/> />
</Animatable.View> </Animatable.View>
{
wallet.password_validation === "MAX" &&
<PasswordInput <PasswordInput
style={{marginTop: 10}} style={{marginTop: 10}}
onChangeText={handleChange('password')} onChangeText={handleChange('password')}
@ -997,9 +994,6 @@ const AddBeneficiaryScreen = ({
touched={touched.password} touched={touched.password}
error={errors.password} error={errors.password}
/> />
}
<View <View
style={{ style={{
flexDirection: 'column', flexDirection: 'column',

View File

@ -309,8 +309,7 @@ const DeleteBeneficiaryScreen = ({
const RegisterSchema = Yup.object().shape({ const RegisterSchema = Yup.object().shape({
password: wallet.password_validation === "MAX" ? Yup.string() password:Yup.string().required(I18n.t('THIS_FIELD_IS_REQUIRED'))
.required(I18n.t('THIS_FIELD_IS_REQUIRED')) : Yup.string()
}); });
const renderModalViewBeneficiaries = () => { const renderModalViewBeneficiaries = () => {
@ -485,21 +484,18 @@ const DeleteBeneficiaryScreen = ({
/> />
</Animatable.View> </Animatable.View>
{ <PasswordInput
wallet.password_validation === "MAX" && style={{marginTop: 10}}
<PasswordInput onChangeText={handleChange('password')}
style={{marginTop: 10}} placeholder={I18n.t('PASSWORD')}
onChangeText={handleChange('password')} secureTextEntry
placeholder={I18n.t('PASSWORD')} icon={<FontAwesome name="lock" size={20}/>}
secureTextEntry value={values.password}
icon={<FontAwesome name="lock" size={20}/>} onBlur={handleBlur('password')}
value={values.password} success={touched.password && !errors.password}
onBlur={handleBlur('password')} touched={touched.password}
success={touched.password && !errors.password} error={errors.password}
touched={touched.password} />
error={errors.password}
/>
}
<Button <Button
style={{marginTop: 20}} style={{marginTop: 20}}

View File

@ -465,8 +465,7 @@ const InsuranceSubscriptionScreen = ({
}, [uploadInsuranceImages]); }, [uploadInsuranceImages]);
const RegisterSchema = Yup.object().shape({ const RegisterSchema = Yup.object().shape({
password: wallet.password_validation === "MAX" ? Yup.string() password:Yup.string().required(I18n.t('THIS_FIELD_IS_REQUIRED'))
.required(I18n.t('THIS_FIELD_IS_REQUIRED')) : Yup.string()
}); });
const AddBeneficiarySchema = Yup.object().shape({ const AddBeneficiarySchema = Yup.object().shape({
@ -1270,8 +1269,7 @@ const InsuranceSubscriptionScreen = ({
</View>*/ </View>*/
} }
{
wallet.password_validation === "MAX" &&
<PasswordInput <PasswordInput
style={{marginTop: 10}} style={{marginTop: 10}}
onChangeText={handleChange('password')} onChangeText={handleChange('password')}
@ -1284,9 +1282,6 @@ const InsuranceSubscriptionScreen = ({
touched={touched.password} touched={touched.password}
error={errors.password} error={errors.password}
/> />
}
<View <View
style={{ style={{
flexDirection: 'column', flexDirection: 'column',

View File

@ -278,8 +278,7 @@ const RenewAssuranceScreen = ({
}, [stopSubscription]); }, [stopSubscription]);
const RegisterSchema = Yup.object().shape({ const RegisterSchema = Yup.object().shape({
password: wallet.password_validation === "MAX" ? Yup.string() password: Yup.string().required(I18n.t('THIS_FIELD_IS_REQUIRED'))
.required(I18n.t('THIS_FIELD_IS_REQUIRED')) : Yup.string()
}); });
return ( return (
@ -363,8 +362,6 @@ const RenewAssuranceScreen = ({
/> />
</Animatable.View> </Animatable.View>
{
wallet.password_validation === "MAX" &&
<PasswordInput <PasswordInput
style={{marginTop: 10}} style={{marginTop: 10}}
onChangeText={handleChange('password')} onChangeText={handleChange('password')}
@ -377,8 +374,6 @@ const RenewAssuranceScreen = ({
touched={touched.password} touched={touched.password}
error={errors.password} error={errors.password}
/> />
}
<Button <Button
style={{marginTop: 20}} style={{marginTop: 20}}
full full

View File

@ -278,8 +278,7 @@ const StopSubscriptionScreen = ({
}, [stopSubscription]); }, [stopSubscription]);
const RegisterSchema = Yup.object().shape({ const RegisterSchema = Yup.object().shape({
password: wallet.password_validation === "MAX" ? Yup.string() password: Yup.string().required(I18n.t('THIS_FIELD_IS_REQUIRED'))
.required(I18n.t('THIS_FIELD_IS_REQUIRED')) : Yup.string()
}); });
return ( return (
@ -363,21 +362,18 @@ const StopSubscriptionScreen = ({
/> />
</Animatable.View> </Animatable.View>
{ <PasswordInput
wallet.password_validation === "MAX" && style={{marginTop: 10}}
<PasswordInput onChangeText={handleChange('password')}
style={{marginTop: 10}} placeholder={I18n.t('PASSWORD')}
onChangeText={handleChange('password')} secureTextEntry
placeholder={I18n.t('PASSWORD')} icon={<FontAwesome name="lock" size={20}/>}
secureTextEntry value={values.password}
icon={<FontAwesome name="lock" size={20}/>} onBlur={handleBlur('password')}
value={values.password} success={touched.password && !errors.password}
onBlur={handleBlur('password')} touched={touched.password}
success={touched.password && !errors.password} error={errors.password}
touched={touched.password} />
error={errors.password}
/>
}
<Button <Button
style={{marginTop: 20}} style={{marginTop: 20}}

View File

@ -268,6 +268,7 @@
"EMETTEUR": "Emetteur", "EMETTEUR": "Emetteur",
"FIRSTNAME_EMETTEUR": "Prénom(s) émetteur", "FIRSTNAME_EMETTEUR": "Prénom(s) émetteur",
"EMAIL_EMETTEUR": "Email émetteur ", "EMAIL_EMETTEUR": "Email émetteur ",
"PHONE_EMETTEUR": "Téléphone émetteur ",
"ID_DESTINATAIRE": "Identifiant destinataire ", "ID_DESTINATAIRE": "Identifiant destinataire ",
"NUMERO_IDENTITE_EMETTEUR": "Numéro d'identité de l'émetteur", "NUMERO_IDENTITE_EMETTEUR": "Numéro d'identité de l'émetteur",
"NAME_DESTINATAIRE": "Nom(s) destinataire", "NAME_DESTINATAIRE": "Nom(s) destinataire",
@ -574,7 +575,7 @@
"DEMAND_AUTORIZATION_HEALTH": "Demande de prise en charge", "DEMAND_AUTORIZATION_HEALTH": "Demande de prise en charge",
"HISTORIC_HEALTH": "Historique", "HISTORIC_HEALTH": "Historique",
"VALID_HEALTH": "Valider un soin ", "VALID_HEALTH": "Valider un soin ",
"ACTIVATE_INSSURANCE": "Activer son assurance", "ACTIVATE_INSSURANCE": "Payer son assurance",
"AMOUNT_PER_DURATION": "Montant par durée", "AMOUNT_PER_DURATION": "Montant par durée",
"AMOUNT_PRIME": "Montant de la prime", "AMOUNT_PRIME": "Montant de la prime",
"ASSURE": "Assuré", "ASSURE": "Assuré",
@ -707,6 +708,8 @@
"DEMANDES": "Demandes", "DEMANDES": "Demandes",
"ACTE": "Acte", "ACTE": "Acte",
"AGENT_VALIDEUR": "Agent valideur", "AGENT_VALIDEUR": "Agent valideur",
"AGENT_VALIDEUR_EMAIL": "Email agent valideur",
"AGENT_VALIDEUR_PHONE": "Téléphone agent valideur",
"TEXT_SUPPRESS_CONFIRM_BENEFICIARY": "Voulez vous vraiment supprimer cet ayant droit ?", "TEXT_SUPPRESS_CONFIRM_BENEFICIARY": "Voulez vous vraiment supprimer cet ayant droit ?",
"ENTER_PASSWORD_TO_VALID_MODIFICATION": "Renseigner votre mot de passe et valider la suppression de l'ayant pour le supprimé définitivement", "ENTER_PASSWORD_TO_VALID_MODIFICATION": "Renseigner votre mot de passe et valider la suppression de l'ayant pour le supprimé définitivement",
"PLEASE_SELECT_AT_LEAST_ASSURE": "Veuillez sélectionner au moins un ayant droit", "PLEASE_SELECT_AT_LEAST_ASSURE": "Veuillez sélectionner au moins un ayant droit",
@ -742,5 +745,9 @@
"EXCLUSION": "Exclusion", "EXCLUSION": "Exclusion",
"VALIDATION_EFFECTUE": "Validation effectué", "VALIDATION_EFFECTUE": "Validation effectué",
"USER_SUCCESSFULLY_VALIDATED": "Utilisateur validé avec succès", "USER_SUCCESSFULLY_VALIDATED": "Utilisateur validé avec succès",
"BENEFICIARY": "Bénéficiaire" "BENEFICIARY": "Bénéficiaire",
"AUTORISATION_SOIN": "Autorisation soin",
"PAYMENT_METHOD": "Méthode de paiement",
"MOBILE_MONEY": "Mobile Money",
"PAYPAL": "Paypal"
} }

View File

@ -11,11 +11,8 @@ export const baseUrl = "http://test.ilink-app.com:8080/mobilebackend";
export const testBaseUrl = "https://test.ilink-app.com"; export const testBaseUrl = "https://test.ilink-app.com";
export const testBaseUrlWithPort = "https://test.ilink-app.com:8086"; export const testBaseUrlWithPort = "https://test.ilink-app.com:8086";
/*export const baseUrl = "https://ilink-app.com/mobilebackend"; /*export const baseUrl = "https://ilink-app.com/mobilebackend";
export const testBaseUrl = "https://ilink-app.com:8080"; export const testBaseUrl = "https://ilink-app.com:8080";*/
export const testBaseUrlWithPort = "https://ilink-app.com:8086";*/
/* export const baseUrl = "https://preprod.ilink-app.com:8080/mobilebackend"; /* export const baseUrl = "https://preprod.ilink-app.com:8080/mobilebackend";
export const testBaseUrl = "https://preprod.ilink-app.com"; */ export const testBaseUrl = "https://preprod.ilink-app.com"; */
@ -85,19 +82,27 @@ export const getIlinkBankListUrl = testBaseUrl + '/walletService/wallets/users/b
export const linkBankAccountUrl = testBaseUrl + '/walletService/wallets/users/link_bank_account'; export const linkBankAccountUrl = testBaseUrl + '/walletService/wallets/users/link_bank_account';
export const payBillUrl = testBaseUrl + '/walletService/transactions/ilink'; export const payBillUrl = testBaseUrl + '/walletService/transactions/ilink';
export const searchUserUrl = testBaseUrl + '/walletService/search/users';
export const searchUserHomeUrl = testBaseUrl + '/walletService/agents';
export const getQRCodeDetail = testBaseUrl + '/walletService/qrcode/read';
export const facturerSoinUrl = testBaseUrl + '/nanoSanteService/generate-invoice'; export const facturerSoinUrl = testBaseUrl + '/nanoSanteService/generate-invoice';
export const invoiceUrl = testBaseUrl + '/nanoSanteService/invoices'; export const invoiceUrl = testBaseUrl + '/nanoSanteService/invoices';
export const exclusionUrl = testBaseUrl + '/nanoSanteService/exclusions';
export const getInsuranceListUrl = testBaseUrl + '/nanoSanteService/insurances'; export const getInsuranceListUrl = testBaseUrl + '/nanoSanteService/insurances';
export const checkInsuranceCoverageAmountUrl = testBaseUrl + '/nanoSanteService/health-care-sheets/check-insurance-coverage-amount'; export const checkInsuranceCoverageAmountUrl = testBaseUrl + '/nanoSanteService/health-care-sheets/check-insurance-coverage-amount';
export const getUserByIdQRCodeUrl = testBaseUrl + '/walletService/qrcode/read'; export const getUserByIdQRCodeUrl = testBaseUrl + '/walletService/qrcode/read';
export const getUserByNameOrNumberUrl = testBaseUrl + '/nanoSanteService/insured'; export const getUserByNameOrNumberUrl = testBaseUrl + '/nanoSanteService/insured';
export const getDrugAndDevicesUrl = testBaseUrl + '/nanoSanteService/drugs-and-devices'; export const getDrugAndDevicesUrl = testBaseUrl + '/nanoSanteService/drugs-and-devices';
export const subscribeInsuranceUrl = testBaseUrl + '/nanoSanteService/insurances/subscriptions'; export const subscribeInsuranceUrl = testBaseUrl + '/nanoSanteService/insurances/subscriptions';
export const buyInsuranceUrl = testBaseUrl + '/nanoSanteService/insurances/invoices';
export const getProviderClassUrl = testBaseUrl + '/nanoSanteService/provider-classes'; export const getProviderClassUrl = testBaseUrl + '/nanoSanteService/provider-classes';
export const getNetworkActsUrl = testBaseUrl + '/nanoSanteService/acts'; export const getNetworkActsUrl = testBaseUrl + '/nanoSanteService/acts';
export const createConsultationUrl = testBaseUrl + '/nanoSanteService/health-care-sheets/consultation'; export const createConsultationUrl = testBaseUrl + '/nanoSanteService/health-care-sheets/consultation';
export const executionPrescriptionUrl = testBaseUrl + '/nanoSanteService/health-care-sheets/execution'; export const executionPrescriptionUrl = testBaseUrl + '/nanoSanteService/health-care-sheets/execution';
export const consultationUrl = testBaseUrl + '/nanoSanteService/health-care-sheets'; export const consultationUrl = testBaseUrl + '/nanoSanteService/health-care-sheets';
export const passwordValidationUrl = testBaseUrl + '/nanoSanteService/password-validation';
export const getAmountConsultationUrl = testBaseUrl + '/nanoSanteService/health-care-sheets/performances-amount'; export const getAmountConsultationUrl = testBaseUrl + '/nanoSanteService/health-care-sheets/performances-amount';
export const getInsurancePrimeAmountUrl = testBaseUrl + '/nanoSanteService/insurances/subscriptions/bonus-amount'; export const getInsurancePrimeAmountUrl = testBaseUrl + '/nanoSanteService/insurances/subscriptions/bonus-amount';
export const autorisationCareRequestUrl = testBaseUrl + '/nanoSanteService/authorizations-care-requests'; export const autorisationCareRequestUrl = testBaseUrl + '/nanoSanteService/authorizations-care-requests';
@ -112,4 +117,4 @@ export const authKeyData = {
"grant_type": "password", "grant_type": "password",
"client_id": "2", "client_id": "2",
"client_secret": "rrbvxACJPBOG4cqjDNlstSljlmjydLon3P55JMav", "client_secret": "rrbvxACJPBOG4cqjDNlstSljlmjydLon3P55JMav",
}; };