Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
InvestCustomer
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Giang Tran
InvestCustomer
Commits
bc25cc28
Commit
bc25cc28
authored
Apr 09, 2021
by
Giang Tran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix keyboard
parent
d66cf65b
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
463 additions
and
401 deletions
+463
-401
BankInfor.js
src/Screens/AccountVerification/Tab/BankInfor.js
+37
-33
GeneralInfor.js
src/Screens/AccountVerification/Tab/GeneralInfor.js
+44
-37
Profile.js
src/Screens/AccountVerification/Tab/Profile.js
+45
-43
GeneralView.js
src/Screens/AccountVerification/TabView/GeneralView.js
+59
-55
ProfileView.js
src/Screens/AccountVerification/TabView/ProfileView.js
+30
-26
Authen.js
src/Screens/Authen/Authen.js
+32
-28
FeedbackView.js
src/Screens/Feedback/FeedbackView.js
+88
-81
GeneralInfor.js
src/Screens/Menu/Profile/Tab/GeneralInfor.js
+56
-52
AddMethod.js
src/Screens/MethodPay/AddMethod.js
+48
-33
MethodPay.js
src/Screens/MethodPay/MethodPay.js
+15
-9
MethodPayDetail.js
src/Screens/MethodPay/MethodPayDetail.js
+0
-1
MethodPayView.js
src/Screens/MethodPay/MethodPayView.js
+6
-2
BankInfor.js
src/components/BankInfor.js
+3
-1
No files found.
src/Screens/AccountVerification/Tab/BankInfor.js
View file @
bc25cc28
...
...
@@ -10,6 +10,8 @@ import {
Platform
,
Dimensions
,
Alert
,
TouchableWithoutFeedback
,
Keyboard
,
}
from
'react-native'
;
import
TextField
from
'../../../components/Input/TextField'
;
import
TextMulti
from
'../../../components/Input/TextMulti'
;
...
...
@@ -120,43 +122,45 @@ const BankInfor = (props) => {
behavior
=
{
Platform
.
Os
===
'ios'
?
'padding'
:
'height'
}
style
=
{{
flex
:
1
}}
keyboardVerticalOffset
=
{
-
50
}
>
<
ScrollView
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
flex
:
1
,
paddingHorizontal
:
10
,
paddingTop
:
10
,
}}
>
<
Text
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
ScrollView
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
fontSize
:
getFontXD
(
42
),
color
:
R
.
colors
.
color777
,
flex
:
1
,
paddingHorizontal
:
10
,
paddingTop
:
10
,
}}
>
Lo
ạ
i
th
ẻ
<
/Text
>
<
PickerItem
width
=
{
width
-
20
}
data
=
{
dataType
}
onValueChange
=
{(
value
,
items
)
=>
{
setAccType
(
items
);
}}
/
>
<
TextField
isNumber
=
{
true
}
title
=
{
'Mã ngân hàng'
}
onChangeText
=
{(
val
)
=>
setBackNo
(
val
)}
/
>
<
TextField
title
=
{
'Số thẻ/tài khoản'
}
isNumber
=
{
true
}
onChangeText
=
{(
val
)
=>
setAccountNo
(
val
)}
/
>
<
Text
style
=
{{
fontSize
:
getFontXD
(
42
),
color
:
R
.
colors
.
color777
,
}}
>
Lo
ạ
i
th
ẻ
<
/Text
>
<
PickerItem
width
=
{
width
-
20
}
data
=
{
dataType
}
onValueChange
=
{(
value
,
items
)
=>
{
setAccType
(
items
);
}}
/
>
<
TextField
isNumber
=
{
true
}
title
=
{
'Mã ngân hàng'
}
onChangeText
=
{(
val
)
=>
setBackNo
(
val
)}
/
>
<
TextField
title
=
{
'Số thẻ/tài khoản'
}
isNumber
=
{
true
}
onChangeText
=
{(
val
)
=>
setAccountNo
(
val
)}
/
>
<
View
style
=
{
styles
.
btnSend
}
>
<
Button
title
=
{
'Xác minh'
}
onClick
=
{
onPress
}
/
>
<
View
style
=
{
styles
.
btnSend
}
>
<
Button
title
=
{
'Xác minh'
}
onClick
=
{
onPress
}
/
>
<
/View
>
<
/View
>
<
/View
>
<
/
ScrollView
>
<
/
Scroll
View
>
<
/
TouchableWithoutFeedback
>
<
/KeyboardAvoidingView
>
);
};
...
...
src/Screens/AccountVerification/Tab/GeneralInfor.js
View file @
bc25cc28
...
...
@@ -9,6 +9,8 @@ import {
KeyboardAvoidingView
,
ScrollView
,
Platform
,
TouchableWithoutFeedback
,
Keyboard
,
}
from
'react-native'
;
import
R
from
'../../../assets/R'
;
import
moment
from
'moment'
;
...
...
@@ -47,46 +49,51 @@ const GeneralInfor = (props) => {
behavior
=
{
Platform
.
Os
===
'ios'
?
'padding'
:
'height'
}
style
=
{{
flex
:
1
}}
keyboardVerticalOffset
=
{
-
50
}
>
<
ScrollView
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
flex
:
1
,
paddingHorizontal
:
10
,
paddingTop
:
10
}}
>
<
View
style
=
{{
flexDirection
:
'row'
}}
>
<
View
style
=
{{
flex
:
1
}}
>
<
TextField
title
=
{
'Họ và tên đệm'
}
onChangeText
=
{(
val
)
=>
setLastName
(
val
)}
/
>
<
/View
>
<
View
style
=
{{
width
:
20
}}
/
>
<
View
style
=
{{
flex
:
1
}}
>
<
TextField
title
=
{
'Tên'
}
onChangeText
=
{(
val
)
=>
setFirstName
(
val
)}
/
>
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
ScrollView
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
flex
:
1
,
paddingHorizontal
:
10
,
paddingTop
:
10
}}
>
<
View
style
=
{{
flexDirection
:
'row'
}}
>
<
View
style
=
{{
flex
:
1
}}
>
<
TextField
title
=
{
'Họ và tên đệm'
}
onChangeText
=
{(
val
)
=>
setLastName
(
val
)}
/
>
<
/View
>
<
View
style
=
{{
width
:
20
}}
/
>
<
View
style
=
{{
flex
:
1
}}
>
<
TextField
title
=
{
'Tên'
}
onChangeText
=
{(
val
)
=>
setFirstName
(
val
)}
/
>
<
/View
>
<
/View
>
<
/View
>
<
TextField
isNumber
=
{
true
}
title
=
{
'Số điện thoại'
}
onChangeText
=
{(
val
)
=>
setPhone
(
val
)}
/
>
<
PickerDate
value
=
{
birth
}
onValueChange
=
{(
val
)
=>
{
setBirth
(
val
);
}}
title
=
{
'Ngày sinh'
}
/
>
<
TextField
isNumber
=
{
true
}
title
=
{
'Số điện thoại'
}
onChangeText
=
{(
val
)
=>
setPhone
(
val
)}
/
>
<
PickerDate
value
=
{
birth
}
onValueChange
=
{(
val
)
=>
{
setBirth
(
val
);
}}
title
=
{
'Ngày sinh'
}
/
>
<
TextMulti
title
=
{
'Địa chỉ'
}
onChangeText
=
{(
val
)
=>
setAdress
(
val
)}
/
>
<
TouchableOpacity
onPress
=
{
onNextPress
}
style
=
{
styles
.
btnNext
}
>
<
Image
style
=
{{
width
:
30
,
height
:
30
}}
source
=
{
R
.
images
.
iconRight1
}
<
TextMulti
title
=
{
'Địa chỉ'
}
onChangeText
=
{(
val
)
=>
setAdress
(
val
)}
/
>
<
/TouchableOpacity
>
<
View
style
=
{{
height
:
100
}}
/
>
<
/View
>
<
/ScrollView
>
<
TouchableOpacity
onPress
=
{
onNextPress
}
style
=
{
styles
.
btnNext
}
>
<
Image
style
=
{{
width
:
30
,
height
:
30
}}
source
=
{
R
.
images
.
iconRight1
}
/
>
<
/TouchableOpacity
>
<
View
style
=
{{
height
:
100
}}
/
>
<
/View
>
<
/ScrollView
>
<
/TouchableWithoutFeedback
>
<
/KeyboardAvoidingView
>
);
};
...
...
src/Screens/AccountVerification/Tab/Profile.js
View file @
bc25cc28
...
...
@@ -153,28 +153,29 @@ const Profile = (props) => {
behavior
=
{
Platform
.
Os
===
'ios'
?
'padding'
:
'height'
}
style
=
{{
flex
:
1
}}
keyboardVerticalOffset
=
{
-
50
}
>
<
ScrollView
style
=
{{
flex
:
1
}}
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
flex
:
1
,
paddingHorizontal
:
10
,
paddingTop
:
10
,
}}
>
<
Text
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
ScrollView
style
=
{{
flex
:
1
}}
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
fontSize
:
getFontXD
(
42
),
color
:
R
.
colors
.
color777
,
flex
:
1
,
paddingHorizontal
:
10
,
paddingTop
:
10
,
}}
>
Lo
ạ
i
th
ẻ
<
/Text
>
<
PickerItem
width
=
{
width
-
20
}
data
=
{
dataType
}
onValueChange
=
{(
value
,
items
)
=>
{
setType
(
items
);
}}
/
>
{
/*
<
Text
style
=
{{
fontSize
:
getFontXD
(
42
),
color
:
R
.
colors
.
color777
,
}}
>
Lo
ạ
i
th
ẻ
<
/Text
>
<
PickerItem
width
=
{
width
-
20
}
data
=
{
dataType
}
onValueChange
=
{(
value
,
items
)
=>
{
setType
(
items
);
}}
/
>
{
/*
<TextField
isNumber={true}
title={'Số thẻ'}
...
...
@@ -185,31 +186,32 @@ const Profile = (props) => {
onValueChange={(val) => setDate_range(val)}
title={'Ngày cấp'}
/> */
}
<
View
style
=
{{
flexDirection
:
'row'
,
justifyContent
:
'space-between'
,
flexWrap
:
'wrap'
,
flex
:
1
,
}}
>
<
PickerImgUni
onSelectImg
=
{(
path
)
=>
setUrlFont
(
path
)}
title
=
{
'Ảnh mặt trước CMND'
}
/
>
<
PickerImgUni
onSelectImg
=
{(
path
)
=>
setUrlBack
(
path
)}
title
=
{
'Ảnh mặt sau CMND'
}
/
>
<
PickerImgUni
onSelectImg
=
{(
path
)
=>
setUrlSign
(
path
)}
title
=
{
'Ảnh chữ ký'
}
/
>
<
View
style
=
{{
flexDirection
:
'row'
,
justifyContent
:
'space-between'
,
flexWrap
:
'wrap'
,
flex
:
1
,
}}
>
<
PickerImgUni
onSelectImg
=
{(
path
)
=>
setUrlFont
(
path
)}
title
=
{
'Ảnh mặt trước CMND'
}
/
>
<
PickerImgUni
onSelectImg
=
{(
path
)
=>
setUrlBack
(
path
)}
title
=
{
'Ảnh mặt sau CMND'
}
/
>
<
PickerImgUni
onSelectImg
=
{(
path
)
=>
setUrlSign
(
path
)}
title
=
{
'Ảnh chữ ký'
}
/
>
<
/View
>
<
/View
>
<
/ScrollView
>
<
View
style
=
{
styles
.
btnSend
}
>
<
Button
title
=
{
'Xác minh'
}
onClick
=
{
onPress
}
/
>
<
/View
>
<
/ScrollView
>
<
View
style
=
{
styles
.
btnSend
}
>
<
Button
title
=
{
'Xác minh'
}
onClick
=
{
onPress
}
/
>
<
/View
>
<
/TouchableWithoutFeedback
>
<
/KeyboardAvoidingView
>
);
};
...
...
src/Screens/AccountVerification/TabView/GeneralView.js
View file @
bc25cc28
...
...
@@ -9,6 +9,8 @@ import {
KeyboardAvoidingView
,
ScrollView
,
Platform
,
TouchableWithoutFeedback
,
Keyboard
,
}
from
'react-native'
;
import
R
from
'../../../assets/R'
;
import
moment
from
'moment'
;
...
...
@@ -33,64 +35,66 @@ const GeneralInfor = (props) => {
behavior
=
{
Platform
.
Os
===
'ios'
?
'padding'
:
'height'
}
style
=
{{
flex
:
1
}}
keyboardVerticalOffset
=
{
-
50
}
>
<
ScrollView
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
flex
:
1
,
paddingHorizontal
:
10
,
paddingTop
:
10
}}
>
<
View
style
=
{{
width
:
'100%'
,
paddingVertical
:
10
,
flexDirection
:
'row'
,
justifyContent
:
'space-between'
,
alignItems
:
'center'
,
}}
>
<
View
style
=
{{
flex
:
1
}}
>
<
Text
style
=
{{
fontSize
:
getFontXD
(
42
),
color
:
R
.
colors
.
color777
,
marginBottom
:
5
,
}}
>
Tr
ạ
ng
th
á
i
<
/Text
>
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
ScrollView
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
flex
:
1
,
paddingHorizontal
:
10
,
paddingTop
:
10
}}
>
<
View
style
=
{{
width
:
'100%'
,
paddingVertical
:
10
,
flexDirection
:
'row'
,
justifyContent
:
'space-between'
,
alignItems
:
'center'
,
}}
>
<
View
style
=
{{
flex
:
1
}}
>
<
Text
style
=
{{
fontSize
:
getFontXD
(
42
),
color
:
R
.
colors
.
color777
,
marginBottom
:
5
,
}}
>
Tr
ạ
ng
th
á
i
<
/Text
>
<
/View
>
<
View
style
=
{{
flex
:
1
}}
>
{
renderStatus
(
props
.
user
.
status
)}
<
/View
>
<
/View
>
<
View
style
=
{{
flex
:
1
}}
>
{
renderStatus
(
props
.
user
.
status
)}
<
/View
>
<
/View
>
<
View
style
=
{{
flexDirection
:
'row'
}}
>
<
View
style
=
{{
flex
:
1
}}
>
<
TextField
editable
=
{
false
}
value
=
{
props
.
user
.
l_name
}
title
=
{
'Họ và tên đệm'
}
/
>
<
/View
>
<
View
style
=
{{
width
:
20
}}
/
>
<
View
style
=
{{
flex
:
1
}}
>
<
TextField
value
=
{
props
.
user
.
f_name
}
editable
=
{
false
}
title
=
{
'Tên'
}
/
>
<
View
style
=
{{
flexDirection
:
'row'
}}
>
<
View
style
=
{{
flex
:
1
}}
>
<
TextField
editable
=
{
false
}
value
=
{
props
.
user
.
l_name
}
title
=
{
'Họ và tên đệm'
}
/
>
<
/View
>
<
View
style
=
{{
width
:
20
}}
/
>
<
View
style
=
{{
flex
:
1
}}
>
<
TextField
value
=
{
props
.
user
.
f_name
}
editable
=
{
false
}
title
=
{
'Tên'
}
/
>
<
/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
>
<
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
>
<
/ScrollView
>
<
/ScrollView
>
<
/TouchableWithoutFeedback
>
<
/KeyboardAvoidingView
>
);
};
...
...
src/Screens/AccountVerification/TabView/ProfileView.js
View file @
bc25cc28
...
...
@@ -10,6 +10,8 @@ import {
ScrollView
,
Platform
,
Dimensions
,
TouchableWithoutFeedback
,
Keyboard
,
}
from
'react-native'
;
import
Button
from
'../../../components/Button'
;
import
PickerImgUni
from
'../../../components/Picker/PickerImgUni'
;
...
...
@@ -58,38 +60,40 @@ const Profile = (props) => {
behavior
=
{
Platform
.
Os
===
'ios'
?
'padding'
:
'height'
}
style
=
{{
flex
:
1
}}
keyboardVerticalOffset
=
{
-
50
}
>
<
ScrollView
style
=
{{
flex
:
1
}}
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
flex
:
1
,
paddingHorizontal
:
10
,
paddingTop
:
10
,
}}
>
<
TextField
value
=
{
renderType
(
props
.
user
.
card_type
)}
editable
=
{
false
}
title
=
{
'Loại thẻ'
}
/
>
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
ScrollView
style
=
{{
flex
:
1
}}
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
flexDirection
:
'row'
,
justifyContent
:
'space-between'
,
flexWrap
:
'wrap'
,
flex
:
1
,
paddingHorizontal
:
10
,
paddingTop
:
10
,
}}
>
<
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'
}
<
TextField
value
=
{
renderType
(
props
.
user
.
card_type
)}
editable
=
{
false
}
title
=
{
'Loại thẻ'
}
/
>
<
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
>
<
/
ScrollView
>
<
/
Scroll
View
>
<
/
TouchableWithoutFeedback
>
<
/KeyboardAvoidingView
>
);
};
...
...
src/Screens/Authen/Authen.js
View file @
bc25cc28
...
...
@@ -6,6 +6,8 @@ import {
Platform
,
SafeAreaView
,
StatusBar
,
TouchableWithoutFeedback
,
Keyboard
,
}
from
'react-native'
;
import
HeaderAuthen
from
'../../components/Header/HeaderAuthen'
;
import
{
createMaterialTopTabNavigator
}
from
'@react-navigation/material-top-tabs'
;
...
...
@@ -21,35 +23,37 @@ const Authen = (props) => {
behavior
=
{
Platform
.
Os
===
'ios'
?
'padding'
:
'height'
}
style
=
{{
flex
:
1
,
backgroundColor
:
'white'
}}
keyboardVerticalOffset
=
{
-
50
}
>
<
ScrollView
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderAuthen
/>
<
View
style
=
{{
flex
:
1
,
backgroundColor
:
'white'
}}
>
<
Tab
.
Navigator
initialRouteName
=
"Login"
tabBarOptions
=
{{
activeTintColor
:
'#0045C8'
,
labelStyle
:
{
fontSize
:
getFontXD
(
42
),
fontWeight
:
'700'
},
style
:
{
justifyContent
:
'center'
,
marginHorizontal
:
40
,
elevation
:
0
,
},
}}
>
<
Tab
.
Screen
name
=
"LOGIN"
component
=
{
Login
}
options
=
{{
tabBarLabel
:
'Đăng nhập'
}}
/
>
<
Tab
.
Screen
name
=
"REGISTOR"
component
=
{
Registor
}
options
=
{{
tabBarLabel
:
'Đăng ký'
}}
/
>
<
/Tab.Navigator
>
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
ScrollView
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderAuthen
/>
<
View
style
=
{{
flex
:
1
,
backgroundColor
:
'white'
}}
>
<
Tab
.
Navigator
initialRouteName
=
"Login"
tabBarOptions
=
{{
activeTintColor
:
'#0045C8'
,
labelStyle
:
{
fontSize
:
getFontXD
(
42
),
fontWeight
:
'700'
},
style
:
{
justifyContent
:
'center'
,
marginHorizontal
:
40
,
elevation
:
0
,
},
}}
>
<
Tab
.
Screen
name
=
"LOGIN"
component
=
{
Login
}
options
=
{{
tabBarLabel
:
'Đăng nhập'
}}
/
>
<
Tab
.
Screen
name
=
"REGISTOR"
component
=
{
Registor
}
options
=
{{
tabBarLabel
:
'Đăng ký'
}}
/
>
<
/Tab.Navigator
>
<
/View
>
<
/View
>
<
/View
>
<
/
ScrollView
>
<
/
Scroll
View
>
<
/
TouchableWithoutFeedback
>
<
/KeyboardAvoidingView
>
);
};
...
...
src/Screens/Feedback/FeedbackView.js
View file @
bc25cc28
...
...
@@ -10,6 +10,8 @@ import {
TouchableOpacity
,
ImageBackground
,
ScrollView
,
TouchableWithoutFeedback
,
Keyboard
,
}
from
'react-native'
;
import
HeaderBack
from
'../../components/Header/HeaderBack'
;
import
RadioForm
,
{
...
...
@@ -58,95 +60,100 @@ const FeedbackView = (props) => {
behavior
=
{
Platform
.
Os
===
'ios'
?
'padding'
:
'height'
}
style
=
{{
flex
:
1
}}
keyboardVerticalOffset
=
{
-
50
}
>
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderBack
isWhite
=
{
true
}
title
=
{
'GỬI FEEDBACK'
}
/
>
<
View
style
=
{
styles
.
container
}
>
<
Text
style
=
{
styles
.
txt
}
>
Đá
nh
gi
á
d
ị
ch
v
ụ
c
ủ
a
DCV
Invest
<
/Text
>
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderBack
isWhite
=
{
true
}
title
=
{
'GỬI FEEDBACK'
}
/
>
<
View
style
=
{
styles
.
container
}
>
<
Text
style
=
{
styles
.
txt
}
>
Đá
nh
gi
á
d
ị
ch
v
ụ
c
ủ
a
DCV
Invest
<
/Text
>
<
RadioForm
animation
=
{
true
}
>
{
radio_props
.
map
((
obj
,
i
)
=>
(
<
RadioButton
labelHorizontal
=
{
true
}
key
=
{
i
}
>
<
RadioButtonInput
obj
=
{
obj
}
index
=
{
i
}
isSelected
=
{
isSelected
===
i
}
onPress
=
{
onPress
}
r
borderWidth
=
{
1
}
buttonColor
=
{
isSelected
===
i
?
'#1473E6'
:
'#C5C5C5'
}
buttonSize
=
{
10
}
buttonOuterSize
=
{
18
}
buttonStyle
=
{{
marginLeft
:
20
,
marginVertical
:
10
}}
/
>
<
RadioButtonLabel
obj
=
{
obj
}
index
=
{
i
}
labelColor
=
{
'#001C51'
}
onPress
=
{
onPress
}
labelStyle
=
{{
fontSize
:
16
,
paddingLeft
:
16
}}
/
>
<
/RadioButton
>
))}
<
/RadioForm
>
<
RadioForm
animation
=
{
true
}
>
{
radio_props
.
map
((
obj
,
i
)
=>
(
<
RadioButton
labelHorizontal
=
{
true
}
key
=
{
i
}
>
<
RadioButtonInput
obj
=
{
obj
}
index
=
{
i
}
isSelected
=
{
isSelected
===
i
}
onPress
=
{
onPress
}
r
borderWidth
=
{
1
}
buttonColor
=
{
isSelected
===
i
?
'#1473E6'
:
'#C5C5C5'
}
buttonSize
=
{
10
}
buttonOuterSize
=
{
18
}
buttonStyle
=
{{
marginLeft
:
20
,
marginVertical
:
10
}}
/
>
<
RadioButtonLabel
obj
=
{
obj
}
index
=
{
i
}
labelColor
=
{
'#001C51'
}
onPress
=
{
onPress
}
labelStyle
=
{{
fontSize
:
16
,
paddingLeft
:
16
}}
/
>
<
/RadioButton
>
))}
<
/RadioForm
>
<
View
style
=
{
styles
.
footer
}
>
<
TextInput
style
=
{
styles
.
txtInput
}
placeholderTextColor
=
{
R
.
colors
.
placeHolder
}
multiline
=
{
true
}
placeholder
=
{
'Hãy chia sẻ cảm nhận về dịch vụ nhé'
}
onChangeText
=
{(
val
)
=>
setTxtInput
(
val
)}
/
>
<
View
style
=
{{
borderWidth
:
1
,
borderStyle
:
'dashed'
,
borderColor
:
'#CBCBCB'
,
}}
/
>
<
View
style
=
{
styles
.
picker
}
>
{
imageAdd
.
length
>
0
?
(
<
ScrollView
showsHorizontalScrollIndicator
=
{
false
}
horizontal
>
{
imageAdd
.
map
((
e
,
index
)
=>
(
<
View
key
=
{
index
}
style
=
{
styles
.
imageButton
}
>
<
ImageBackground
imageStyle
=
{{
width
:
WIDTHXD
(
330
),
height
:
HEIGHTXD
(
250
),
}}
style
=
{{
width
:
WIDTHXD
(
330
),
height
:
HEIGHTXD
(
250
),
}}
source
=
{{
uri
:
e
}}
>
<
TouchableOpacity
<
View
style
=
{
styles
.
footer
}
>
<
TextInput
style
=
{
styles
.
txtInput
}
placeholderTextColor
=
{
R
.
colors
.
placeHolder
}
multiline
=
{
true
}
placeholder
=
{
'Hãy chia sẻ cảm nhận về dịch vụ nhé'
}
onChangeText
=
{(
val
)
=>
setTxtInput
(
val
)}
/
>
<
View
style
=
{{
borderWidth
:
1
,
borderStyle
:
'dashed'
,
borderColor
:
'#CBCBCB'
,
}}
/
>
<
View
style
=
{
styles
.
picker
}
>
{
imageAdd
.
length
>
0
?
(
<
ScrollView
showsHorizontalScrollIndicator
=
{
false
}
horizontal
>
{
imageAdd
.
map
((
e
,
index
)
=>
(
<
View
key
=
{
index
}
style
=
{
styles
.
imageButton
}
>
<
ImageBackground
imageStyle
=
{{
width
:
WIDTHXD
(
330
),
height
:
HEIGHTXD
(
250
),
}}
style
=
{{
flexDirection
:
'row'
,
justifyContent
:
'flex-end'
,
marginTop
:
-
10
,
marginRight
:
-
10
,
width
:
WIDTHXD
(
330
),
height
:
HEIGHTXD
(
250
),
}}
onPress
=
{()
=>
onClickClose
(
index
)}
>
<
Image
style
=
{{
height
:
30
,
width
:
30
}}
source
=
{
R
.
images
.
iconClose
}
/
>
<
/TouchableOpacity
>
<
/ImageBackground
>
<
/View
>
))}
<
/ScrollView
>
)
:
(
<
PickerImg
title
=
"Tải ảnh lên"
onClickImage
=
{
onClickImages
}
/
>
)}
source
=
{{
uri
:
e
}}
>
<
TouchableOpacity
style
=
{{
flexDirection
:
'row'
,
justifyContent
:
'flex-end'
,
marginTop
:
-
10
,
marginRight
:
-
10
,
}}
onPress
=
{()
=>
onClickClose
(
index
)}
>
<
Image
style
=
{{
height
:
30
,
width
:
30
}}
source
=
{
R
.
images
.
iconClose
}
/
>
<
/TouchableOpacity
>
<
/ImageBackground
>
<
/View
>
))}
<
/ScrollView
>
)
:
(
<
PickerImg
title
=
"Tải ảnh lên"
onClickImage
=
{
onClickImages
}
/
>
)}
<
/View
>
<
/View
>
<
/View
>
<
/View
>
<
View
style
=
{
styles
.
containerBtn
}
>
<
Button
onClick
=
{()
=>
console
.
log
(
'hello'
)}
title
=
{
'Gửi feedback'
}
/
>
<
View
style
=
{
styles
.
containerBtn
}
>
<
Button
onClick
=
{()
=>
console
.
log
(
'hello'
)}
title
=
{
'Gửi feedback'
}
/
>
<
/View
>
<
/View
>
<
/
View
>
<
/
TouchableWithoutFeedback
>
<
/KeyboardAvoidingView
>
);
};
...
...
src/Screens/Menu/Profile/Tab/GeneralInfor.js
View file @
bc25cc28
...
...
@@ -11,6 +11,8 @@ import {
KeyboardAvoidingView
,
ScrollView
,
Platform
,
TouchableWithoutFeedback
,
Keyboard
,
}
from
'react-native'
;
import
R
from
'../../../../assets/R'
;
import
RadioForm
,
{
...
...
@@ -49,75 +51,77 @@ const GeneralInfor = (props) => {
behavior
=
{
Platform
.
Os
===
'ios'
?
'padding'
:
'height'
}
style
=
{{
flex
:
1
}}
keyboardVerticalOffset
=
{
-
500
}
>
<
ScrollView
style
=
{{
flex
:
1
}}
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{
styles
.
container
}
>
<
TextField
value
=
{
props
.
user
.
fullname
}
editable
=
{
false
}
title
=
{
'Họ và tên'
}
onChangeText
=
{(
val
)
=>
console
.
log
(
val
)}
/
>
<
TextField
title
=
{
'Điện thoại'
}
editable
=
{
false
}
value
=
{
props
.
user
.
phone
}
onChangeText
=
{(
val
)
=>
console
.
log
(
val
)}
/
>
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
ScrollView
style
=
{{
flex
:
1
}}
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{
styles
.
container
}
>
<
TextField
value
=
{
props
.
user
.
fullname
}
editable
=
{
false
}
title
=
{
'Họ và tên'
}
onChangeText
=
{(
val
)
=>
console
.
log
(
val
)}
/
>
<
TextField
title
=
{
'Điện thoại'
}
editable
=
{
false
}
value
=
{
props
.
user
.
phone
}
onChangeText
=
{(
val
)
=>
console
.
log
(
val
)}
/
>
<
TextField
editable
=
{
false
}
title
=
{
'Email'
}
value
=
{
props
.
user
.
email
}
onChangeText
=
{(
val
)
=>
console
.
log
(
val
)}
/
>
{
/*
<
TextField
editable
=
{
false
}
title
=
{
'Email'
}
value
=
{
props
.
user
.
email
}
onChangeText
=
{(
val
)
=>
console
.
log
(
val
)}
/
>
{
/*
<TextInput
style={styles.customTxt}
onChangeText={(val) => console.log(val)}
placeholder="0000"
/> */
}
<
Text
style
=
{
styles
.
txtTitle
}
>
Gi
ớ
i
t
í
nh
<
/Text
>
<
Text
style
=
{
styles
.
txtTitle
}
>
Gi
ớ
i
t
í
nh
<
/Text
>
<
RadioForm
radio_props
=
{
radio_props
}
labelStyle
=
{{
fontSize
:
getFontXD
(
42
)}}
formHorizontal
=
{
true
}
style
=
{
styles
.
row
}
initial
=
{
0
}
onPress
=
{(
value
)
=>
{
setAccount
({
value
:
value
});
}}
/
>
<
RadioForm
radio_props
=
{
radio_props
}
labelStyle
=
{{
fontSize
:
getFontXD
(
42
)}}
formHorizontal
=
{
true
}
style
=
{
styles
.
row
}
initial
=
{
0
}
onPress
=
{(
value
)
=>
{
setAccount
({
value
:
value
});
}}
/
>
<
View
style
=
{
styles
.
status
}
>
<
Text
style
=
{
styles
.
txtTitle
}
>
Tr
ạ
ng
th
á
i
<
/Text
>
{
renderStatus
(
props
.
user
.
status
)}
<
/View
>
<
View
style
=
{
styles
.
status
}
>
<
Text
style
=
{
styles
.
txtTitle
}
>
Tr
ạ
ng
th
á
i
<
/Text
>
{
renderStatus
(
props
.
user
.
status
)}
<
/View
>
<
PickerDate
valueString
=
{
converStringToDate
(
props
.
user
.
birthday
)}
title
=
{
'Ngày sinh'
}
disabled
=
{
true
}
/
>
<
PickerDate
valueString
=
{
converStringToDate
(
props
.
user
.
birthday
)}
title
=
{
'Ngày sinh'
}
disabled
=
{
true
}
/
>
<
TextMulti
onChangeText
=
{(
val
)
=>
consoele
.
log
(
val
)}
value
=
{
props
.
user
.
address
}
editable
=
{
false
}
title
=
{
'Địa chỉ'
}
/
>
<
TextMulti
onChangeText
=
{(
val
)
=>
consoele
.
log
(
val
)}
value
=
{
props
.
user
.
address
}
editable
=
{
false
}
title
=
{
'Địa chỉ'
}
/
>
<
View
style
=
{{
height
:
40
}}
/
>
<
View
style
=
{{
justifyContent
:
'center'
,
alignItems
:
'center'
}}
>
{
/* <TouchableOpacity
<
View
style
=
{{
height
:
40
}}
/
>
<
View
style
=
{{
justifyContent
:
'center'
,
alignItems
:
'center'
}}
>
{
/* <TouchableOpacity
onPress={() => console.log('Hello')}
style={styles.btn}>
<Text style={styles.txtBtn}>Cập nhật</Text>
</TouchableOpacity> */
}
<
/View
>
<
/View
>
<
/View
>
<
/
ScrollView
>
<
/
Scroll
View
>
<
/
TouchableWithoutFeedback
>
<
/KeyboardAvoidingView
>
);
};
...
...
src/Screens/MethodPay/AddMethod.js
View file @
bc25cc28
...
...
@@ -7,6 +7,11 @@ import {
Dimensions
,
TouchableOpacity
,
Alert
,
ScrollView
,
KeyboardAvoidingView
,
Platform
,
TouchableWithoutFeedback
,
Keyboard
,
}
from
'react-native'
;
import
{
connect
}
from
'react-redux'
;
import
R
from
'../../assets/R'
;
...
...
@@ -85,43 +90,55 @@ const AddMethodPay = (props) => {
};
return
(
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderBack
title
=
{
'Thêm phương thức thanh toán'
}
/
>
<
View
style
=
{
styles
.
container
}
>
<
Text
style
=
{
styles
.
txtTitle
}
>
Ch
ọ
n
ng
â
n
h
à
ng
<
/Text
>
<
PickerItem
value
=
{
bank_id
}
data
=
{
data
}
onValueChange
=
{(
value
,
items
)
=>
{
setBankID
(
items
);
}}
/
>
<
TextField
onChangeText
=
{(
val
)
=>
setBankName
(
val
)}
title
=
{
'Chi nhánh'
}
/
>
<
KeyboardAvoidingView
behavior
=
{
Platform
.
Os
===
'ios'
?
'padding'
:
'height'
}
style
=
{{
flex
:
1
}}
keyboardVerticalOffset
=
{
-
50
}
>
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderBack
title
=
{
'Thêm phương thức thanh toán'
}
/
>
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{{
flex
:
1
}}
>
<
Text
style
=
{
styles
.
txtTitle
}
>
Ch
ọ
n
ng
â
n
h
à
ng
<
/Text
>
<
PickerItem
value
=
{
bank_id
}
data
=
{
data
}
onValueChange
=
{(
value
,
items
)
=>
{
setBankID
(
items
);
}}
/
>
<
TextField
onChangeText
=
{(
val
)
=>
setBankName
(
val
)}
title
=
{
'Chi nhánh'
}
/
>
<
TextField
onChangeText
=
{(
val
)
=>
setAccountName
(
val
)}
title
=
{
'Tên chủ tài khoản'
}
/
>
<
TextField
onChangeText
=
{(
val
)
=>
setAccountNo
(
val
)}
title
=
{
'Số tài khoản ngân hàng'
}
isNumber
=
{
true
}
/
>
<
/View
>
<
TouchableOpacity
onPress
=
{
onLick
}
style
=
{
styles
.
btn
}
>
<
Text
style
=
{
styles
.
txtAdd
}
>
Th
ê
m
<
/Text
>
<
/TouchableOpacity
>
<
/View
>
<
TextField
onChangeText
=
{(
val
)
=>
setAccountName
(
val
)}
title
=
{
'Tên chủ tài khoản'
}
/
>
<
TextField
onChangeText
=
{(
val
)
=>
setAccountNo
(
val
)}
title
=
{
'Số tài khoản ngân hàng'
}
isNumber
=
{
true
}
/
>
<
/View
>
<
View
style
=
{{
justifyContent
:
'center'
,
alignItems
:
'center'
}}
>
<
TouchableOpacity
onPress
=
{
onLick
}
style
=
{
styles
.
btn
}
>
<
Text
style
=
{
styles
.
txtAdd
}
>
Th
ê
m
<
/Text
>
<
/TouchableOpacity
>
<
/View
>
<
/View
>
<
/View
>
<
/TouchableWithoutFeedback
>
<
/KeyboardAvoidingView
>
);
};
const
styles
=
StyleSheet
.
create
({
container
:
{
paddingHorizontal
:
2
0
,
paddingHorizontal
:
1
0
,
paddingTop
:
10
,
flex
:
1
,
},
btn
:
{
...
...
@@ -131,9 +148,7 @@ const styles = StyleSheet.create({
alignItems
:
'center'
,
backgroundColor
:
R
.
colors
.
main
,
borderRadius
:
5
,
position
:
'absolute'
,
bottom
:
30
,
right
:
width
/
2
-
150
/
2
,
marginBottom
:
10
,
},
txtAdd
:
{
color
:
R
.
colors
.
white
,
...
...
src/Screens/MethodPay/MethodPay.js
View file @
bc25cc28
...
...
@@ -6,22 +6,22 @@ import {useNavigation} from '@react-navigation/native';
const
MethodPay
=
(
props
)
=>
{
const
[
data
,
setData
]
=
useState
([]);
const
[
isRefresh
,
setRefresh
]
=
useState
(
true
);
const
navigation
=
useNavigation
();
const
[
isRefresh
,
setRefresh
]
=
useState
(
false
);
useEffect
(()
=>
{
const
unsubscribe
=
navigation
.
addListener
(
'focus'
,
()
=>
{
getData
();
});
getData
();
},
[]);
return
unsubscribe
;
},
[
navigation
]);
const
onRefresh
=
()
=>
{
getData
();
};
const
getData
=
async
()
=>
{
setRefresh
(
true
);
const
res
=
await
getListWidthDraw
({
platform
:
Platform
.
OS
,
});
setRefresh
(
false
);
if
(
res
.
data
.
code
==
200
&&
res
.
data
.
data
)
{
setData
(
res
.
data
.
data
);
}
else
{
...
...
@@ -29,7 +29,13 @@ const MethodPay = (props) => {
}
};
return
<
MethodPayView
listMethod
=
{
data
}
/>
;
return
(
<
MethodPayView
onRefresh
=
{
onRefresh
}
listMethod
=
{
data
}
isRefresh
=
{
isRefresh
}
/
>
);
};
export
default
MethodPay
;
src/Screens/MethodPay/MethodPayDetail.js
View file @
bc25cc28
...
...
@@ -39,7 +39,6 @@ const MethodPayDetail = (props) => {
const
onUpdate
=
async
()
=>
{
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
]);
console
.
log
(
'Index'
,
index
);
if
(
index
===
true
)
{
if
(
branch_name
!=
params
.
branch_name
||
...
...
src/Screens/MethodPay/MethodPayView.js
View file @
bc25cc28
...
...
@@ -11,15 +11,19 @@ import {ADDMETHODPAY} from '../../routers/ScreenNames';
const
MethodPayView
=
(
props
)
=>
{
const
navigate
=
useNavigation
();
const
{
isRefresh
,
listMethod
,
onRefresh
}
=
props
;
return
(
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderBack
title
=
{
'Cài đặt phương thức thanh toán'
}
/
>
<
View
style
=
{{
flex
:
1
}}
>
<
FlatList
keyExtractor
=
{(
item
)
=>
item
.
i
d
}
keyExtractor
=
{(
item
)
=>
item
.
metho
d
}
showsVerticalScrollIndicator
=
{
false
}
refreshing
=
{
isRefresh
}
onRefresh
=
{
onRefresh
}
onEndReachedThreshold
=
{
0.01
}
data
=
{
props
.
listMethod
}
data
=
{
listMethod
}
renderItem
=
{({
item
})
=>
<
Item
item
=
{
item
}
/>
}
/>
...
...
src/components/BankInfor.js
View file @
bc25cc28
...
...
@@ -42,7 +42,9 @@ const TextField = (props) => {
source
=
{{
uri
:
linkImg
}}
style
=
{{
width
:
50
,
height
:
HEIGHTXD
(
109
),
marginRight
:
10
}}
/
>
<
Text
numberOfLines
=
{
1
}
>
{
value
}
<
/Text
>
<
Text
style
=
{{
flex
:
1
}}
numberOfLines
=
{
1
}
>
{
value
}
<
/Text
>
<
/View
>
<
/View
>
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment