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
a76c9a92
Commit
a76c9a92
authored
May 06, 2021
by
Nguyễn Thị Thúy
Browse files
Options
Browse Files
Download
Plain Diff
merge dev_phase2
parents
da99951b
c0a504d5
Show whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
438 additions
and
104 deletions
+438
-104
app-release.aab
android/app/release/app-release.aab
+0
-0
AndroidManifest.xml
android/app/src/main/AndroidManifest.xml
+9
-6
colors.xml
android/app/src/main/res/values/colors.xml
+1
-1
project.pbxproj
ios/Invest.xcodeproj/project.pbxproj
+2
-2
AppDelegate.m
ios/Invest/AppDelegate.m
+29
-1
Info.plist
ios/Invest/Info.plist
+1
-1
PacketCQG.js
src/Screens/Account/PacrtCQG/PacketCQG.js
+1
-0
Item.js
src/Screens/Action/History/Item.js
+1
-1
Item.js
src/Screens/Action/Wallet/Tab/Item.js
+1
-1
WalletDeposit.js
src/Screens/Action/Wallet/WalletDeposit.js
+29
-5
WalletWithdraw.js
src/Screens/Action/Wallet/WalletWithdraw.js
+16
-7
ConfirmEmail.js
src/Screens/Authen/ConfirmEmail.js
+1
-1
Login.js
src/Screens/Authen/Login.js
+4
-3
RegisterOTP.js
src/Screens/Authen/RegisterOTP.js
+241
-0
Registor.js
src/Screens/Authen/Registor.js
+9
-26
Item.js
src/Screens/Exchange/Item.js
+4
-2
Item.js
src/Screens/Menu/Payments/Item.js
+1
-1
CQG.js
src/Screens/Menu/Profile/Tab/CQG.js
+9
-0
Item.js
src/Screens/Menu/Rose/Item.js
+4
-2
Rose.js
src/Screens/Menu/Rose/Rose.js
+0
-6
Item.js
src/Screens/MethodPay/Item.js
+3
-3
ItemBank.js
src/Screens/MethodPay/ItemBank.js
+13
-3
Item.js
src/Screens/Notification/Item.js
+1
-1
Item.js
src/Screens/Transaction/DueDate/Item.js
+1
-2
Item.js
src/Screens/Transaction/Escrow/Item.js
+1
-1
Item.js
src/Screens/Transaction/TimeTransaction/Item.js
+1
-2
Drawer.js
src/components/Header/Drawer.js
+9
-9
HeaderDrawer.js
src/components/Header/HeaderDrawer.js
+1
-2
HeaderHome.js
src/components/Header/HeaderHome.js
+10
-9
en.js
src/helper/i18/locales/en.js
+4
-3
vn.js
src/helper/i18/locales/vn.js
+2
-2
ScreenNames.js
src/routers/ScreenNames.js
+1
-0
StackNavigation.js
src/routers/StackNavigation.js
+2
-0
TabNavigation.js
src/routers/TabNavigation.js
+26
-1
No files found.
android/app/release/app-release.aab
0 → 100644
View file @
a76c9a92
File added
android/app/src/main/AndroidManifest.xml
View file @
a76c9a92
...
@@ -32,6 +32,14 @@
...
@@ -32,6 +32,14 @@
android:exported=
"true"
android:exported=
"true"
android:launchMode=
"singleTask"
android:launchMode=
"singleTask"
android:windowSoftInputMode=
"adjustResize"
>
android:windowSoftInputMode=
"adjustResize"
>
<intent-filter>
<action
android:name=
"android.intent.action.VIEW"
/>
<category
android:name=
"android.intent.category.DEFAULT"
/>
<category
android:name=
"android.intent.category.BROWSABLE"
/>
<data
android:scheme=
"appdcvinvest"
android:host=
"screen"
android:pathPrefix=
"/"
/>
</intent-filter>
</activity>
</activity>
<activity
<activity
android:name=
"com.zoontek.rnbootsplash.RNBootSplashActivity"
android:name=
"com.zoontek.rnbootsplash.RNBootSplashActivity"
...
@@ -43,12 +51,7 @@
...
@@ -43,12 +51,7 @@
</intent-filter>
</intent-filter>
<intent-filter>
<action
android:name=
"android.intent.action.VIEW"
/>
<category
android:name=
"android.intent.category.DEFAULT"
/>
<category
android:name=
"android.intent.category.BROWSABLE"
/>
<data
android:scheme=
"dcvinvest"
/>
</intent-filter>
</activity>
</activity>
...
...
android/app/src/main/res/values/colors.xml
View file @
a76c9a92
<resources>
<resources>
<color
name=
"bootsplash_background"
>
#1C6AF6
</color>
<color
name=
"bootsplash_background"
>
#1C6AF6
</color>
<color
name=
"white"
>
#
1C6AF6
</color>
<color
name=
"white"
>
#
fff
</color>
</resources>
</resources>
ios/Invest.xcodeproj/project.pbxproj
View file @
a76c9a92
...
@@ -912,7 +912,7 @@
...
@@ -912,7 +912,7 @@
);
);
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
=
1.
6
;
MARKETING_VERSION
=
1.
7
;
OTHER_LDFLAGS
=
(
OTHER_LDFLAGS
=
(
"$(inherited)"
,
"$(inherited)"
,
"-ObjC"
,
"-ObjC"
,
...
@@ -940,7 +940,7 @@
...
@@ -940,7 +940,7 @@
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
=
1.
6
;
MARKETING_VERSION
=
1.
7
;
OTHER_LDFLAGS
=
(
OTHER_LDFLAGS
=
(
"$(inherited)"
,
"$(inherited)"
,
"-ObjC"
,
"-ObjC"
,
...
...
ios/Invest/AppDelegate.m
View file @
a76c9a92
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
#import <React/RCTRootView.h>
#import <React/RCTRootView.h>
@import
Firebase
;
@import
Firebase
;
#import <React/RCTLinkingManager.h>
#import <AVFoundation/AVFoundation.h>
#import <AVFoundation/AVFoundation.h>
#import "RNBootSplash.h"
#import "RNBootSplash.h"
#if DEBUG
#if DEBUG
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
//#import <CallAppSDK/CallAppInterface.h>
//#import <CallAppSDK/CallAppInterface.h>
static
void
InitializeFlipper
(
UIApplication
*
application
)
{
static
void
InitializeFlipper
(
UIApplication
*
application
)
{
FlipperClient
*
client
=
[
FlipperClient
sharedClient
];
FlipperClient
*
client
=
[
FlipperClient
sharedClient
];
SKDescriptorMapper
*
layoutDescriptorMapper
=
[[
SKDescriptorMapper
alloc
]
initWithDefaults
];
SKDescriptorMapper
*
layoutDescriptorMapper
=
[[
SKDescriptorMapper
alloc
]
initWithDefaults
];
...
@@ -55,6 +56,33 @@ static void InitializeFlipper(UIApplication *application) {
...
@@ -55,6 +56,33 @@ static void InitializeFlipper(UIApplication *application) {
return
YES
;
return
YES
;
}
}
#import <React/RCTLinkingManager.h>
// - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
// sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
// {
// return [RCTLinkingManager application:application openURL:url
// sourceApplication:sourceApplication annotation:annotation];
// }
-
(
BOOL
)
application
:(
UIApplication
*
)
application
openURL
:(
NSURL
*
)
url
options
:(
NSDictionary
<
UIApplicationOpenURLOptionsKey
,
id
>
*
)
options
{
return
[
RCTLinkingManager
application
:
application
openURL
:
url
options
:
options
];
}
-
(
BOOL
)
application
:(
UIApplication
*
)
application
continueUserActivity
:(
NSUserActivity
*
)
userActivity
restorationHandler
:(
void
(
^
)(
NSArray
*
_Nullable
))
restorationHandler
{
return
[
RCTLinkingManager
application
:
application
continueUserActivity
:
userActivity
restorationHandler:
restorationHandler
];
}
-
(
NSURL
*
)
sourceURLForBridge
:(
RCTBridge
*
)
bridge
-
(
NSURL
*
)
sourceURLForBridge
:(
RCTBridge
*
)
bridge
{
{
#if DEBUG
#if DEBUG
...
...
ios/Invest/Info.plist
View file @
a76c9a92
...
@@ -33,7 +33,7 @@
...
@@ -33,7 +33,7 @@
<
string
>
dcv.investcustomer.vn.
linking
<
/string
>
<
string
>
dcv.investcustomer.vn.
linking
<
/string
>
<
k
e
y
>
CFBundleURLSchemes
<
/k
e
y
>
<
k
e
y
>
CFBundleURLSchemes
<
/k
e
y
>
<
a
rr
a
y
>
<
a
rr
a
y
>
<
string
>
dcvinvest
<
/string
>
<
string
>
app
dcvinvest
<
/string
>
<
/
a
rr
a
y
>
<
/
a
rr
a
y
>
<
/
d
i
c
t
>
<
/
d
i
c
t
>
<
/
a
rr
a
y
>
<
/
a
rr
a
y
>
...
...
src/Screens/Account/PacrtCQG/PacketCQG.js
View file @
a76c9a92
...
@@ -37,6 +37,7 @@ const PacketCQG = (props) => {
...
@@ -37,6 +37,7 @@ const PacketCQG = (props) => {
props
.
showLoading
();
props
.
showLoading
();
const
res
=
await
openCQG
({
packages
:
newList
});
const
res
=
await
openCQG
({
packages
:
newList
});
props
.
hideLoading
();
props
.
hideLoading
();
console
.
log
(
res
);
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
props
.
saveUserToRedux
(
res
.
data
.
data
);
props
.
saveUserToRedux
(
res
.
data
.
data
);
setTimeout
(()
=>
{
setTimeout
(()
=>
{
...
...
src/Screens/Action/History/Item.js
View file @
a76c9a92
...
@@ -91,7 +91,7 @@ const styles = StyleSheet.create({
...
@@ -91,7 +91,7 @@ const styles = StyleSheet.create({
},
},
wrapDate
:
{
wrapDate
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
padding
Horizontal
:
10
,
padding
Left
:
10
,
},
},
txt
:
{
txt
:
{
fontSize
:
getFontXD
(
36
),
fontSize
:
getFontXD
(
36
),
...
...
src/Screens/Action/Wallet/Tab/Item.js
View file @
a76c9a92
...
@@ -81,7 +81,7 @@ const styles = StyleSheet.create({
...
@@ -81,7 +81,7 @@ const styles = StyleSheet.create({
},
},
wrapDate
:
{
wrapDate
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
padding
Horizontal
:
10
,
padding
Left
:
10
,
},
},
txtTitle
:
{
txtTitle
:
{
fontSize
:
getFontXD
(
42
),
fontSize
:
getFontXD
(
42
),
...
...
src/Screens/Action/Wallet/WalletDeposit.js
View file @
a76c9a92
...
@@ -6,6 +6,11 @@ import {
...
@@ -6,6 +6,11 @@ import {
Dimensions
,
Dimensions
,
TouchableOpacity
,
TouchableOpacity
,
Alert
,
Alert
,
TouchableWithoutFeedback
,
Keyboard
,
KeyboardAvoidingView
,
Platform
,
ScrollView
,
}
from
'react-native'
;
}
from
'react-native'
;
import
R
from
'../../../assets/R'
;
import
R
from
'../../../assets/R'
;
import
HeaderBack
from
'../../../components/Header/HeaderBack'
;
import
HeaderBack
from
'../../../components/Header/HeaderBack'
;
...
@@ -32,7 +37,10 @@ const WalletDeposit = (props) => {
...
@@ -32,7 +37,10 @@ const WalletDeposit = (props) => {
const
navigate
=
useNavigation
();
const
navigate
=
useNavigation
();
const
onClick
=
async
()
=>
{
const
onClick
=
async
()
=>
{
const
titles
=
[
I18n
.
t
(
'AmountOfMoney'
).
toLowerCase
(),
I18n
.
t
(
'Note'
).
toLowerCase
()];
const
titles
=
[
I18n
.
t
(
'AmountOfMoney'
).
toLowerCase
(),
I18n
.
t
(
'Note'
).
toLowerCase
(),
];
const
index
=
checkFormatArray
([
amount
,
notes
]);
const
index
=
checkFormatArray
([
amount
,
notes
]);
if
(
index
===
true
)
{
if
(
index
===
true
)
{
...
@@ -63,8 +71,14 @@ const WalletDeposit = (props) => {
...
@@ -63,8 +71,14 @@ const WalletDeposit = (props) => {
}
}
};
};
return
(
return
(
<
KeyboardAvoidingView
behavior
=
{
Platform
.
Os
===
'ios'
?
'padding'
:
'height'
}
style
=
{{
flex
:
1
,
backgroundColor
:
'white'
}}
keyboardVerticalOffset
=
{
-
50
}
>
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
View
style
=
{{
flex
:
1
}}
>
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderBack
title
=
{
'InvestmentDeposit'
}
/
>
<
HeaderBack
title
=
{
'InvestmentDeposit'
}
/
>
<
ScrollView
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
wrapTop
}
>
<
View
style
=
{
styles
.
wrapTop
}
>
<
View
style
=
{
styles
.
itemTop
}
>
<
View
style
=
{
styles
.
itemTop
}
>
...
@@ -95,13 +109,26 @@ const WalletDeposit = (props) => {
...
@@ -95,13 +109,26 @@ const WalletDeposit = (props) => {
title
=
{
I18n
.
t
(
'AmountOfMoney'
)}
title
=
{
I18n
.
t
(
'AmountOfMoney'
)}
value
=
{
amount
}
value
=
{
amount
}
/
>
/
>
<
TextMulti
onChangeText
=
{(
val
)
=>
setNotes
(
val
)}
title
=
{
I18n
.
t
(
'Note'
)}
/
>
<
TextMulti
onChangeText
=
{(
val
)
=>
setNotes
(
val
)}
title
=
{
I18n
.
t
(
'Note'
)}
/
>
<
/View
>
<
/View
>
<
/View
>
<
/View
>
<
/ScrollView
>
<
View
style
=
{{
paddingVertical
:
10
,
justifyContent
:
'center'
,
alignItems
:
'center'
,
}}
>
<
TouchableOpacity
onPress
=
{
onClick
}
style
=
{
styles
.
btnSend
}
>
<
TouchableOpacity
onPress
=
{
onClick
}
style
=
{
styles
.
btnSend
}
>
<
Text
style
=
{
styles
.
txtSend
}
>
{
I18n
.
t
(
'Deposit'
)}
<
/Text
>
<
Text
style
=
{
styles
.
txtSend
}
>
{
I18n
.
t
(
'Deposit'
)}
<
/Text
>
<
/TouchableOpacity
>
<
/TouchableOpacity
>
<
/View
>
<
/View
>
<
/View
>
<
/TouchableWithoutFeedback
>
<
/KeyboardAvoidingView
>
);
);
};
};
...
@@ -147,9 +174,6 @@ const styles = StyleSheet.create({
...
@@ -147,9 +174,6 @@ const styles = StyleSheet.create({
fontWeight
:
'bold'
,
fontWeight
:
'bold'
,
},
},
btnSend
:
{
btnSend
:
{
position
:
'absolute'
,
bottom
:
30
,
right
:
width
/
2
-
70
,
width
:
140
,
width
:
140
,
height
:
40
,
height
:
40
,
backgroundColor
:
R
.
colors
.
main
,
backgroundColor
:
R
.
colors
.
main
,
...
...
src/Screens/Action/Wallet/WalletWithdraw.js
View file @
a76c9a92
...
@@ -10,6 +10,7 @@ import {
...
@@ -10,6 +10,7 @@ import {
TouchableWithoutFeedback
,
TouchableWithoutFeedback
,
Keyboard
,
Keyboard
,
KeyboardAvoidingView
,
KeyboardAvoidingView
,
ScrollView
,
}
from
'react-native'
;
}
from
'react-native'
;
import
R
from
'../../../assets/R'
;
import
R
from
'../../../assets/R'
;
import
HeaderBack
from
'../../../components/Header/HeaderBack'
;
import
HeaderBack
from
'../../../components/Header/HeaderBack'
;
...
@@ -61,9 +62,8 @@ const WalletWithdraw = (props) => {
...
@@ -61,9 +62,8 @@ const WalletWithdraw = (props) => {
});
});
if
(
res
.
data
.
code
==
200
&&
res
.
data
.
data
)
{
if
(
res
.
data
.
code
==
200
&&
res
.
data
.
data
)
{
if
(
res
.
data
.
data
.
length
==
0
)
{
if
(
res
.
data
.
data
.
length
==
0
)
{
confirmAlert
(
confirmAlert
(
I18n
.
t
(
'SettingPaymentMethodConfirm'
),
()
=>
I18n
.
t
(
'SettingPaymentMethodConfirm'
),
navigate
.
navigate
(
ADDMETHODPAY
),
()
=>
navigate
.
navigate
(
ADDMETHODPAY
),
);
);
}
else
{
}
else
{
const
newList
=
res
.
data
.
data
.
map
((
e
)
=>
{
const
newList
=
res
.
data
.
data
.
map
((
e
)
=>
{
...
@@ -77,7 +77,10 @@ const WalletWithdraw = (props) => {
...
@@ -77,7 +77,10 @@ const WalletWithdraw = (props) => {
};
};
const
onPressWithdraw
=
async
()
=>
{
const
onPressWithdraw
=
async
()
=>
{
const
titles
=
[
I18n
.
t
(
'BeneficiaryAccount'
),
I18n
.
t
(
'AmountOfMoney'
).
toLowerCase
()];
const
titles
=
[
I18n
.
t
(
'BeneficiaryAccount'
),
I18n
.
t
(
'AmountOfMoney'
).
toLowerCase
(),
];
const
index
=
checkFormatArray
([
type
,
amount
]);
const
index
=
checkFormatArray
([
type
,
amount
]);
...
@@ -120,6 +123,7 @@ const WalletWithdraw = (props) => {
...
@@ -120,6 +123,7 @@ const WalletWithdraw = (props) => {
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
TouchableWithoutFeedback
onPress
=
{
Keyboard
.
dismiss
}
>
<
View
style
=
{{
flex
:
1
}}
>
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderBack
title
=
{
'Withdraw'
}
/
>
<
HeaderBack
title
=
{
'Withdraw'
}
/
>
<
ScrollView
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
wrapTop
}
>
<
View
style
=
{
styles
.
wrapTop
}
>
<
View
style
=
{
styles
.
itemTop
}
>
<
View
style
=
{
styles
.
itemTop
}
>
...
@@ -189,10 +193,18 @@ const WalletWithdraw = (props) => {
...
@@ -189,10 +193,18 @@ const WalletWithdraw = (props) => {
/
>
/
>
<
/View
>
<
/View
>
<
/View
>
<
/View
>
<
/ScrollView
>
<
View
style
=
{{
paddingVertical
:
10
,
justifyContent
:
'center'
,
alignItems
:
'center'
,
}}
>
<
TouchableOpacity
onPress
=
{
onPressWithdraw
}
style
=
{
styles
.
btnSend
}
>
<
TouchableOpacity
onPress
=
{
onPressWithdraw
}
style
=
{
styles
.
btnSend
}
>
<
Text
style
=
{
styles
.
txtSend
}
>
{
I18n
.
t
(
'Withdraw'
)}
<
/Text
>
<
Text
style
=
{
styles
.
txtSend
}
>
{
I18n
.
t
(
'Withdraw'
)}
<
/Text
>
<
/TouchableOpacity
>
<
/TouchableOpacity
>
<
/View
>
<
/View
>
<
/View
>
<
/TouchableWithoutFeedback
>
<
/TouchableWithoutFeedback
>
<
/KeyboardAvoidingView
>
<
/KeyboardAvoidingView
>
);
);
...
@@ -240,9 +252,6 @@ const styles = StyleSheet.create({
...
@@ -240,9 +252,6 @@ const styles = StyleSheet.create({
fontWeight
:
'bold'
,
fontWeight
:
'bold'
,
},
},
btnSend
:
{
btnSend
:
{
position
:
'absolute'
,
bottom
:
30
,
right
:
width
/
2
-
70
,
width
:
140
,
width
:
140
,
height
:
40
,
height
:
40
,
backgroundColor
:
R
.
colors
.
main
,
backgroundColor
:
R
.
colors
.
main
,
...
...
src/Screens/Authen/ConfirmEmail.js
View file @
a76c9a92
...
@@ -50,7 +50,7 @@ const ConfirmEmail = (props) => {
...
@@ -50,7 +50,7 @@ const ConfirmEmail = (props) => {
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
wrap
}
>
<
View
style
=
{
styles
.
wrap
}
>
<
View
style
=
{
styles
.
containerCode
}
>
<
View
style
=
{
styles
.
containerCode
}
>
<
Text
style
=
{
styles
.
txtTitle
}
>
`
${
I18n
.
t
(
'EnterEmailRequest'
)}
:`
<
/Text
>
<
Text
style
=
{
styles
.
txtTitle
}
>
{
I18n
.
t
(
'EnterEmailRequest'
)}
<
/Text
>
<
TextInput
<
TextInput
placeholderTextColor
=
{
R
.
colors
.
placeHolder
}
placeholderTextColor
=
{
R
.
colors
.
placeHolder
}
style
=
{
styles
.
txtInput
}
style
=
{
styles
.
txtInput
}
...
...
src/Screens/Authen/Login.js
View file @
a76c9a92
...
@@ -62,7 +62,10 @@ const Login = (props) => {
...
@@ -62,7 +62,10 @@ const Login = (props) => {
};
};
const
onSubmitLogin
=
async
(
email
,
pass
)
=>
{
const
onSubmitLogin
=
async
(
email
,
pass
)
=>
{
const
titles
=
[
I18n
.
t
(
'Username'
).
toLowerCase
(),
I18n
.
t
(
'Password'
).
toLowerCase
()];
const
titles
=
[
I18n
.
t
(
'Username'
).
toLowerCase
(),
I18n
.
t
(
'Password'
).
toLowerCase
(),
];
const
index
=
checkFormatArray
([
email
,
pass
]);
const
index
=
checkFormatArray
([
email
,
pass
]);
if
(
index
===
true
)
{
if
(
index
===
true
)
{
...
@@ -110,14 +113,12 @@ const Login = (props) => {
...
@@ -110,14 +113,12 @@ const Login = (props) => {
<
InputIcon
<
InputIcon
icon
=
{
R
.
images
.
iconUser3
}
icon
=
{
R
.
images
.
iconUser3
}
title
=
{
'Email'
}
title
=
{
'Email'
}
placeholder
=
{
I18n
.
t
(
'EnterEmail'
)}
onChangeText
=
{(
val
)
=>
setEmail
(
val
)}
onChangeText
=
{(
val
)
=>
setEmail
(
val
)}
value
=
{
email
}
value
=
{
email
}
/
>
/
>
<
InputIcon
<
InputIcon
icon
=
{
R
.
images
.
iconLock
}
icon
=
{
R
.
images
.
iconLock
}
title
=
{
'Password'
}
title
=
{
'Password'
}
placeholder
=
{
I18n
.
t
(
'EnterPassword'
)}
isPassWord
=
{
true
}
isPassWord
=
{
true
}
onChangeText
=
{(
val
)
=>
setPass
(
val
)}
onChangeText
=
{(
val
)
=>
setPass
(
val
)}
value
=
{
pass
}
value
=
{
pass
}
...
...
src/Screens/Authen/RegisterOTP.js
0 → 100644
View file @
a76c9a92
import
React
,
{
Component
,
useEffect
,
useState
}
from
'react'
;
import
{
View
,
Text
,
TextInput
,
StyleSheet
,
TouchableOpacity
,
Platform
,
Alert
,
}
from
'react-native'
;
import
HeaderBack
from
'../../components/Header/HeaderBack'
;
import
{
CodeField
,
Cursor
,
useBlurOnFulfill
,
useClearByFocusCell
,
}
from
'react-native-confirmation-code-field'
;
import
{
getFontXD
,
HEIGHTXD
,
WIDTHXD
}
from
'../../Config/Functions'
;
import
R
from
'../../assets/R'
;
import
{
NEWPASSWORD
}
from
'../../routers/ScreenNames'
;
import
{
verifyOTPApi
,
registorApi
}
from
'../../apis/Functions/users'
;
import
{
useNavigation
}
from
'@react-navigation/native'
;
import
I18n
from
'../../helper/i18/i18n'
;
import
AppText
from
'../../components/AppText'
;
import
{
showLoading
,
hideLoading
}
from
'../../actions/loadingAction'
;
import
{
connect
}
from
'react-redux'
;
const
CELL_COUNT
=
4
;
const
ConfirmOTP
=
(
propsa
)
=>
{
const
[
value
,
setValue
]
=
useState
(
''
);
const
navigate
=
useNavigation
();
const
ref
=
useBlurOnFulfill
({
value
,
cellCount
:
CELL_COUNT
});
const
[
props
,
getCellOnLayoutHandler
]
=
useClearByFocusCell
({
value
,
setValue
,
});
const
confirm
=
async
()
=>
{
if
(
!
value
)
{
Alert
.
alert
(
I18n
.
t
(
'Notification'
),
I18n
.
t
(
'EnterOTPRequest'
));
}
else
if
(
value
.
length
!=
4
)
{
Alert
.
alert
(
I18n
.
t
(
'Notification'
),
I18n
.
t
(
'OTPInvalid'
));
}
else
{
propsa
.
showLoading
();
const
res
=
await
verifyOTPApi
({
platform
:
Platform
.
OS
,
receiver_name
:
propsa
.
route
.
params
.
email
,
otp
:
value
,
});
if
(
res
.
data
.
code
==
200
)
{
const
{
email
,
password
,
password_confirmation
,
phone
,
sponsor_id
,
}
=
propsa
.
route
.
params
;
let
res
;
if
(
sponsor_id
)
{
res
=
await
registorApi
({
email
,
password
,
platform
:
Platform
.
OS
,
password_confirmation
,
sponsor_id
,
phone
,
});
}
else
{
res
=
await
registorApi
({
email
,
password
,
platform
:
Platform
.
OS
,
password_confirmation
,
phone
,
});
}
propsa
.
hideLoading
();
if
(
res
.
data
.
code
==
200
&&
res
.
data
.
data
)
{
setTimeout
(()
=>
{
Alert
.
alert
(
I18n
.
t
(
'Notification'
),
I18n
.
t
(
'RegisterAccountSuccess'
),
);
navigate
.
navigate
(
'LOGIN'
);
},
500
);
}
else
{
setTimeout
(()
=>
{
Alert
.
alert
(
I18n
.
t
(
'Notification'
),
res
.
data
.
message
);
},
500
);
}
}
else
{
setTimeout
(()
=>
{
Alert
.
alert
(
I18n
.
t
(
'Notification'
),
res
.
data
.
message
);
},
500
);
}
propsa
.
hideLoading
();
}
};
return
(
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderBack
title
=
{
'VerifyOTP'
}
/
>
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{{
height
:
20
}}
/
>
<
View
style
=
{
styles
.
wrap
}
>
<
AppText
i18nKey
=
{
'Verify_code'
}
style
=
{
styles
.
txtTitle
}
/
>
<
View
style
=
{
styles
.
containerCode
}
>
<
CodeField
ref
=
{
ref
}
{...
props
}
value
=
{
value
}
onChangeText
=
{
setValue
}
cellCount
=
{
CELL_COUNT
}
rootStyle
=
{
styles
.
codeFieldRoot
}
keyboardType
=
"number-pad"
textContentType
=
"oneTimeCode"
renderCell
=
{({
index
,
symbol
,
isFocused
})
=>
(
<
View
onLayout
=
{
getCellOnLayoutHandler
(
index
)}
key
=
{
index
}
style
=
{[
styles
.
cellRoot
,
isFocused
&&
styles
.
focusCell
]}
>
<
Text
style
=
{
styles
.
cellText
}
>
{
symbol
||
(
isFocused
?
<
Cursor
/>
:
null
)}
<
/Text
>
<
/View
>
)}
/
>
<
/View
>
<
/View
>
<
/View
>
<
View
style
=
{
styles
.
footer
}
>
<
TouchableOpacity
onPress
=
{
confirm
}
style
=
{
styles
.
btn
}
>
<
AppText
i18nKey
=
{
'Continue'
}
style
=
{
styles
.
txtBtn
}
/
>
<
/TouchableOpacity
>
<
TouchableOpacity
style
=
{
styles
.
wrapFooter
}
onPress
=
{()
=>
navigate
.
goBack
()}
>
<
Text
style
=
{
styles
.
txtNote
}
>
{
I18n
.
t
(
'OTPValidFiveMinute'
)}
<
/Text
>
<
AppText
i18nKey
=
{
'Re_send'
}
style
=
{
styles
.
txtSend
}
/
>
<
/TouchableOpacity
>
<
/View
>
<
/View
>
);
};
const
styles
=
StyleSheet
.
create
({
container
:
{
flex
:
1
,
justifyContent
:
'center'
,
alignItems
:
'center'
,
paddingVertical
:
20
,
},
footer
:
{
height
:
200
,
justifyContent
:
'center'
,
alignItems
:
'center'
,
},
wrap
:
{
flex
:
1
,
paddingTop
:
30
,
alignItems
:
'center'
,
width
:
'100%'
,
paddingHorizontal
:
50
,
},
containerCode
:
{
height
:
50
,
width
:
'100%'
,
marginTop
:
30
,
},
codeFieldRoot
:
{
marginTop
:
20
,
},
focusCell
:
{
borderColor
:
'#000'
,
},
cellRoot
:
{
width
:
40
,
height
:
40
,
justifyContent
:
'center'
,
alignItems
:
'center'
,
borderBottomColor
:
'#ccc'
,
borderBottomWidth
:
1
,
},
cellText
:
{
color
:
'#000'
,
fontSize
:
36
,
textAlign
:
'center'
,
},
focusCell
:
{
borderBottomColor
:
'#007AFF'
,
borderBottomWidth
:
2
,
},
txtTitle
:
{
fontSize
:
getFontXD
(
52
),
color
:
'#979797'
,
},
btn
:
{
width
:
WIDTHXD
(
521
),
height
:
HEIGHTXD
(
120
),
borderRadius
:
15
,
backgroundColor
:
'#1C6AF6'
,
justifyContent
:
'center'
,
alignItems
:
'center'
,
},
txtBtn
:
{
color
:
R
.
colors
.
white
,
fontSize
:
getFontXD
(
52
),
textTransform
:
'uppercase'
,
},
txtSend
:
{
fontSize
:
getFontXD
(
42
),
color
:
'#1C6AF6'
,
},
wrapFooter
:
{
marginTop
:
30
,
flexDirection
:
'row'
,
alignItems
:
'center'
,
},
txtNote
:
{
color
:
'#A2A2A2'
,
fontSize
:
getFontXD
(
42
),
fontStyle
:
'italic'
,
},
});
const
mapStateToProps
=
(
state
)
=>
{
return
{};
};
export
default
connect
(
mapStateToProps
,
{
showLoading
,
hideLoading
})(
ConfirmOTP
);
src/Screens/Authen/Registor.js
View file @
a76c9a92
...
@@ -13,9 +13,10 @@ import R from '../../assets/R';
...
@@ -13,9 +13,10 @@ import R from '../../assets/R';
import
{
checkFormatArray
}
from
'../../Config/Functions'
;
import
{
checkFormatArray
}
from
'../../Config/Functions'
;
import
{
showLoading
,
hideLoading
}
from
'../../actions/loadingAction'
;
import
{
showLoading
,
hideLoading
}
from
'../../actions/loadingAction'
;
import
{
connect
}
from
'react-redux'
;
import
{
connect
}
from
'react-redux'
;
import
{
registorApi
}
from
'../../apis/Functions/users'
;
import
{
registorApi
,
getOTPApi
}
from
'../../apis/Functions/users'
;
import
I18n
from
'../../helper/i18/i18n'
;
import
I18n
from
'../../helper/i18/i18n'
;
import
AppText
from
'../../components/AppText'
;
import
AppText
from
'../../components/AppText'
;
import
{
REGISTEROTP
}
from
'../../routers/ScreenNames'
;
const
Registor
=
(
props
)
=>
{
const
Registor
=
(
props
)
=>
{
const
{
navigation
}
=
props
;
const
{
navigation
}
=
props
;
...
@@ -41,34 +42,21 @@ const Registor = (props) => {
...
@@ -41,34 +42,21 @@ const Registor = (props) => {
]);
]);
if
(
index
===
true
)
{
if
(
index
===
true
)
{
let
res
;
props
.
showLoading
();
props
.
showLoading
();
if
(
sponsor_id
)
{
const
res
=
await
getOTPApi
({
res
=
await
registorApi
({
email
,
password
,
platform
:
Platform
.
OS
,
platform
:
Platform
.
OS
,
password_confirmation
,
otp_by
:
email
,
sponsor_id
,
phone
,
});
});
}
else
{
props
.
hideLoading
();
res
=
await
registorApi
({
console
.
log
(
res
);
if
(
res
.
data
.
code
==
200
)
{
navigation
.
navigate
(
REGISTEROTP
,
{
email
,
email
,
password
,
password
,
platform
:
Platform
.
OS
,
password_confirmation
,
password_confirmation
,
phone
,
phone
,
sponsor_id
,
});
});
}
props
.
hideLoading
();
if
(
res
.
data
.
code
==
200
&&
res
.
data
.
data
)
{
setTimeout
(()
=>
{
Alert
.
alert
(
I18n
.
t
(
'Notification'
),
I18n
.
t
(
'RegisterAccountSuccess'
));
navigation
.
navigate
(
'LOGIN'
);
},
500
);
}
else
{
}
else
{
setTimeout
(()
=>
{
setTimeout
(()
=>
{
Alert
.
alert
(
I18n
.
t
(
'Notification'
),
res
.
data
.
message
);
Alert
.
alert
(
I18n
.
t
(
'Notification'
),
res
.
data
.
message
);
...
@@ -93,35 +81,30 @@ const Registor = (props) => {
...
@@ -93,35 +81,30 @@ const Registor = (props) => {
<
InputIcon
<
InputIcon
icon
=
{
R
.
images
.
iconEmail
}
icon
=
{
R
.
images
.
iconEmail
}
title
=
{
'Email'
}
title
=
{
'Email'
}
placeholder
=
{
I18n
.
t
(
'EnterEmail'
)}
onChangeText
=
{(
val
)
=>
setEmail
(
val
)}
onChangeText
=
{(
val
)
=>
setEmail
(
val
)}
/
>
/
>
<
InputIcon
<
InputIcon
icon
=
{
R
.
images
.
iconLock
}
icon
=
{
R
.
images
.
iconLock
}
title
=
{
'Password'
}
title
=
{
'Password'
}
placeholder
=
{
I18n
.
t
(
'EnterPassword'
)}
onChangeText
=
{(
val
)
=>
setPassword
(
val
)}
onChangeText
=
{(
val
)
=>
setPassword
(
val
)}
isPassWord
=
{
true
}
isPassWord
=
{
true
}
/
>
/
>
<
InputIcon
<
InputIcon
icon
=
{
R
.
images
.
iconLock
}
icon
=
{
R
.
images
.
iconLock
}
title
=
{
'Confirm_pass'
}
title
=
{
'Confirm_pass'
}
placeholder
=
{
I18n
.
t
(
'EnterPassword'
)}
onChangeText
=
{(
val
)
=>
setPasswordConfirm
(
val
)}
onChangeText
=
{(
val
)
=>
setPasswordConfirm
(
val
)}
isPassWord
=
{
true
}
isPassWord
=
{
true
}
/
>
/
>
<
InputIcon
<
InputIcon
icon
=
{
R
.
images
.
iconPhone3
}
icon
=
{
R
.
images
.
iconPhone3
}
title
=
{
'Phone'
}
title
=
{
'Phone'
}
placeholder
=
{
I18n
.
t
(
'Enter_Phone'
)}
onChangeText
=
{(
val
)
=>
setPhone
(
val
)}
onChangeText
=
{(
val
)
=>
setPhone
(
val
)}
isNumber
=
{
true
}
isNumber
=
{
true
}
/
>
/
>
<
InputIcon
<
InputIcon
icon
=
{
R
.
images
.
iconIntroduct
}
icon
=
{
R
.
images
.
iconIntroduct
}
title
=
{
'Code_introduce'
}
title
=
{
'Code_introduce'
}
placeholder
=
{
I18n
.
t
(
'EnterReferralCode'
)}
onChangeText
=
{(
val
)
=>
setSponsor_id
(
val
)}
onChangeText
=
{(
val
)
=>
setSponsor_id
(
val
)}
/
>
/
>
...
...
src/Screens/Exchange/Item.js
View file @
a76c9a92
...
@@ -38,7 +38,9 @@ const Item = (props) => {
...
@@ -38,7 +38,9 @@ const Item = (props) => {
<
Text
numberOfLines
=
{
1
}
style
=
{
styles
.
txtTitle
}
>
<
Text
numberOfLines
=
{
1
}
style
=
{
styles
.
txtTitle
}
>
{
item
.
note
}
{
item
.
note
}
<
/Text
>
<
/Text
>
<
Text
style
=
{
styles
.
txtDate
}
>
`
${
I18n
.
t
(
'Date'
)}
${
item
.
date
}
`
<
/Text
>
<
Text
style
=
{
styles
.
txtDate
}
>
`
${
I18n
.
t
(
'Date'
)}
${
item
.
date
}
`
<
/Text
>
<
/Block
>
<
/Block
>
<
/Block
>
<
/Block
>
<
/View
>
<
/View
>
...
@@ -76,7 +78,7 @@ const styles = StyleSheet.create({
...
@@ -76,7 +78,7 @@ const styles = StyleSheet.create({
},
},
wrapDate
:
{
wrapDate
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
padding
Horizontal
:
10
,
padding
Left
:
10
,
},
},
txtTitle
:
{
txtTitle
:
{
fontSize
:
getFontXD
(
48
),
fontSize
:
getFontXD
(
48
),
...
...
src/Screens/Menu/Payments/Item.js
View file @
a76c9a92
...
@@ -89,7 +89,7 @@ const styles = StyleSheet.create({
...
@@ -89,7 +89,7 @@ const styles = StyleSheet.create({
},
},
wrapDate
:
{
wrapDate
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
padding
Horizontal
:
10
,
padding
Left
:
10
,
},
},
txt
:
{
txt
:
{
fontSize
:
getFontXD
(
36
),
fontSize
:
getFontXD
(
36
),
...
...
src/Screens/Menu/Profile/Tab/CQG.js
View file @
a76c9a92
...
@@ -9,6 +9,9 @@ import I18n from '../../../../helper/i18/i18n';
...
@@ -9,6 +9,9 @@ import I18n from '../../../../helper/i18/i18n';
const
Profile
=
(
props
)
=>
{
const
Profile
=
(
props
)
=>
{
return
(
return
(
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
container
}
>
{
props
.
user
.
status
==
3
?
(
<
View
>
{
' '
}
<
View
style
=
{
styles
.
item
}
>
<
View
style
=
{
styles
.
item
}
>
<
AppText
i18nKey
=
{
'ContactCode'
}
style
=
{
styles
.
txtTitle
}
><
/AppText
>
<
AppText
i18nKey
=
{
'ContactCode'
}
style
=
{
styles
.
txtTitle
}
><
/AppText
>
<
Text
style
=
{
styles
.
txtBig
}
>
{
props
.
user
.
cqg_id
}
<
/Text
>
<
Text
style
=
{
styles
.
txtBig
}
>
{
props
.
user
.
cqg_id
}
<
/Text
>
...
@@ -26,6 +29,12 @@ const Profile = (props) => {
...
@@ -26,6 +29,12 @@ const Profile = (props) => {
<
Text
style
=
{
styles
.
txtBig
}
>
{
props
.
user
.
account
}
<
/Text
>
<
Text
style
=
{
styles
.
txtBig
}
>
{
props
.
user
.
account
}
<
/Text
>
<
/View
>
<
/View
>
<
/View
>
<
/View
>
)
:
(
<
View
>
<
Text
>
Hello
<
/Text
>
<
/View
>
)}
<
/View
>
);
);
};
};
...
...
src/Screens/Menu/Rose/Item.js
View file @
a76c9a92
...
@@ -37,7 +37,9 @@ const Item = (props) => {
...
@@ -37,7 +37,9 @@ const Item = (props) => {
{
item
.
note
}
{
item
.
note
}
<
/Text
>
<
/Text
>
<
/View
>
<
/View
>
<
Text
style
=
{
styles
.
txtDate
}
>
`
${
I18n
.
t
(
'Date'
)}
${
item
.
date
}
`
<
/Text
>
<
Text
style
=
{
styles
.
txtDate
}
>
`
${
I18n
.
t
(
'Date'
)}
${
item
.
date
}
`
<
/Text
>
<
/View
>
<
/View
>
<
View
>
<
View
>
<
Text
<
Text
...
@@ -86,7 +88,7 @@ const styles = StyleSheet.create({
...
@@ -86,7 +88,7 @@ const styles = StyleSheet.create({
},
},
wrapDate
:
{
wrapDate
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
padding
Horizontal
:
10
,
padding
Left
:
10
,
},
},
txtTitle
:
{
txtTitle
:
{
fontSize
:
getFontXD
(
42
),
fontSize
:
getFontXD
(
42
),
...
...
src/Screens/Menu/Rose/Rose.js
View file @
a76c9a92
...
@@ -13,12 +13,6 @@ const Rose = (props) => {
...
@@ -13,12 +13,6 @@ const Rose = (props) => {
return
(
return
(
<
View
style
=
{{
flex
:
1
}}
>
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderSB
title
=
{
'Rose'
}
/
>
<
HeaderSB
title
=
{
'Rose'
}
/
>
<
TouchableOpacity
onPress
=
{()
=>
props
.
changeLanguage
(
'en'
)}
>
<
Text
>
Change
<
/Text
>
<
/TouchableOpacity
>
<
AppText
i18nKey
=
{
'SetLanguage'
}
><
/AppText
>
<
View
style
=
{{
justifyContent
:
'center'
,
alignItems
:
'center'
,
flex
:
1
}}
>
<
View
style
=
{{
justifyContent
:
'center'
,
alignItems
:
'center'
,
flex
:
1
}}
>
<
AppText
<
AppText
i18nKey
=
{
'Features_develop'
}
i18nKey
=
{
'Features_develop'
}
...
...
src/Screens/MethodPay/Item.js
View file @
a76c9a92
...
@@ -20,9 +20,9 @@ const Item = (props) => {
...
@@ -20,9 +20,9 @@ const Item = (props) => {
<
Text
style
=
{
styles
.
txtBig
}
>
{
item
.
title
}
<
/Text
>
<
Text
style
=
{
styles
.
txtBig
}
>
{
item
.
title
}
<
/Text
>
<
Block
space
=
{
'between'
}
row
flex
=
{
1
}
>
<
Block
space
=
{
'between'
}
row
flex
=
{
1
}
>
<
Block
>
<
Block
>
<
AppText
style
=
{
styles
.
txtLeft
}
i18nKey
=
{
(
'OwnerAccount'
)}
/
>
<
AppText
style
=
{
styles
.
txtLeft
}
i18nKey
=
{
'OwnerAccount'
}
/
>
<
Text
style
=
{
styles
.
txtLeft
}
>
STK
<
/Text
>
<
Text
style
=
{
styles
.
txtLeft
}
>
STK
<
/Text
>
<
AppText
style
=
{
styles
.
txtLeft
}
i18nKey
=
{
(
'Branch'
)}
/
>
<
AppText
style
=
{
styles
.
txtLeft
}
i18nKey
=
{
'Branch'
}
/
>
<
/Block
>
<
/Block
>
<
Block
>
<
Block
>
<
Text
style
=
{
styles
.
txtRight
}
>
{
item
.
account_name
}
<
/Text
>
<
Text
style
=
{
styles
.
txtRight
}
>
{
item
.
account_name
}
<
/Text
>
...
@@ -64,7 +64,7 @@ const styles = StyleSheet.create({
...
@@ -64,7 +64,7 @@ const styles = StyleSheet.create({
},
},
wrapDate
:
{
wrapDate
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
padding
Horizontal
:
10
,
padding
Left
:
10
,
},
},
txtTitle
:
{
txtTitle
:
{
fontSize
:
getFontXD
(
42
),
fontSize
:
getFontXD
(
42
),
...
...
src/Screens/MethodPay/ItemBank.js
View file @
a76c9a92
import
React
from
'react'
;
import
React
from
'react'
;
import
{
View
,
Text
,
StyleSheet
,
TouchableOpacity
,
Image
}
from
'react-native'
;
import
{
View
,
Text
,
StyleSheet
,
TouchableOpacity
,
Image
}
from
'react-native'
;
import
{
getFontXD
,
HEIGHTXD
,
WIDTHXD
,
toPriceVnd
,
getWidth
}
from
'../../Config/Functions'
;
import
{
getFontXD
,
HEIGHTXD
,
WIDTHXD
,
toPriceVnd
,
getWidth
,
}
from
'../../Config/Functions'
;
import
R
from
'../../assets/R'
;
import
R
from
'../../assets/R'
;
import
Block
from
'../../components/Block'
;
import
Block
from
'../../components/Block'
;
import
Icon
from
'react-native-vector-icons/MaterialCommunityIcons'
;
import
Icon
from
'react-native-vector-icons/MaterialCommunityIcons'
;
...
@@ -10,7 +16,11 @@ const Item = (props) => {
...
@@ -10,7 +16,11 @@ const Item = (props) => {
const
{
item
}
=
props
;
const
{
item
}
=
props
;
return
(
return
(
<
TouchableOpacity
onPress
=
{()
=>
props
.
onPress
(
item
)}
>
<
TouchableOpacity
onPress
=
{()
=>
props
.
onPress
(
item
)}
>
<
View
style
=
{[
styles
.
container
,
{
marginBottom
:
props
.
isEndItem
?
HEIGHTXD
(
100
)
:
HEIGHTXD
(
15
)}]}
>
<
View
style
=
{[
styles
.
container
,
{
marginBottom
:
props
.
isEndItem
?
HEIGHTXD
(
100
)
:
HEIGHTXD
(
15
)},
]}
>
<
Block
flex
=
{
1
}
row
center
padding
=
{[
HEIGHTXD
(
10
),
WIDTHXD
(
10
)]}
>
<
Block
flex
=
{
1
}
row
center
padding
=
{[
HEIGHTXD
(
10
),
WIDTHXD
(
10
)]}
>
<
Image
source
=
{{
uri
:
item
.
logo
}}
style
=
{
styles
.
imgIcon
}
/
>
<
Image
source
=
{{
uri
:
item
.
logo
}}
style
=
{
styles
.
imgIcon
}
/
>
<
Block
padding
=
{[
0
,
10
]}
>
<
Block
padding
=
{[
0
,
10
]}
>
...
@@ -55,7 +65,7 @@ const styles = StyleSheet.create({
...
@@ -55,7 +65,7 @@ const styles = StyleSheet.create({
},
},
wrapDate
:
{
wrapDate
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
padding
Horizontal
:
10
,
padding
Left
:
10
,
},
},
txtTitle
:
{
txtTitle
:
{
fontSize
:
getFontXD
(
42
),
fontSize
:
getFontXD
(
42
),
...
...
src/Screens/Notification/Item.js
View file @
a76c9a92
...
@@ -59,7 +59,7 @@ const styles = StyleSheet.create({
...
@@ -59,7 +59,7 @@ const styles = StyleSheet.create({
},
},
wrapDate
:
{
wrapDate
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
padding
Horizontal
:
10
,
padding
Left
:
10
,
},
},
txtTitle
:
{
txtTitle
:
{
fontSize
:
getFontXD
(
42
),
fontSize
:
getFontXD
(
42
),
...
...
src/Screens/Transaction/DueDate/Item.js
View file @
a76c9a92
...
@@ -22,7 +22,6 @@ const Item = (props) => {
...
@@ -22,7 +22,6 @@ const Item = (props) => {
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
container
}
>
<
TouchableOpacity
onPress
=
{()
=>
props
.
onPress
(
item
)}
>
<
TouchableOpacity
onPress
=
{()
=>
props
.
onPress
(
item
)}
>
<
Block
flex
=
{
1
}
row
>
<
Block
flex
=
{
1
}
row
>
<
View
style
=
{
styles
.
wrapLeft
}
/
>
<
View
style
=
{
styles
.
wrapDate
}
>
<
View
style
=
{
styles
.
wrapDate
}
>
<
Image
source
=
{
R
.
images
.
iconRecharge
}
style
=
{
styles
.
imgIcon
}
/
>
<
Image
source
=
{
R
.
images
.
iconRecharge
}
style
=
{
styles
.
imgIcon
}
/
>
<
/View
>
<
/View
>
...
@@ -74,7 +73,7 @@ const styles = StyleSheet.create({
...
@@ -74,7 +73,7 @@ const styles = StyleSheet.create({
},
},
wrapDate
:
{
wrapDate
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
padding
Horizontal
:
10
,
padding
Left
:
10
,
},
},
txtTitle
:
{
txtTitle
:
{
fontSize
:
getFontXD
(
42
),
fontSize
:
getFontXD
(
42
),
...
...
src/Screens/Transaction/Escrow/Item.js
View file @
a76c9a92
...
@@ -72,7 +72,7 @@ const styles = StyleSheet.create({
...
@@ -72,7 +72,7 @@ const styles = StyleSheet.create({
},
},
wrapDate
:
{
wrapDate
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
padding
Horizontal
:
10
,
padding
Left
:
10
,
},
},
txtTitle
:
{
txtTitle
:
{
fontSize
:
getFontXD
(
42
),
fontSize
:
getFontXD
(
42
),
...
...
src/Screens/Transaction/TimeTransaction/Item.js
View file @
a76c9a92
...
@@ -22,7 +22,6 @@ const Item = (props) => {
...
@@ -22,7 +22,6 @@ const Item = (props) => {
<
View
style
=
{
styles
.
container
}
>
<
View
style
=
{
styles
.
container
}
>
<
TouchableOpacity
onPress
=
{()
=>
props
.
onPress
(
item
)}
>
<
TouchableOpacity
onPress
=
{()
=>
props
.
onPress
(
item
)}
>
<
Block
flex
=
{
1
}
row
>
<
Block
flex
=
{
1
}
row
>
<
View
style
=
{
styles
.
wrapLeft
}
/
>
<
View
style
=
{
styles
.
wrapDate
}
>
<
View
style
=
{
styles
.
wrapDate
}
>
<
Image
source
=
{
R
.
images
.
iconRecharge
}
style
=
{
styles
.
imgIcon
}
/
>
<
Image
source
=
{
R
.
images
.
iconRecharge
}
style
=
{
styles
.
imgIcon
}
/
>
<
/View
>
<
/View
>
...
@@ -74,7 +73,7 @@ const styles = StyleSheet.create({
...
@@ -74,7 +73,7 @@ const styles = StyleSheet.create({
},
},
wrapDate
:
{
wrapDate
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
padding
Horizontal
:
10
,
padding
Left
:
10
,
},
},
txtTitle
:
{
txtTitle
:
{
fontSize
:
getFontXD
(
42
),
fontSize
:
getFontXD
(
42
),
...
...
src/components/Header/Drawer.js
View file @
a76c9a92
...
@@ -106,6 +106,14 @@ const menus = [
...
@@ -106,6 +106,14 @@ const menus = [
icon
:
R
.
images
.
iconHistoryMenu
,
icon
:
R
.
images
.
iconHistoryMenu
,
screen
:
HISTORY
,
screen
:
HISTORY
,
},
},
{
id
:
'65'
,
title
:
'PaymentSetting'
,
icon
:
R
.
images
.
iconMethodPay
,
screen
:
METHODPAY
,
active
:
false
,
children
:
null
,
},
],
],
},
},
{
{
...
@@ -137,14 +145,6 @@ const menus = [
...
@@ -137,14 +145,6 @@ const menus = [
},
},
{
{
id
:
'2'
,
title
:
'PaymentSetting'
,
icon
:
R
.
images
.
iconMethodPay
,
screen
:
METHODPAY
,
active
:
false
,
children
:
null
,
},
{
id
:
'5'
,
id
:
'5'
,
title
:
'Setting'
,
title
:
'Setting'
,
icon
:
R
.
images
.
iconSetting
,
icon
:
R
.
images
.
iconSetting
,
...
@@ -289,7 +289,7 @@ const styles = StyleSheet.create({
...
@@ -289,7 +289,7 @@ const styles = StyleSheet.create({
color
:
'#0C0D2C'
,
color
:
'#0C0D2C'
,
},
},
txtTop
:
{
txtTop
:
{
fontSize
:
getFontXD
(
42
),
fontSize
:
getFontXD
(
38
),
color
:
'#1E2F70'
,
color
:
'#1E2F70'
,
},
},
txtLink
:
{
txtLink
:
{
...
...
src/components/Header/HeaderDrawer.js
View file @
a76c9a92
...
@@ -16,7 +16,6 @@ import R from '../../assets/R';
...
@@ -16,7 +16,6 @@ import R from '../../assets/R';
import
{
getFontXD
,
HEIGHT
,
WIDTHXD
}
from
'../../Config/Functions'
;
import
{
getFontXD
,
HEIGHT
,
WIDTHXD
}
from
'../../Config/Functions'
;
import
LinearGradient
from
'react-native-linear-gradient'
;
import
LinearGradient
from
'react-native-linear-gradient'
;
import
{
connect
}
from
'react-redux'
;
import
{
connect
}
from
'react-redux'
;
import
{
HEIGHTXD
}
from
'../../Config/Functions'
;
import
Modal
from
'react-native-modal'
;
import
Modal
from
'react-native-modal'
;
import
Drawer
from
'./Drawer'
;
import
Drawer
from
'./Drawer'
;
import
SnackBar
from
'../SnackBar'
;
import
SnackBar
from
'../SnackBar'
;
...
@@ -108,7 +107,7 @@ const styles = StyleSheet.create({
...
@@ -108,7 +107,7 @@ const styles = StyleSheet.create({
container
:
{
container
:
{
backgroundColor
:
'white'
,
backgroundColor
:
'white'
,
height
:
'100%'
,
height
:
'100%'
,
width
:
300
,
width
:
WIDTHXD
(
780
)
,
borderRadius
:
20
,
borderRadius
:
20
,
},
},
});
});
src/components/Header/HeaderHome.js
View file @
a76c9a92
...
@@ -196,7 +196,6 @@ const HeaderHome = (props) => {
...
@@ -196,7 +196,6 @@ const HeaderHome = (props) => {
/
>
/
>
<
/TouchableOpacity
>
<
/TouchableOpacity
>
<
/View
>
<
/View
>
{
renderLabel
(
props
.
user
.
status
)}
<
/View
>
<
/View
>
<
/View
>
<
/View
>
...
@@ -252,7 +251,7 @@ export default connect(mapStateToProps, {})(HeaderHome);
...
@@ -252,7 +251,7 @@ export default connect(mapStateToProps, {})(HeaderHome);
const
styles
=
StyleSheet
.
create
({
const
styles
=
StyleSheet
.
create
({
container
:
{},
container
:
{},
wrapWallet
:
{
wrapWallet
:
{
height
:
8
0
,
height
:
7
0
,
width
:
'100%'
,
width
:
'100%'
,
borderBottomWidth
:
1
,
borderBottomWidth
:
1
,
borderBottomColor
:
'#EDEDF1'
,
borderBottomColor
:
'#EDEDF1'
,
...
@@ -266,7 +265,6 @@ const styles = StyleSheet.create({
...
@@ -266,7 +265,6 @@ const styles = StyleSheet.create({
},
},
containerTop
:
{
containerTop
:
{
backgroundColor
:
'white'
,
backgroundColor
:
'white'
,
height
:
290
,
width
:
'90%'
,
width
:
'90%'
,
borderRadius
:
10
,
borderRadius
:
10
,
shadowColor
:
'#000'
,
shadowColor
:
'#000'
,
...
@@ -296,8 +294,8 @@ const styles = StyleSheet.create({
...
@@ -296,8 +294,8 @@ const styles = StyleSheet.create({
resizeMode
:
'contain'
,
resizeMode
:
'contain'
,
},
},
imgIconCopy
:
{
imgIconCopy
:
{
width
:
WIDTHXD
(
1
34
),
width
:
WIDTHXD
(
1
00
),
height
:
HEIGHTXD
(
1
34
),
height
:
HEIGHTXD
(
1
00
),
resizeMode
:
'contain'
,
resizeMode
:
'contain'
,
},
},
...
@@ -319,9 +317,9 @@ const styles = StyleSheet.create({
...
@@ -319,9 +317,9 @@ const styles = StyleSheet.create({
color
:
'#A2A2A2'
,
color
:
'#A2A2A2'
,
},
},
imgAvatar
:
{
imgAvatar
:
{
width
:
WIDTHXD
(
24
0
),
width
:
WIDTHXD
(
18
0
),
height
:
WIDTHXD
(
24
0
),
height
:
WIDTHXD
(
18
0
),
borderRadius
:
WIDTHXD
(
12
0
),
borderRadius
:
WIDTHXD
(
9
0
),
},
},
txtMoney
:
{
txtMoney
:
{
fontSize
:
getFontXD
(
62
),
fontSize
:
getFontXD
(
62
),
...
@@ -338,7 +336,7 @@ const styles = StyleSheet.create({
...
@@ -338,7 +336,7 @@ const styles = StyleSheet.create({
},
},
wrapRight
:
{
wrapRight
:
{
flex
:
1
,
flex
:
1
,
padding
Horizontal
:
2
0
,
padding
Left
:
1
0
,
},
},
containerInfor
:
{
containerInfor
:
{
flex
:
1
,
flex
:
1
,
...
@@ -348,6 +346,8 @@ const styles = StyleSheet.create({
...
@@ -348,6 +346,8 @@ const styles = StyleSheet.create({
borderBottomColor
:
'#EDEDF1'
,
borderBottomColor
:
'#EDEDF1'
,
flexDirection
:
'row'
,
flexDirection
:
'row'
,
paddingHorizontal
:
20
,
paddingHorizontal
:
20
,
paddingVertical
:
10
,
},
},
row
:
{
row
:
{
flexDirection
:
'row'
,
flexDirection
:
'row'
,
...
@@ -358,6 +358,7 @@ const styles = StyleSheet.create({
...
@@ -358,6 +358,7 @@ const styles = StyleSheet.create({
flexDirection
:
'row'
,
flexDirection
:
'row'
,
justifyContent
:
'space-between'
,
justifyContent
:
'space-between'
,
alignItems
:
'center'
,
alignItems
:
'center'
,
marginTop
:
5
,
},
},
containerWallet
:
{
containerWallet
:
{
justifyContent
:
'center'
,
justifyContent
:
'center'
,
...
...
src/helper/i18/locales/en.js
View file @
a76c9a92
...
@@ -31,7 +31,7 @@ export default {
...
@@ -31,7 +31,7 @@ export default {
RevenueDonors
:
'Revenue donors'
,
RevenueDonors
:
'Revenue donors'
,
Invset
:
'Invest'
,
Invset
:
'Invest'
,
Contract
:
'Contract'
,
Contract
:
'Contract'
,
PaymentSetting
:
'Payment m
ethod setting'
,
PaymentSetting
:
'M
ethod setting'
,
CustomerCare
:
'Customer care'
,
CustomerCare
:
'Customer care'
,
Feedback
:
'Feedback'
,
Feedback
:
'Feedback'
,
LegalDocument
:
'Legal document'
,
LegalDocument
:
'Legal document'
,
...
@@ -74,7 +74,7 @@ export default {
...
@@ -74,7 +74,7 @@ export default {
Waiting
:
'Waiting'
,
Waiting
:
'Waiting'
,
Success
:
'Success'
,
Success
:
'Success'
,
Ok
:
'Ok'
,
Ok
:
'Ok'
,
Can_not_get_data
:
'Can
\'
t get data'
,
Can_not_get_data
:
"Can't get data"
,
Search
:
'Search'
,
Search
:
'Search'
,
NullDataSearch
:
'Data not found'
,
NullDataSearch
:
'Data not found'
,
...
@@ -216,5 +216,6 @@ export default {
...
@@ -216,5 +216,6 @@ export default {
Time_Transaction
:
'Time transaction'
,
Time_Transaction
:
'Time transaction'
,
Due_Date
:
'Due date'
,
Due_Date
:
'Due date'
,
Version
:
'Version'
,
Version
:
'Version'
,
UpdateDescription
:
'A new version of DCVInvest is available. Update now to continue using and experiencing the latest system features!'
,
UpdateDescription
:
'A new version of DCVInvest is available. Update now to continue using and experiencing the latest system features!'
,
};
};
src/helper/i18/locales/vn.js
View file @
a76c9a92
...
@@ -34,8 +34,8 @@ export default {
...
@@ -34,8 +34,8 @@ export default {
RevenueDonors
:
'Doanh thu nhà tài trợ'
,
RevenueDonors
:
'Doanh thu nhà tài trợ'
,
Invset
:
'Đầu tư'
,
Invset
:
'Đầu tư'
,
Contract
:
'Hợp đồng'
,
Contract
:
'Hợp đồng'
,
PaymentSetting
:
'
Cài đặt p
hương thức thanh toán'
,
PaymentSetting
:
'
P
hương thức thanh toán'
,
CustomerCare
:
'
Chăm sóc
khách hàng'
,
CustomerCare
:
'
Tư vấn
khách hàng'
,
Feedback
:
'Phản hồi'
,
Feedback
:
'Phản hồi'
,
LegalDocument
:
'Giấy tờ pháp lý'
,
LegalDocument
:
'Giấy tờ pháp lý'
,
Setting
:
'Cài đặt'
,
Setting
:
'Cài đặt'
,
...
...
src/routers/ScreenNames.js
View file @
a76c9a92
...
@@ -66,3 +66,4 @@ export const LEGALPARTNER = 'LEGALPARTNER';
...
@@ -66,3 +66,4 @@ export const LEGALPARTNER = 'LEGALPARTNER';
export
const
HISTORYDETAIL
=
'HISTORYDETAIL'
;
export
const
HISTORYDETAIL
=
'HISTORYDETAIL'
;
export
const
PRODUCTDETAIL
=
'PRODUCTDETAIL'
;
export
const
PRODUCTDETAIL
=
'PRODUCTDETAIL'
;
export
const
REGISTEROTP
=
'REGISTEROTP'
;
src/routers/StackNavigation.js
View file @
a76c9a92
...
@@ -46,6 +46,7 @@ import Partner from '../Screens/LegalDocument/Partner';
...
@@ -46,6 +46,7 @@ import Partner from '../Screens/LegalDocument/Partner';
import
SnackBar
from
'../components/SnackBar'
;
import
SnackBar
from
'../components/SnackBar'
;
import
DetailHistory
from
'../Screens/Action/History/DetailHistory'
;
import
DetailHistory
from
'../Screens/Action/History/DetailHistory'
;
import
ProductDetail
from
'../Screens/Transaction/ProductDetail/ProductDetail'
;
import
ProductDetail
from
'../Screens/Transaction/ProductDetail/ProductDetail'
;
import
RegisterOTP
from
'../Screens/Authen/RegisterOTP'
;
import
*
as
ScreenName
from
'./ScreenNames'
;
import
*
as
ScreenName
from
'./ScreenNames'
;
...
@@ -67,6 +68,7 @@ function MyStack(props) {
...
@@ -67,6 +68,7 @@ function MyStack(props) {
<
Stack
.
Screen
name
=
{
ScreenName
.
HISTORYDETAIL
}
component
=
{
DetailHistory
}
/
>
<
Stack
.
Screen
name
=
{
ScreenName
.
HISTORYDETAIL
}
component
=
{
DetailHistory
}
/
>
<
Stack
.
Screen
name
=
{
ScreenName
.
LEGALDOCUMENT
}
component
=
{
LegaDocument
}
/
>
<
Stack
.
Screen
name
=
{
ScreenName
.
LEGALDOCUMENT
}
component
=
{
LegaDocument
}
/
>
<
Stack
.
Screen
name
=
{
ScreenName
.
NOTIFICATION
}
component
=
{
Notification
}
/
>
<
Stack
.
Screen
name
=
{
ScreenName
.
NOTIFICATION
}
component
=
{
Notification
}
/
>
<
Stack
.
Screen
name
=
{
ScreenName
.
REGISTEROTP
}
component
=
{
RegisterOTP
}
/
>
<
Stack
.
Screen
name
=
{
ScreenName
.
LEGALBUSINESS
}
component
=
{
Business
}
/
>
<
Stack
.
Screen
name
=
{
ScreenName
.
LEGALBUSINESS
}
component
=
{
Business
}
/
>
<
Stack
.
Screen
name
=
{
ScreenName
.
LEGALCUSTOMER
}
component
=
{
Customer
}
/
>
<
Stack
.
Screen
name
=
{
ScreenName
.
LEGALCUSTOMER
}
component
=
{
Customer
}
/
>
...
...
src/routers/TabNavigation.js
View file @
a76c9a92
import
React
,
{
useEffect
}
from
'react'
;
import
React
,
{
useEffect
}
from
'react'
;
import
{
View
,
Text
}
from
'react-native'
;
import
{
View
,
Text
,
Linking
}
from
'react-native'
;
import
{
createBottomTabNavigator
}
from
'@react-navigation/bottom-tabs'
;
import
{
createBottomTabNavigator
}
from
'@react-navigation/bottom-tabs'
;
import
Icon
from
'react-native-vector-icons/FontAwesome5'
;
import
Icon
from
'react-native-vector-icons/FontAwesome5'
;
import
Ionicons
from
'react-native-vector-icons/Ionicons'
;
import
Ionicons
from
'react-native-vector-icons/Ionicons'
;
...
@@ -22,6 +22,7 @@ import I18n from '../helper/i18/i18n';
...
@@ -22,6 +22,7 @@ import I18n from '../helper/i18/i18n';
import
{
changeLanguage
}
from
'../actions/language'
;
import
{
changeLanguage
}
from
'../actions/language'
;
import
KEY
from
'../assets/AsynStorage'
;
import
KEY
from
'../assets/AsynStorage'
;
import
AsyncStorage
from
'@react-native-community/async-storage'
;
import
AsyncStorage
from
'@react-native-community/async-storage'
;
import
{
DETAILNEW
}
from
'../routers/ScreenNames'
;
const
Tab
=
createBottomTabNavigator
();
const
Tab
=
createBottomTabNavigator
();
...
@@ -33,11 +34,35 @@ const TabNavigator = (props) => {
...
@@ -33,11 +34,35 @@ const TabNavigator = (props) => {
const
navigate
=
useNavigation
();
const
navigate
=
useNavigation
();
useEffect
(()
=>
{
useEffect
(()
=>
{
setInitLanguage
();
setInitLanguage
();
checkDeepking
();
setTimeout
(()
=>
{
setTimeout
(()
=>
{
showPopUp
();
showPopUp
();
},
3000
);
},
3000
);
},
[]);
},
[]);
const
checkDeepking
=
()
=>
{
Linking
.
getInitialURL
().
then
((
url
)
=>
{
if
(
url
)
deeplinkScreen
(
url
);
});
Linking
.
addEventListener
(
'url'
,
(
url
)
=>
{
if
(
url
)
handleOpenURL
(
url
);
});
};
const
handleOpenURL
=
(
event
)
=>
{
deeplinkScreen
(
event
.
url
);
};
const
deeplinkScreen
=
(
url
)
=>
{
const
route
=
url
.
replace
(
/.*
?
:
\/\/
/g
,
''
);
const
id
=
route
.
match
(
/
\/([^\/]
+
)\/?
$/
)[
1
];
const
root
=
route
.
split
(
'/'
)[
0
];
// const routeName = route.split('/')[1];
if
(
root
==
'screen'
)
{
navigate
.
navigate
(
DETAILNEW
,
{
id
});
}
};
useEffect
(()
=>
{
useEffect
(()
=>
{
checkScreenInit
();
checkScreenInit
();
},
[
props
.
screenInit
]);
},
[
props
.
screenInit
]);
...
...
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