Commit bc25cc28 by Giang Tran

fix keyboard

parent d66cf65b
...@@ -10,6 +10,8 @@ import { ...@@ -10,6 +10,8 @@ import {
Platform, Platform,
Dimensions, Dimensions,
Alert, Alert,
TouchableWithoutFeedback,
Keyboard,
} from 'react-native'; } from 'react-native';
import TextField from '../../../components/Input/TextField'; import TextField from '../../../components/Input/TextField';
import TextMulti from '../../../components/Input/TextMulti'; import TextMulti from '../../../components/Input/TextMulti';
...@@ -120,43 +122,45 @@ const BankInfor = (props) => { ...@@ -120,43 +122,45 @@ const BankInfor = (props) => {
behavior={Platform.Os === 'ios' ? 'padding' : 'height'} behavior={Platform.Os === 'ios' ? 'padding' : 'height'}
style={{flex: 1}} style={{flex: 1}}
keyboardVerticalOffset={-50}> keyboardVerticalOffset={-50}>
<ScrollView showsVerticalScrollIndicator={false}> <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
<View <ScrollView showsVerticalScrollIndicator={false}>
style={{ <View
flex: 1,
paddingHorizontal: 10,
paddingTop: 10,
}}>
<Text
style={{ style={{
fontSize: getFontXD(42), flex: 1,
color: R.colors.color777, paddingHorizontal: 10,
paddingTop: 10,
}}> }}>
Loi th <Text
</Text> style={{
<PickerItem fontSize: getFontXD(42),
width={width - 20} color: R.colors.color777,
data={dataType} }}>
onValueChange={(value, items) => { Loi th
setAccType(items); </Text>
}} <PickerItem
/> width={width - 20}
<TextField data={dataType}
isNumber={true} onValueChange={(value, items) => {
title={'Mã ngân hàng'} setAccType(items);
onChangeText={(val) => setBackNo(val)} }}
/> />
<TextField <TextField
title={'Số thẻ/tài khoản'} isNumber={true}
isNumber={true} title={'Mã ngân hàng'}
onChangeText={(val) => setAccountNo(val)} onChangeText={(val) => setBackNo(val)}
/> />
<TextField
title={'Số thẻ/tài khoản'}
isNumber={true}
onChangeText={(val) => setAccountNo(val)}
/>
<View style={styles.btnSend}> <View style={styles.btnSend}>
<Button title={'Xác minh'} onClick={onPress} /> <Button title={'Xác minh'} onClick={onPress} />
</View>
</View> </View>
</View> </ScrollView>
</ScrollView> </TouchableWithoutFeedback>
</KeyboardAvoidingView> </KeyboardAvoidingView>
); );
}; };
......
...@@ -9,6 +9,8 @@ import { ...@@ -9,6 +9,8 @@ import {
KeyboardAvoidingView, KeyboardAvoidingView,
ScrollView, ScrollView,
Platform, Platform,
TouchableWithoutFeedback,
Keyboard,
} from 'react-native'; } from 'react-native';
import R from '../../../assets/R'; import R from '../../../assets/R';
import moment from 'moment'; import moment from 'moment';
...@@ -47,46 +49,51 @@ const GeneralInfor = (props) => { ...@@ -47,46 +49,51 @@ const GeneralInfor = (props) => {
behavior={Platform.Os === 'ios' ? 'padding' : 'height'} behavior={Platform.Os === 'ios' ? 'padding' : 'height'}
style={{flex: 1}} style={{flex: 1}}
keyboardVerticalOffset={-50}> keyboardVerticalOffset={-50}>
<ScrollView showsVerticalScrollIndicator={false}> <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
<View style={{flex: 1, paddingHorizontal: 10, paddingTop: 10}}> <ScrollView showsVerticalScrollIndicator={false}>
<View style={{flexDirection: 'row'}}> <View style={{flex: 1, paddingHorizontal: 10, paddingTop: 10}}>
<View style={{flex: 1}}> <View style={{flexDirection: 'row'}}>
<TextField <View style={{flex: 1}}>
title={'Họ và tên đệm'} <TextField
onChangeText={(val) => setLastName(val)} title={'Họ và tên đệm'}
/> onChangeText={(val) => setLastName(val)}
</View> />
<View style={{width: 20}} /> </View>
<View style={{flex: 1}}> <View style={{width: 20}} />
<TextField <View style={{flex: 1}}>
title={'Tên'} <TextField
onChangeText={(val) => setFirstName(val)} title={'Tên'}
/> onChangeText={(val) => setFirstName(val)}
/>
</View>
</View> </View>
</View> <TextField
<TextField isNumber={true}
isNumber={true} title={'Số điện thoại'}
title={'Số điện thoại'} onChangeText={(val) => setPhone(val)}
onChangeText={(val) => setPhone(val)} />
/> <PickerDate
<PickerDate value={birth}
value={birth} onValueChange={(val) => {
onValueChange={(val) => { setBirth(val);
setBirth(val); }}
}} title={'Ngày sinh'}
title={'Ngày sinh'} />
/>
<TextMulti title={'Địa chỉ'} onChangeText={(val) => setAdress(val)} /> <TextMulti
<TouchableOpacity onPress={onNextPress} style={styles.btnNext}> title={'Địa chỉ'}
<Image onChangeText={(val) => setAdress(val)}
style={{width: 30, height: 30}}
source={R.images.iconRight1}
/> />
</TouchableOpacity> <TouchableOpacity onPress={onNextPress} style={styles.btnNext}>
<View style={{height: 100}} /> <Image
</View> style={{width: 30, height: 30}}
</ScrollView> source={R.images.iconRight1}
/>
</TouchableOpacity>
<View style={{height: 100}} />
</View>
</ScrollView>
</TouchableWithoutFeedback>
</KeyboardAvoidingView> </KeyboardAvoidingView>
); );
}; };
......
...@@ -153,28 +153,29 @@ const Profile = (props) => { ...@@ -153,28 +153,29 @@ const Profile = (props) => {
behavior={Platform.Os === 'ios' ? 'padding' : 'height'} behavior={Platform.Os === 'ios' ? 'padding' : 'height'}
style={{flex: 1}} style={{flex: 1}}
keyboardVerticalOffset={-50}> keyboardVerticalOffset={-50}>
<ScrollView style={{flex: 1}} showsVerticalScrollIndicator={false}> <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
<View <ScrollView style={{flex: 1}} showsVerticalScrollIndicator={false}>
style={{ <View
flex: 1,
paddingHorizontal: 10,
paddingTop: 10,
}}>
<Text
style={{ style={{
fontSize: getFontXD(42), flex: 1,
color: R.colors.color777, paddingHorizontal: 10,
paddingTop: 10,
}}> }}>
Loi th <Text
</Text> style={{
<PickerItem fontSize: getFontXD(42),
width={width - 20} color: R.colors.color777,
data={dataType} }}>
onValueChange={(value, items) => { Loi th
setType(items); </Text>
}} <PickerItem
/> width={width - 20}
{/* data={dataType}
onValueChange={(value, items) => {
setType(items);
}}
/>
{/*
<TextField <TextField
isNumber={true} isNumber={true}
title={'Số thẻ'} title={'Số thẻ'}
...@@ -185,31 +186,32 @@ const Profile = (props) => { ...@@ -185,31 +186,32 @@ const Profile = (props) => {
onValueChange={(val) => setDate_range(val)} onValueChange={(val) => setDate_range(val)}
title={'Ngày cấp'} title={'Ngày cấp'}
/> */} /> */}
<View <View
style={{ style={{
flexDirection: 'row', flexDirection: 'row',
justifyContent: 'space-between', justifyContent: 'space-between',
flexWrap: 'wrap', flexWrap: 'wrap',
flex: 1, flex: 1,
}}> }}>
<PickerImgUni <PickerImgUni
onSelectImg={(path) => setUrlFont(path)} onSelectImg={(path) => setUrlFont(path)}
title={'Ảnh mặt trước CMND'} title={'Ảnh mặt trước CMND'}
/> />
<PickerImgUni <PickerImgUni
onSelectImg={(path) => setUrlBack(path)} onSelectImg={(path) => setUrlBack(path)}
title={'Ảnh mặt sau CMND'} title={'Ảnh mặt sau CMND'}
/> />
<PickerImgUni <PickerImgUni
onSelectImg={(path) => setUrlSign(path)} onSelectImg={(path) => setUrlSign(path)}
title={'Ảnh chữ ký'} title={'Ảnh chữ ký'}
/> />
</View>
</View> </View>
</ScrollView>
<View style={styles.btnSend}>
<Button title={'Xác minh'} onClick={onPress} />
</View> </View>
</ScrollView> </TouchableWithoutFeedback>
<View style={styles.btnSend}>
<Button title={'Xác minh'} onClick={onPress} />
</View>
</KeyboardAvoidingView> </KeyboardAvoidingView>
); );
}; };
......
...@@ -9,6 +9,8 @@ import { ...@@ -9,6 +9,8 @@ import {
KeyboardAvoidingView, KeyboardAvoidingView,
ScrollView, ScrollView,
Platform, Platform,
TouchableWithoutFeedback,
Keyboard,
} from 'react-native'; } from 'react-native';
import R from '../../../assets/R'; import R from '../../../assets/R';
import moment from 'moment'; import moment from 'moment';
...@@ -33,64 +35,66 @@ const GeneralInfor = (props) => { ...@@ -33,64 +35,66 @@ const GeneralInfor = (props) => {
behavior={Platform.Os === 'ios' ? 'padding' : 'height'} behavior={Platform.Os === 'ios' ? 'padding' : 'height'}
style={{flex: 1}} style={{flex: 1}}
keyboardVerticalOffset={-50}> keyboardVerticalOffset={-50}>
<ScrollView showsVerticalScrollIndicator={false}> <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
<View style={{flex: 1, paddingHorizontal: 10, paddingTop: 10}}> <ScrollView showsVerticalScrollIndicator={false}>
<View <View style={{flex: 1, paddingHorizontal: 10, paddingTop: 10}}>
style={{ <View
width: '100%', style={{
paddingVertical: 10, width: '100%',
flexDirection: 'row', paddingVertical: 10,
justifyContent: 'space-between', flexDirection: 'row',
alignItems: 'center', justifyContent: 'space-between',
}}> alignItems: 'center',
<View style={{flex: 1}}> }}>
<Text <View style={{flex: 1}}>
style={{ <Text
fontSize: getFontXD(42), style={{
color: R.colors.color777, fontSize: getFontXD(42),
marginBottom: 5, color: R.colors.color777,
}}> marginBottom: 5,
Trng thái }}>
</Text> Trng thái
</Text>
</View>
<View style={{flex: 1}}>{renderStatus(props.user.status)}</View>
</View> </View>
<View style={{flex: 1}}>{renderStatus(props.user.status)}</View> <View style={{flexDirection: 'row'}}>
</View> <View style={{flex: 1}}>
<View style={{flexDirection: 'row'}}> <TextField
<View style={{flex: 1}}> editable={false}
<TextField value={props.user.l_name}
editable={false} title={'Họ và tên đệm'}
value={props.user.l_name} />
title={'Họ và tên đệm'} </View>
/> <View style={{width: 20}} />
</View> <View style={{flex: 1}}>
<View style={{width: 20}} /> <TextField
<View style={{flex: 1}}> value={props.user.f_name}
<TextField editable={false}
value={props.user.f_name} title={'Tên'}
editable={false} />
title={'Tên'} </View>
/>
</View> </View>
<TextField
value={props.user.phone}
isNumber={true}
editable={false}
title={'Số điện thoại'}
/>
<PickerDate
valueString={convertDate(props.user.birthday)}
disabled={true}
title={'Ngày sinh'}
/>
<TextMulti
value={props.user.address}
editable={false}
title={'Địa chỉ'}
/>
<View style={{height: 100}} />
</View> </View>
<TextField </ScrollView>
value={props.user.phone} </TouchableWithoutFeedback>
isNumber={true}
editable={false}
title={'Số điện thoại'}
/>
<PickerDate
valueString={convertDate(props.user.birthday)}
disabled={true}
title={'Ngày sinh'}
/>
<TextMulti
value={props.user.address}
editable={false}
title={'Địa chỉ'}
/>
<View style={{height: 100}} />
</View>
</ScrollView>
</KeyboardAvoidingView> </KeyboardAvoidingView>
); );
}; };
......
...@@ -10,6 +10,8 @@ import { ...@@ -10,6 +10,8 @@ import {
ScrollView, ScrollView,
Platform, Platform,
Dimensions, Dimensions,
TouchableWithoutFeedback,
Keyboard,
} from 'react-native'; } from 'react-native';
import Button from '../../../components/Button'; import Button from '../../../components/Button';
import PickerImgUni from '../../../components/Picker/PickerImgUni'; import PickerImgUni from '../../../components/Picker/PickerImgUni';
...@@ -58,38 +60,40 @@ const Profile = (props) => { ...@@ -58,38 +60,40 @@ const Profile = (props) => {
behavior={Platform.Os === 'ios' ? 'padding' : 'height'} behavior={Platform.Os === 'ios' ? 'padding' : 'height'}
style={{flex: 1}} style={{flex: 1}}
keyboardVerticalOffset={-50}> keyboardVerticalOffset={-50}>
<ScrollView style={{flex: 1}} showsVerticalScrollIndicator={false}> <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
<View <ScrollView style={{flex: 1}} showsVerticalScrollIndicator={false}>
style={{
flex: 1,
paddingHorizontal: 10,
paddingTop: 10,
}}>
<TextField
value={renderType(props.user.card_type)}
editable={false}
title={'Loại thẻ'}
/>
<View <View
style={{ style={{
flexDirection: 'row',
justifyContent: 'space-between',
flexWrap: 'wrap',
flex: 1, flex: 1,
paddingHorizontal: 10,
paddingTop: 10,
}}> }}>
<Item <TextField
linkImg={props.user.identity_before} value={renderType(props.user.card_type)}
title={'Ảnh mặt trước CMND/CCCD'} editable={false}
/> title={'Loại thẻ'}
<Item
linkImg={props.user.identity_after}
title={'Ảnh mặt sau CMND/CCCD'}
/> />
<Item linkImg={props.user.sign_img} title={'Ảnh mặt chữ ký'} />
<View
style={{
flexDirection: 'row',
justifyContent: 'space-between',
flexWrap: 'wrap',
flex: 1,
}}>
<Item
linkImg={props.user.identity_before}
title={'Ảnh mặt trước CMND/CCCD'}
/>
<Item
linkImg={props.user.identity_after}
title={'Ảnh mặt sau CMND/CCCD'}
/>
<Item linkImg={props.user.sign_img} title={'Ảnh mặt chữ ký'} />
</View>
</View> </View>
</View> </ScrollView>
</ScrollView> </TouchableWithoutFeedback>
</KeyboardAvoidingView> </KeyboardAvoidingView>
); );
}; };
......
...@@ -6,6 +6,8 @@ import { ...@@ -6,6 +6,8 @@ import {
Platform, Platform,
SafeAreaView, SafeAreaView,
StatusBar, StatusBar,
TouchableWithoutFeedback,
Keyboard,
} from 'react-native'; } from 'react-native';
import HeaderAuthen from '../../components/Header/HeaderAuthen'; import HeaderAuthen from '../../components/Header/HeaderAuthen';
import {createMaterialTopTabNavigator} from '@react-navigation/material-top-tabs'; import {createMaterialTopTabNavigator} from '@react-navigation/material-top-tabs';
...@@ -21,35 +23,37 @@ const Authen = (props) => { ...@@ -21,35 +23,37 @@ const Authen = (props) => {
behavior={Platform.Os === 'ios' ? 'padding' : 'height'} behavior={Platform.Os === 'ios' ? 'padding' : 'height'}
style={{flex: 1, backgroundColor: 'white'}} style={{flex: 1, backgroundColor: 'white'}}
keyboardVerticalOffset={-50}> keyboardVerticalOffset={-50}>
<ScrollView showsVerticalScrollIndicator={false}> <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
<View style={{flex: 1}}> <ScrollView showsVerticalScrollIndicator={false}>
<HeaderAuthen /> <View style={{flex: 1}}>
<View style={{flex: 1, backgroundColor: 'white'}}> <HeaderAuthen />
<Tab.Navigator <View style={{flex: 1, backgroundColor: 'white'}}>
initialRouteName="Login" <Tab.Navigator
tabBarOptions={{ initialRouteName="Login"
activeTintColor: '#0045C8', tabBarOptions={{
labelStyle: {fontSize: getFontXD(42), fontWeight: '700'}, activeTintColor: '#0045C8',
style: { labelStyle: {fontSize: getFontXD(42), fontWeight: '700'},
justifyContent: 'center', style: {
marginHorizontal: 40, justifyContent: 'center',
elevation: 0, marginHorizontal: 40,
}, elevation: 0,
}}> },
<Tab.Screen }}>
name="LOGIN" <Tab.Screen
component={Login} name="LOGIN"
options={{tabBarLabel: 'Đăng nhập'}} component={Login}
/> options={{tabBarLabel: 'Đăng nhập'}}
<Tab.Screen />
name="REGISTOR" <Tab.Screen
component={Registor} name="REGISTOR"
options={{tabBarLabel: 'Đăng ký'}} component={Registor}
/> options={{tabBarLabel: 'Đăng ký'}}
</Tab.Navigator> />
</Tab.Navigator>
</View>
</View> </View>
</View> </ScrollView>
</ScrollView> </TouchableWithoutFeedback>
</KeyboardAvoidingView> </KeyboardAvoidingView>
); );
}; };
......
...@@ -10,6 +10,8 @@ import { ...@@ -10,6 +10,8 @@ import {
TouchableOpacity, TouchableOpacity,
ImageBackground, ImageBackground,
ScrollView, ScrollView,
TouchableWithoutFeedback,
Keyboard,
} from 'react-native'; } from 'react-native';
import HeaderBack from '../../components/Header/HeaderBack'; import HeaderBack from '../../components/Header/HeaderBack';
import RadioForm, { import RadioForm, {
...@@ -58,95 +60,100 @@ const FeedbackView = (props) => { ...@@ -58,95 +60,100 @@ const FeedbackView = (props) => {
behavior={Platform.Os === 'ios' ? 'padding' : 'height'} behavior={Platform.Os === 'ios' ? 'padding' : 'height'}
style={{flex: 1}} style={{flex: 1}}
keyboardVerticalOffset={-50}> keyboardVerticalOffset={-50}>
<View style={{flex: 1}}> <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
<HeaderBack isWhite={true} title={'GỬI FEEDBACK'} /> <View style={{flex: 1}}>
<View style={styles.container}> <HeaderBack isWhite={true} title={'GỬI FEEDBACK'} />
<Text style={styles.txt}>Đánh giá dch v ca DCV Invest</Text> <View style={styles.container}>
<Text style={styles.txt}>Đánh giá dch v ca DCV Invest</Text>
<RadioForm animation={true}> <RadioForm animation={true}>
{radio_props.map((obj, i) => ( {radio_props.map((obj, i) => (
<RadioButton labelHorizontal={true} key={i}> <RadioButton labelHorizontal={true} key={i}>
<RadioButtonInput <RadioButtonInput
obj={obj} obj={obj}
index={i} index={i}
isSelected={isSelected === i} isSelected={isSelected === i}
onPress={onPress} onPress={onPress}
r r
borderWidth={1} borderWidth={1}
buttonColor={isSelected === i ? '#1473E6' : '#C5C5C5'} buttonColor={isSelected === i ? '#1473E6' : '#C5C5C5'}
buttonSize={10} buttonSize={10}
buttonOuterSize={18} buttonOuterSize={18}
buttonStyle={{marginLeft: 20, marginVertical: 10}} buttonStyle={{marginLeft: 20, marginVertical: 10}}
/> />
<RadioButtonLabel <RadioButtonLabel
obj={obj} obj={obj}
index={i} index={i}
labelColor={'#001C51'} labelColor={'#001C51'}
onPress={onPress} onPress={onPress}
labelStyle={{fontSize: 16, paddingLeft: 16}} labelStyle={{fontSize: 16, paddingLeft: 16}}
/> />
</RadioButton> </RadioButton>
))} ))}
</RadioForm> </RadioForm>
<View style={styles.footer}> <View style={styles.footer}>
<TextInput <TextInput
style={styles.txtInput} style={styles.txtInput}
placeholderTextColor={R.colors.placeHolder} placeholderTextColor={R.colors.placeHolder}
multiline={true} multiline={true}
placeholder={'Hãy chia sẻ cảm nhận về dịch vụ nhé'} placeholder={'Hãy chia sẻ cảm nhận về dịch vụ nhé'}
onChangeText={(val) => setTxtInput(val)} onChangeText={(val) => setTxtInput(val)}
/> />
<View <View
style={{ style={{
borderWidth: 1, borderWidth: 1,
borderStyle: 'dashed', borderStyle: 'dashed',
borderColor: '#CBCBCB', borderColor: '#CBCBCB',
}} }}
/> />
<View style={styles.picker}> <View style={styles.picker}>
{imageAdd.length > 0 ? ( {imageAdd.length > 0 ? (
<ScrollView showsHorizontalScrollIndicator={false} horizontal> <ScrollView showsHorizontalScrollIndicator={false} horizontal>
{imageAdd.map((e, index) => ( {imageAdd.map((e, index) => (
<View key={index} style={styles.imageButton}> <View key={index} style={styles.imageButton}>
<ImageBackground <ImageBackground
imageStyle={{ imageStyle={{
width: WIDTHXD(330), width: WIDTHXD(330),
height: HEIGHTXD(250), height: HEIGHTXD(250),
}} }}
style={{
width: WIDTHXD(330),
height: HEIGHTXD(250),
}}
source={{uri: e}}>
<TouchableOpacity
style={{ style={{
flexDirection: 'row', width: WIDTHXD(330),
justifyContent: 'flex-end', height: HEIGHTXD(250),
marginTop: -10,
marginRight: -10,
}} }}
onPress={() => onClickClose(index)}> source={{uri: e}}>
<Image <TouchableOpacity
style={{height: 30, width: 30}} style={{
source={R.images.iconClose} flexDirection: 'row',
/> justifyContent: 'flex-end',
</TouchableOpacity> marginTop: -10,
</ImageBackground> marginRight: -10,
</View> }}
))} onPress={() => onClickClose(index)}>
</ScrollView> <Image
) : ( style={{height: 30, width: 30}}
<PickerImg title="Tải ảnh lên" onClickImage={onClickImages} /> source={R.images.iconClose}
)} />
</TouchableOpacity>
</ImageBackground>
</View>
))}
</ScrollView>
) : (
<PickerImg title="Tải ảnh lên" onClickImage={onClickImages} />
)}
</View>
</View> </View>
</View> </View>
</View>
<View style={styles.containerBtn}> <View style={styles.containerBtn}>
<Button onClick={() => console.log('hello')} title={'Gửi feedback'} /> <Button
onClick={() => console.log('hello')}
title={'Gửi feedback'}
/>
</View>
</View> </View>
</View> </TouchableWithoutFeedback>
</KeyboardAvoidingView> </KeyboardAvoidingView>
); );
}; };
......
...@@ -11,6 +11,8 @@ import { ...@@ -11,6 +11,8 @@ import {
KeyboardAvoidingView, KeyboardAvoidingView,
ScrollView, ScrollView,
Platform, Platform,
TouchableWithoutFeedback,
Keyboard,
} from 'react-native'; } from 'react-native';
import R from '../../../../assets/R'; import R from '../../../../assets/R';
import RadioForm, { import RadioForm, {
...@@ -49,75 +51,77 @@ const GeneralInfor = (props) => { ...@@ -49,75 +51,77 @@ const GeneralInfor = (props) => {
behavior={Platform.Os === 'ios' ? 'padding' : 'height'} behavior={Platform.Os === 'ios' ? 'padding' : 'height'}
style={{flex: 1}} style={{flex: 1}}
keyboardVerticalOffset={-500}> keyboardVerticalOffset={-500}>
<ScrollView style={{flex: 1}} showsVerticalScrollIndicator={false}> <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
<View style={styles.container}> <ScrollView style={{flex: 1}} showsVerticalScrollIndicator={false}>
<TextField <View style={styles.container}>
value={props.user.fullname} <TextField
editable={false} value={props.user.fullname}
title={'Họ và tên'} editable={false}
onChangeText={(val) => console.log(val)} title={'Họ và tên'}
/> onChangeText={(val) => console.log(val)}
<TextField />
title={'Điện thoại'} <TextField
editable={false} title={'Điện thoại'}
value={props.user.phone} editable={false}
onChangeText={(val) => console.log(val)} value={props.user.phone}
/> onChangeText={(val) => console.log(val)}
/>
<TextField <TextField
editable={false} editable={false}
title={'Email'} title={'Email'}
value={props.user.email} value={props.user.email}
onChangeText={(val) => console.log(val)} onChangeText={(val) => console.log(val)}
/> />
{/* {/*
<TextInput <TextInput
style={styles.customTxt} style={styles.customTxt}
onChangeText={(val) => console.log(val)} onChangeText={(val) => console.log(val)}
placeholder="0000" placeholder="0000"
/> */} /> */}
<Text style={styles.txtTitle}>Gii tính</Text> <Text style={styles.txtTitle}>Gii tính</Text>
<RadioForm <RadioForm
radio_props={radio_props} radio_props={radio_props}
labelStyle={{fontSize: getFontXD(42)}} labelStyle={{fontSize: getFontXD(42)}}
formHorizontal={true} formHorizontal={true}
style={styles.row} style={styles.row}
initial={0} initial={0}
onPress={(value) => { onPress={(value) => {
setAccount({value: value}); setAccount({value: value});
}} }}
/> />
<View style={styles.status}> <View style={styles.status}>
<Text style={styles.txtTitle}>Trng thái</Text> <Text style={styles.txtTitle}>Trng thái</Text>
{renderStatus(props.user.status)} {renderStatus(props.user.status)}
</View> </View>
<PickerDate <PickerDate
valueString={converStringToDate(props.user.birthday)} valueString={converStringToDate(props.user.birthday)}
title={'Ngày sinh'} title={'Ngày sinh'}
disabled={true} disabled={true}
/> />
<TextMulti <TextMulti
onChangeText={(val) => consoele.log(val)} onChangeText={(val) => consoele.log(val)}
value={props.user.address} value={props.user.address}
editable={false} editable={false}
title={'Địa chỉ'} title={'Địa chỉ'}
/> />
<View style={{height: 40}} /> <View style={{height: 40}} />
<View style={{justifyContent: 'center', alignItems: 'center'}}> <View style={{justifyContent: 'center', alignItems: 'center'}}>
{/* <TouchableOpacity {/* <TouchableOpacity
onPress={() => console.log('Hello')} onPress={() => console.log('Hello')}
style={styles.btn}> style={styles.btn}>
<Text style={styles.txtBtn}>Cập nhật</Text> <Text style={styles.txtBtn}>Cập nhật</Text>
</TouchableOpacity> */} </TouchableOpacity> */}
</View>
</View> </View>
</View> </ScrollView>
</ScrollView> </TouchableWithoutFeedback>
</KeyboardAvoidingView> </KeyboardAvoidingView>
); );
}; };
......
...@@ -7,6 +7,11 @@ import { ...@@ -7,6 +7,11 @@ import {
Dimensions, Dimensions,
TouchableOpacity, TouchableOpacity,
Alert, Alert,
ScrollView,
KeyboardAvoidingView,
Platform,
TouchableWithoutFeedback,
Keyboard,
} from 'react-native'; } from 'react-native';
import {connect} from 'react-redux'; import {connect} from 'react-redux';
import R from '../../assets/R'; import R from '../../assets/R';
...@@ -85,43 +90,55 @@ const AddMethodPay = (props) => { ...@@ -85,43 +90,55 @@ const AddMethodPay = (props) => {
}; };
return ( return (
<View style={{flex: 1}}> <KeyboardAvoidingView
<HeaderBack title={'Thêm phương thức thanh toán'} /> behavior={Platform.Os === 'ios' ? 'padding' : 'height'}
<View style={styles.container}> style={{flex: 1}}
<Text style={styles.txtTitle}>Chn ngân hàng </Text> keyboardVerticalOffset={-50}>
<PickerItem <TouchableWithoutFeedback onPress={Keyboard.dismiss}>
value={bank_id} <View style={{flex: 1}}>
data={data} <HeaderBack title={'Thêm phương thức thanh toán'} />
onValueChange={(value, items) => { <View style={styles.container}>
setBankID(items); <View style={{flex: 1}}>
}} <Text style={styles.txtTitle}>Chn ngân hàng </Text>
/> <PickerItem
<TextField value={bank_id}
onChangeText={(val) => setBankName(val)} data={data}
title={'Chi nhánh'} onValueChange={(value, items) => {
/> setBankID(items);
}}
/>
<TextField
onChangeText={(val) => setBankName(val)}
title={'Chi nhánh'}
/>
<TextField <TextField
onChangeText={(val) => setAccountName(val)} onChangeText={(val) => setAccountName(val)}
title={'Tên chủ tài khoản'} title={'Tên chủ tài khoản'}
/> />
<TextField <TextField
onChangeText={(val) => setAccountNo(val)} onChangeText={(val) => setAccountNo(val)}
title={'Số tài khoản ngân hàng'} title={'Số tài khoản ngân hàng'}
isNumber={true} isNumber={true}
/> />
</View> </View>
<TouchableOpacity onPress={onLick} style={styles.btn}> <View style={{justifyContent: 'center', alignItems: 'center'}}>
<Text style={styles.txtAdd}>Thêm</Text> <TouchableOpacity onPress={onLick} style={styles.btn}>
</TouchableOpacity> <Text style={styles.txtAdd}>Thêm</Text>
</View> </TouchableOpacity>
</View>
</View>
</View>
</TouchableWithoutFeedback>
</KeyboardAvoidingView>
); );
}; };
const styles = StyleSheet.create({ const styles = StyleSheet.create({
container: { container: {
paddingHorizontal: 20, paddingHorizontal: 10,
paddingTop: 10, paddingTop: 10,
flex: 1,
}, },
btn: { btn: {
...@@ -131,9 +148,7 @@ const styles = StyleSheet.create({ ...@@ -131,9 +148,7 @@ const styles = StyleSheet.create({
alignItems: 'center', alignItems: 'center',
backgroundColor: R.colors.main, backgroundColor: R.colors.main,
borderRadius: 5, borderRadius: 5,
position: 'absolute', marginBottom: 10,
bottom: 30,
right: width / 2 - 150 / 2,
}, },
txtAdd: { txtAdd: {
color: R.colors.white, color: R.colors.white,
......
...@@ -6,22 +6,22 @@ import {useNavigation} from '@react-navigation/native'; ...@@ -6,22 +6,22 @@ import {useNavigation} from '@react-navigation/native';
const MethodPay = (props) => { const MethodPay = (props) => {
const [data, setData] = useState([]); const [data, setData] = useState([]);
const [isRefresh, setRefresh] = useState(true); const [isRefresh, setRefresh] = useState(false);
const navigation = useNavigation();
useEffect(() => { useEffect(() => {
const unsubscribe = navigation.addListener('focus', () => { getData();
getData(); }, []);
});
return unsubscribe; const onRefresh = () => {
}, [navigation]); getData();
};
const getData = async () => { const getData = async () => {
setRefresh(true);
const res = await getListWidthDraw({ const res = await getListWidthDraw({
platform: Platform.OS, platform: Platform.OS,
}); });
setRefresh(false);
if (res.data.code == 200 && res.data.data) { if (res.data.code == 200 && res.data.data) {
setData(res.data.data); setData(res.data.data);
} else { } else {
...@@ -29,7 +29,13 @@ const MethodPay = (props) => { ...@@ -29,7 +29,13 @@ const MethodPay = (props) => {
} }
}; };
return <MethodPayView listMethod={data} />; return (
<MethodPayView
onRefresh={onRefresh}
listMethod={data}
isRefresh={isRefresh}
/>
);
}; };
export default MethodPay; export default MethodPay;
...@@ -39,7 +39,6 @@ const MethodPayDetail = (props) => { ...@@ -39,7 +39,6 @@ const MethodPayDetail = (props) => {
const onUpdate = async () => { const onUpdate = async () => {
const titles = ['chi nhánh', 'chủ tài khoản', 'số tài khoản ngân hàng']; const titles = ['chi nhánh', 'chủ tài khoản', 'số tài khoản ngân hàng'];
const index = checkFormatArray([branch_name, account_name, account_no]); const index = checkFormatArray([branch_name, account_name, account_no]);
console.log('Index', index);
if (index === true) { if (index === true) {
if ( if (
branch_name != params.branch_name || branch_name != params.branch_name ||
......
...@@ -11,15 +11,19 @@ import {ADDMETHODPAY} from '../../routers/ScreenNames'; ...@@ -11,15 +11,19 @@ import {ADDMETHODPAY} from '../../routers/ScreenNames';
const MethodPayView = (props) => { const MethodPayView = (props) => {
const navigate = useNavigation(); const navigate = useNavigation();
const {isRefresh, listMethod, onRefresh} = props;
return ( return (
<View style={{flex: 1}}> <View style={{flex: 1}}>
<HeaderBack title={'Cài đặt phương thức thanh toán'} /> <HeaderBack title={'Cài đặt phương thức thanh toán'} />
<View style={{flex: 1}}> <View style={{flex: 1}}>
<FlatList <FlatList
keyExtractor={(item) => item.id} keyExtractor={(item) => item.method}
showsVerticalScrollIndicator={false} showsVerticalScrollIndicator={false}
refreshing={isRefresh}
onRefresh={onRefresh}
onEndReachedThreshold={0.01} onEndReachedThreshold={0.01}
data={props.listMethod} data={listMethod}
renderItem={({item}) => <Item item={item} />} renderItem={({item}) => <Item item={item} />}
/> />
......
...@@ -42,7 +42,9 @@ const TextField = (props) => { ...@@ -42,7 +42,9 @@ const TextField = (props) => {
source={{uri: linkImg}} source={{uri: linkImg}}
style={{width: 50, height: HEIGHTXD(109), marginRight: 10}} style={{width: 50, height: HEIGHTXD(109), marginRight: 10}}
/> />
<Text numberOfLines={1}>{value}</Text> <Text style={{flex: 1}} numberOfLines={1}>
{value}
</Text>
</View> </View>
</View> </View>
); );
......
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