Commit ab47b434 by Giang Tran

update ui

parent ddb75ea2
...@@ -132,8 +132,8 @@ android { ...@@ -132,8 +132,8 @@ android {
applicationId "com.dcv.invest" applicationId "com.dcv.invest"
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 23 versionCode 25
versionName "2.7" versionName "2.9"
vectorDrawables.useSupportLibrary = true vectorDrawables.useSupportLibrary = true
} }
splits { splits {
......
...@@ -5,7 +5,7 @@ buildscript { ...@@ -5,7 +5,7 @@ buildscript {
buildToolsVersion = "29.0.2" buildToolsVersion = "29.0.2"
minSdkVersion = 21 minSdkVersion = 21
compileSdkVersion = 29 compileSdkVersion = 29
targetSdkVersion = 29 targetSdkVersion = 30
} }
repositories { repositories {
google() google()
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
2DCD954D1E0B4F2C00145EB5 /* InvestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* InvestTests.m */; }; 2DCD954D1E0B4F2C00145EB5 /* InvestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* InvestTests.m */; };
2FCC6749524E697FC9323F22 /* libPods-Invest-InvestTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ABCEBFE5646F1EF68E7C87AB /* libPods-Invest-InvestTests.a */; }; 2FCC6749524E697FC9323F22 /* libPods-Invest-InvestTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ABCEBFE5646F1EF68E7C87AB /* libPods-Invest-InvestTests.a */; };
48E6A9A75AE9C55476F21D2D /* libPods-Invest-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4ECD31835B4784D2DC719E76 /* libPods-Invest-tvOSTests.a */; }; 48E6A9A75AE9C55476F21D2D /* libPods-Invest-tvOSTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4ECD31835B4784D2DC719E76 /* libPods-Invest-tvOSTests.a */; };
52B76D5D2760BFCC00336921 /* libswiftWebKit.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 52B76D5C2760BFCC00336921 /* libswiftWebKit.tbd */; };
52B7A0A425F722CF00CEDA09 /* (null) in Resources */ = {isa = PBXBuildFile; }; 52B7A0A425F722CF00CEDA09 /* (null) in Resources */ = {isa = PBXBuildFile; };
52F3AE2D26257DEC00F77114 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 52F3AE2C26257DEB00F77114 /* GoogleService-Info.plist */; }; 52F3AE2D26257DEC00F77114 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 52F3AE2C26257DEB00F77114 /* GoogleService-Info.plist */; };
52FB2B09262400D400DD7983 /* BootSplash.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 52FB2B08262400D400DD7983 /* BootSplash.storyboard */; }; 52FB2B09262400D400DD7983 /* BootSplash.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 52FB2B08262400D400DD7983 /* BootSplash.storyboard */; };
...@@ -61,6 +62,7 @@ ...@@ -61,6 +62,7 @@
2D02E47B1E0B4A5D006451C7 /* Invest-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Invest-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 2D02E47B1E0B4A5D006451C7 /* Invest-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Invest-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; };
2D02E4901E0B4A5D006451C7 /* Invest-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Invest-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 2D02E4901E0B4A5D006451C7 /* Invest-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Invest-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
4ECD31835B4784D2DC719E76 /* libPods-Invest-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Invest-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 4ECD31835B4784D2DC719E76 /* libPods-Invest-tvOSTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Invest-tvOSTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
52B76D5C2760BFCC00336921 /* libswiftWebKit.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libswiftWebKit.tbd; path = usr/lib/swift/libswiftWebKit.tbd; sourceTree = SDKROOT; };
52E1A15225F1255E00EA970D /* Invest.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = Invest.entitlements; path = Invest/Invest.entitlements; sourceTree = "<group>"; }; 52E1A15225F1255E00EA970D /* Invest.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = Invest.entitlements; path = Invest/Invest.entitlements; sourceTree = "<group>"; };
52F3AE2C26257DEB00F77114 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; }; 52F3AE2C26257DEB00F77114 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
52FB2B08262400D400DD7983 /* BootSplash.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = BootSplash.storyboard; path = Invest/BootSplash.storyboard; sourceTree = "<group>"; }; 52FB2B08262400D400DD7983 /* BootSplash.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = BootSplash.storyboard; path = Invest/BootSplash.storyboard; sourceTree = "<group>"; };
...@@ -106,6 +108,7 @@ ...@@ -106,6 +108,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
52B76D5D2760BFCC00336921 /* libswiftWebKit.tbd in Frameworks */,
BEE4F63E354049C2D225330D /* libPods-Invest.a in Frameworks */, BEE4F63E354049C2D225330D /* libPods-Invest.a in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
...@@ -182,6 +185,7 @@ ...@@ -182,6 +185,7 @@
2D16E6871FA4F8E400B85C8A /* Frameworks */ = { 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
52B76D5C2760BFCC00336921 /* libswiftWebKit.tbd */,
ED297162215061F000B7C4FE /* JavaScriptCore.framework */, ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
ED2971642150620600B7C4FE /* JavaScriptCore.framework */, ED2971642150620600B7C4FE /* JavaScriptCore.framework */,
5F96EA7789D1E36A43479651 /* libPods-Invest.a */, 5F96EA7789D1E36A43479651 /* libPods-Invest.a */,
...@@ -905,7 +909,7 @@ ...@@ -905,7 +909,7 @@
CODE_SIGN_ENTITLEMENTS = Invest/InvestDebug.entitlements; CODE_SIGN_ENTITLEMENTS = Invest/InvestDebug.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 18; CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = MXZ24GRH48; DEVELOPMENT_TEAM = MXZ24GRH48;
ENABLE_BITCODE = NO; ENABLE_BITCODE = NO;
GCC_PREPROCESSOR_DEFINITIONS = ( GCC_PREPROCESSOR_DEFINITIONS = (
...@@ -914,7 +918,11 @@ ...@@ -914,7 +918,11 @@
); );
INFOPLIST_FILE = Invest/Info.plist; INFOPLIST_FILE = Invest/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 2.3.4; LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(SDKROOT)/usr/lib/swift",
);
MARKETING_VERSION = 2.3.5;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
...@@ -939,11 +947,15 @@ ...@@ -939,11 +947,15 @@
CODE_SIGN_ENTITLEMENTS = Invest/Invest.entitlements; CODE_SIGN_ENTITLEMENTS = Invest/Invest.entitlements;
CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 18; CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = MXZ24GRH48; DEVELOPMENT_TEAM = MXZ24GRH48;
INFOPLIST_FILE = Invest/Info.plist; INFOPLIST_FILE = Invest/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 2.3.4; LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"$(SDKROOT)/usr/lib/swift",
);
MARKETING_VERSION = 2.3.5;
OTHER_LDFLAGS = ( OTHER_LDFLAGS = (
"$(inherited)", "$(inherited)",
"-ObjC", "-ObjC",
......
...@@ -66,6 +66,8 @@ ...@@ -66,6 +66,8 @@
<string>Enabling Face ID allows you quick and secure access to your account.</string> <string>Enabling Face ID allows you quick and secure access to your account.</string>
<key>NSLocationWhenInUseUsageDescription</key> <key>NSLocationWhenInUseUsageDescription</key>
<string></string> <string></string>
<key>NSMicrophoneUsageDescription</key>
<string>Upload nh lên ng dng</string>
<key>NSPhotoLibraryUsageDescription</key> <key>NSPhotoLibraryUsageDescription</key>
<string>Upload nh lên ng dng</string> <string>Upload nh lên ng dng</string>
<key>UIAppFonts</key> <key>UIAppFonts</key>
......
...@@ -15,7 +15,8 @@ const Contract = (props) => { ...@@ -15,7 +15,8 @@ const Contract = (props) => {
androidHardwareAccelerationDisabled={true} androidHardwareAccelerationDisabled={true}
source={{ source={{
uri: uri:
'http://api.dcvinvest.com/webview/contracts/show/' + props.user.uid, 'http://services.dcvinvest.com/webview/contracts/show/' +
props.user.uid,
}} }}
/> />
</View> </View>
......
...@@ -12,7 +12,7 @@ const DetailHistory = (props) => { ...@@ -12,7 +12,7 @@ const DetailHistory = (props) => {
androidHardwareAccelerationDisabled={true} androidHardwareAccelerationDisabled={true}
source={{ source={{
uri: uri:
'http://api.dcvinvest.com/webview/customers/detail-transaction-history/' + 'http://services.dcvinvest.com/webview/customers/detail-transaction-history/' +
props.route.params.id, props.route.params.id,
}} }}
/> />
......
import React, {Component} from 'react';
import EKYCView from './view';
const ekyc = (props) => {
const onPress = () => {
console.log('hello');
};
return <EKYCView onPress={onPress} />;
};
export default ekyc;
import React, {useState} from 'react';
import {
View,
Text,
Image,
TouchableOpacity,
StyleSheet,
Alert,
KeyboardAvoidingView,
ScrollView,
Platform,
TouchableWithoutFeedback,
Keyboard,
} from 'react-native';
import R from '../../assets/R';
import {connect} from 'react-redux';
import TextField from '../../components/Input/TextField';
import TextMulti from '../../components/Input/TextMulti';
import PickerDate from '../../components/Picker/PickerDate';
import PickerImg from '../../components/Picker/PickerImg';
import I18n from '../../helper/i18/i18n';
import HeaderBack from '../../components/Header/HeaderBack';
import {checkFormatArray, convertTime} from '../../Config/Functions';
import {showAlert, TYPE} from '../../components/DropdownAlert';
import PickerIdentify from '../../components/Picker/PickerIdentify';
import Button from '../../components/Button';
const GeneralInfor = (props) => {
const [lastName, setLastName] = useState(props.user.l_name);
const [firstName, setFirstName] = useState(props.user.f_name);
const [phone, setPhone] = useState(props.user.phone);
const [address, setAdress] = useState(props.user.address);
const [birth, setBirth] = useState(new Date(props.user.birthday));
const onNextPress = () => {
const titles = [
I18n.t('FirstLastName').toLowerCase(),
I18n.t('Name').toLowerCase(),
I18n.t('PhoneNumber').toLowerCase(),
I18n.t('Address').toLowerCase(),
];
const index = checkFormatArray([lastName, firstName, phone, address]);
if (index === true) {
props.navigation.navigate('Profile', {
l_name: lastName,
f_name: firstName,
mobile: phone,
birthday: convertTime(birth),
address,
});
} else {
showAlert(
TYPE.WARN,
I18n.t('Notification'),
I18n.t('Please_fill_in') + titles[index],
);
}
};
const onSubmitFont = () => {};
const onSubmitBack = () => {};
const onSubmitSign = () => {};
return (
<View style={{flex: 1}}>
<HeaderBack title={'AccountVerify'} />
<KeyboardAvoidingView
behavior={Platform.Os === 'ios' ? 'padding' : 'height'}
style={{flex: 1}}
keyboardVerticalOffset={-50}>
<TouchableWithoutFeedback onPress={Keyboard.dismiss}>
<ScrollView showsVerticalScrollIndicator={false}>
<View style={{flex: 1, paddingHorizontal: 10, paddingTop: 10}}>
<TextField
value={phone}
isNumber={true}
title={I18n.t('PhoneNumber')}
onChangeText={(val) => setPhone(val)}
/>
<TextMulti
value={address}
title={I18n.t('Address')}
onChangeText={(val) => setAdress(val)}
/>
<PickerIdentify
callApi={onSubmitFont}
title={I18n.t('FontOfIdentifyID')}
/>
<PickerIdentify
callApi={onSubmitBack}
title={I18n.t('BacksideOfIdentifyID')}
/>
<PickerIdentify
callApi={onSubmitSign}
title={I18n.t('SignPhoto')}
/>
<View style={styles.btnSend}>
<Button title={I18n.t('Confirm')} onClick={props.onPress} />
</View>
<View style={{height: 50}} />
</View>
</ScrollView>
</TouchableWithoutFeedback>
</KeyboardAvoidingView>
</View>
);
};
const styles = StyleSheet.create({
btnNext: {
borderRadius: 30,
backgroundColor: '#1473E6',
width: 50,
height: 50,
justifyContent: 'center',
alignItems: 'center',
marginTop: 20,
alignSelf: 'flex-end',
elevation: 2,
shadowColor: '#000',
shadowOffset: {
width: 0,
height: 1,
},
shadowOpacity: 0.15,
shadowRadius: 1.84,
},
btnSend: {
width: '100%',
marginVertical: 30,
},
});
const mapStateToProps = (state) => {
return {
user: state.userReducer,
};
};
export default connect(mapStateToProps, {})(GeneralInfor);
...@@ -12,7 +12,8 @@ const MyGroup = (props) => { ...@@ -12,7 +12,8 @@ const MyGroup = (props) => {
androidHardwareAccelerationDisabled={true} androidHardwareAccelerationDisabled={true}
source={{ source={{
uri: uri:
'http://api.dcvinvest.com/webview/partners/show/' + props.user.uid, 'http://services.dcvinvest.com/webview/partners/show/' +
props.user.uid,
}} }}
/> />
</View> </View>
......
...@@ -16,7 +16,7 @@ const NewFeed = (props) => { ...@@ -16,7 +16,7 @@ const NewFeed = (props) => {
domStorageEnabled={false} domStorageEnabled={false}
style={{height: '100%', width: '100%'}} style={{height: '100%', width: '100%'}}
source={{ source={{
uri: 'http://api.dcvinvest.com/webview/tradingview/price', uri: 'http://services.dcvinvest.com/webview/tradingview/price',
}} }}
/> />
</View> </View>
......
...@@ -11,7 +11,7 @@ const Trading = (props) => { ...@@ -11,7 +11,7 @@ const Trading = (props) => {
domStorageEnabled={false} domStorageEnabled={false}
source={{ source={{
uri: uri:
'http://api.dcvinvest.com/webview/tradingview/chart?height=' + 'http://services.dcvinvest.com/webview/tradingview/chart?height=' +
(height - 250), (height - 250),
}} }}
/> />
......
...@@ -9,7 +9,7 @@ const FAQs = (props) => { ...@@ -9,7 +9,7 @@ const FAQs = (props) => {
<WebView <WebView
// androidHardwareAccelerationDisabled={true} // androidHardwareAccelerationDisabled={true}
source={{ source={{
uri: 'http://api.dcvinvest.com/webview/smart-otp/faqs', uri: 'http://services.dcvinvest.com/webview/smart-otp/faqs',
}} }}
/> />
</View> </View>
......
...@@ -10,7 +10,8 @@ const RulesSmartOTP = (props) => { ...@@ -10,7 +10,8 @@ const RulesSmartOTP = (props) => {
<WebView <WebView
// androidHardwareAccelerationDisabled={true} // androidHardwareAccelerationDisabled={true}
source={{ source={{
uri: 'http://api.dcvinvest.com/webview/smart-otp/term-and-condition', uri:
'http://services.dcvinvest.com/webview/smart-otp/term-and-condition',
}} }}
/> />
</View> </View>
......
...@@ -120,6 +120,7 @@ const images = { ...@@ -120,6 +120,7 @@ const images = {
faq: require('./images/faq.png'), faq: require('./images/faq.png'),
fingerprint: require('./images/fingerprint.png'), fingerprint: require('./images/fingerprint.png'),
iconFaceId: require('./images/iconFaceID.png'), iconFaceId: require('./images/iconFaceID.png'),
icCamera: require('./images/icCamera.png'),
}; };
export default images; export default images;
import React, {useState, useEffect} from 'react';
import {
View,
Text,
Image,
StyleSheet,
TouchableOpacity,
TouchableWithoutFeedback,
Platform,
PermissionsAndroid,
} from 'react-native';
import R from '../../assets/R';
import {
HEIGHTXD,
WIDTHXD,
getFontXD,
requestCameraPermission,
getWidth,
} from '../../Config/Functions';
import Icon from 'react-native-vector-icons/AntDesign';
import Modal from 'react-native-modal';
import ImagePicker from 'react-native-image-crop-picker';
import AppText from '../AppText';
const options = {
title: 'Select Avatar',
customButtons: [{name: 'fb', title: 'Choose Photo from Facebook'}],
storageOptions: {
skipBackup: true,
path: 'images',
},
};
const PickerImgUni = (props) => {
const {title, height, width, callApi} = props;
const [isModalVisible, setModalVisible] = useState(false);
const [urlImg, setUrlImg] = useState('');
const checkPermissionAndroid = () => {
if (!PermissionsAndroid.check('CAMERA')) {
requestCameraPermission();
}
};
const onchoosGalery = () => {
ImagePicker.openPicker({
mediaType: 'photo',
multiple: false,
height: 350,
width: 575,
cropping: true,
}).then((image) => {
setModalVisible(false);
setUrlImg(image.path);
parseData(image);
});
};
const onCapture = () => {
if (Platform.OS == 'android') checkPermissionAndroid();
ImagePicker.openCamera({
mediaType: 'photo',
height: 350,
width: 575,
cropping: true,
}).then((image) => {
setModalVisible(false);
setUrlImg(image.path);
parseData(image);
});
};
const parseData = (photo) => {
const data = new FormData();
let fileName = photo.filename;
if (!fileName || fileName === undefined) {
let pathArray = photo.path.split('/');
fileName = pathArray[pathArray.length - 1];
}
data.append('files', {
name: fileName.replace(/HEIC/g, 'jpg'),
type: photo.mime,
size: photo.size,
uri: photo.path,
});
callApi(data);
};
return (
<View onPress={() => setModalVisible(true)}>
<View style={{marginTop: 10}}>
<Text style={styles.txt}>{title}:</Text>
</View>
<TouchableOpacity onPress={() => setModalVisible(true)}>
{urlImg ? (
<Image
resizeMode={'contain'}
source={{uri: urlImg}}
style={styles.containerIdentify}
/>
) : (
<View style={styles.containerIdentify}>
<Image source={R.images.icCamera} style={styles.image} />
</View>
)}
</TouchableOpacity>
<Modal
isVisible={isModalVisible}
style={{margin: 0, justifyContent: 'flex-end'}}
onSwipeComplete={() => setModalVisible(false)}
swipeDirection={['up', 'left', 'right', 'down']}>
<TouchableWithoutFeedback onPress={() => setModalVisible(false)}>
<View style={{flex: 1}}></View>
</TouchableWithoutFeedback>
<View style={styles.containerSelect}>
<AppText
i18nKey={'Select_source_image'}
style={{
textAlign: 'center',
fontSize: getFontXD(42),
fontWeight: 'bold',
color: '#1473E6',
}}
/>
<View style={styles.line} />
<View
style={{
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-around',
}}>
<TouchableOpacity style={styles.selectionImg} onPress={onCapture}>
<Image style={styles.imgIcon} source={R.images.iconCamera} />
<AppText i18nKey={'Take_photo'} style={styles.txtTitleBtn} />
</TouchableOpacity>
<TouchableOpacity
style={styles.selectionImg}
onPress={onchoosGalery}>
<Image style={styles.imgIcon} source={R.images.iconImg} />
<AppText i18nKey={'Photo_library'} style={styles.txtTitleBtn} />
</TouchableOpacity>
</View>
</View>
</Modal>
</View>
);
};
const styles = StyleSheet.create({
container: {
backgroundColor: R.colors.white,
borderRadius: 5,
justifyContent: 'center',
alignItems: 'center',
},
txt: {
fontSize: getFontXD(42),
color: R.colors.color777,
marginBottom: 5,
},
selectionImg: {
padding: 10,
justifyContent: 'center',
alignItems: 'center',
},
containerSelect: {
backgroundColor: 'white',
paddingVertical: 20,
borderTopLeftRadius: 20,
borderTopRightRadius: 20,
borderRadius: 8,
},
line: {
height: 1,
backgroundColor: '#929292',
width: '100%',
marginTop: 5,
},
imgIcon: {
width: 40,
height: 40,
},
txtTitleBtn: {
textAlign: 'center',
fontSize: getFontXD(42),
color: '#1473E6',
},
containerIdentify: {
height: HEIGHTXD(500),
marginHorizontal: 30,
borderRadius: 8,
justifyContent: 'center',
alignItems: 'center',
borderWidth: 0.6,
borderStyle: 'dashed',
borderColor: R.colors.gray1,
backgroundColor: R.colors.colorBgScreen,
},
image: {
height: 48,
width: 48,
},
});
export default React.memo(PickerImgUni);
...@@ -329,7 +329,8 @@ export default { ...@@ -329,7 +329,8 @@ export default {
YouHaveNotSettingSmartOTP: 'You have not installed Smart OTP', YouHaveNotSettingSmartOTP: 'You have not installed Smart OTP',
OTP: 'Enter OTP', OTP: 'Enter OTP',
HaveIssue: 'Have an issue, try again!', HaveIssue: 'Have an issue, try again!',
HaveNotCredential: 'Can not login by %{type}, please return on login by %{type}', HaveNotCredential:
'Can not login by %{type}, please return on login by %{type}',
LoginBy: 'Login by %{type}', LoginBy: 'Login by %{type}',
Fingerprint: 'Fingerprint', Fingerprint: 'Fingerprint',
FaceId: 'FaceId', FaceId: 'FaceId',
...@@ -338,5 +339,6 @@ export default { ...@@ -338,5 +339,6 @@ export default {
Period: 'Period', Period: 'Period',
YouNotSettingBiometry: 'You not setting %{type}, please setting it', YouNotSettingBiometry: 'You not setting %{type}, please setting it',
EnterPasswordTitle: 'Enter password login', EnterPasswordTitle: 'Enter password login',
FontOfIdentifyID: 'Font wear of identify ',
BacksideOfIdentifyID: 'Backside of identify',
}; };
...@@ -67,6 +67,8 @@ export default { ...@@ -67,6 +67,8 @@ export default {
Address: 'Địa chỉ:', Address: 'Địa chỉ:',
Update: 'Cập nhật', Update: 'Cập nhật',
ContactCode: 'Mã hợp đồng', ContactCode: 'Mã hợp đồng',
FontOfIdentifyID: 'Mặc trước của CCCD/CMND',
BacksideOfIdentifyID: 'Mặc sau của CCCD/CMND',
TraddingAccountName: 'Tên tài khoản giao dịch', TraddingAccountName: 'Tên tài khoản giao dịch',
TraddingAccountNumber: 'Số tài khoản giao dịch', TraddingAccountNumber: 'Số tài khoản giao dịch',
GeneralInformation: 'Thông tin chung', GeneralInformation: 'Thông tin chung',
...@@ -326,13 +328,15 @@ export default { ...@@ -326,13 +328,15 @@ export default {
YouHaveNotSettingSmartOTP: 'Bạn chưa cài đặt Smart OTP', YouHaveNotSettingSmartOTP: 'Bạn chưa cài đặt Smart OTP',
OTP: 'Nhập OTP', OTP: 'Nhập OTP',
HaveIssue: 'Có lỗi xảy ra, vui lòng thử lại', HaveIssue: 'Có lỗi xảy ra, vui lòng thử lại',
HaveNotCredential: 'Không thể đăng nhập được bằng %{type}, vui lòng bật lại chức năng đăng nhập bằng %{type}', HaveNotCredential:
'Không thể đăng nhập được bằng %{type}, vui lòng bật lại chức năng đăng nhập bằng %{type}',
LoginBy: 'Đăng nhập bằng %{type}', LoginBy: 'Đăng nhập bằng %{type}',
Fingerprint: 'vân tay', Fingerprint: 'vân tay',
FaceId: 'nhận diện khuôn mặt', FaceId: 'nhận diện khuôn mặt',
SearchProductCode: 'Tìm kiếm mã sản phẩm', SearchProductCode: 'Tìm kiếm mã sản phẩm',
IndustryGroup: 'Nhóm ngành', IndustryGroup: 'Nhóm ngành',
Period: 'Kỳ hạn', Period: 'Kỳ hạn',
YouNotSettingBiometry: 'Bạn chưa thiết lập %{type}, vui lòng thiết lập %{type}', YouNotSettingBiometry:
'Bạn chưa thiết lập %{type}, vui lòng thiết lập %{type}',
EnterPasswordTitle: 'Nhập mật khẩu đăng nhập', EnterPasswordTitle: 'Nhập mật khẩu đăng nhập',
}; };
...@@ -97,3 +97,5 @@ export const FAQSSMARTOTP = 'FAQSSMARTOTP'; ...@@ -97,3 +97,5 @@ export const FAQSSMARTOTP = 'FAQSSMARTOTP';
export const CONFIRMCREATEOTP = 'CONFIRMCREATEOTP'; export const CONFIRMCREATEOTP = 'CONFIRMCREATEOTP';
export const REJECTWEB = 'REJECTWEB'; export const REJECTWEB = 'REJECTWEB';
export const EKYCSCREEN = 'EKYCSCREEN';
...@@ -68,6 +68,7 @@ import ConfirmChangeSmartOTP from '../Screens/SmartOTP/ChangeSmartOTP/ConfirmCha ...@@ -68,6 +68,7 @@ import ConfirmChangeSmartOTP from '../Screens/SmartOTP/ChangeSmartOTP/ConfirmCha
import FAQs from '../Screens/SmartOTP/WebView/FAQs'; import FAQs from '../Screens/SmartOTP/WebView/FAQs';
import RulesSmartOTP from '../Screens/SmartOTP/WebView/RulesSmartOTP'; import RulesSmartOTP from '../Screens/SmartOTP/WebView/RulesSmartOTP';
import ConfirmCreate from '../Screens/SmartOTP/ConfirmCreate/ConfirmCreate'; import ConfirmCreate from '../Screens/SmartOTP/ConfirmCreate/ConfirmCreate';
import ekycScreen from '../Screens/EKYC/index';
import * as ScreenName from './ScreenNames'; import * as ScreenName from './ScreenNames';
...@@ -85,7 +86,7 @@ function MyStack(props) { ...@@ -85,7 +86,7 @@ function MyStack(props) {
headerStatusBarHeight: 0, headerStatusBarHeight: 0,
}} }}
headerMode={'none'} headerMode={'none'}
initialRouteName={ScreenName.AUTHEN}> initialRouteName={ScreenName.EKYCSCREEN}>
<Stack.Screen <Stack.Screen
name={ScreenName.CONFIRMCREATEOTP} name={ScreenName.CONFIRMCREATEOTP}
component={ConfirmCreate} component={ConfirmCreate}
...@@ -100,6 +101,8 @@ function MyStack(props) { ...@@ -100,6 +101,8 @@ function MyStack(props) {
component={ConfirmOTPSmart} component={ConfirmOTPSmart}
/> />
<Stack.Screen name={ScreenName.EKYCSCREEN} component={ekycScreen} />
<Stack.Screen <Stack.Screen
name={ScreenName.SMARTOTPCONFIG} name={ScreenName.SMARTOTPCONFIG}
component={SmartOTPConfig} component={SmartOTPConfig}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment