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
4a64ed70
Commit
4a64ed70
authored
3 years ago
by
Giang Tran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update newfeed api
parent
b9b6a73c
thuynt_change_bank_view
…
05_April
05_May
07_April
08_April
25_March
Develop
build_0106
build_01_July
build_02_July
build_06_07
build_11_June
build_1305
build_1405
build_14_June
build_15_july
build_2405
build_2505
build_2805
build_30_June
build_release_1806
build_server_new
dev_0106
dev_01_July
dev_05_July
dev_09_June
dev_10_June
dev_11_June
dev_14_July
dev_14_May
dev_18_June
dev_2605
dev_phase2
ekyc
enter_smart_otp
fix_bug_image
forgot_smart_otp_pin
func_fingerprint_login
func_smart_otp
new_09_June
new_10_June
phase2_home
phase2_product_detail
phase2_tool
phase2_transation_intergate_api
phase_2_check_version
search_period
splash
switch_rsa
No related merge requests found
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
242 additions
and
142 deletions
+242
-142
Functions.js
src/Config/Functions.js
+7
-0
PacketCQG.js
src/Screens/Account/PacrtCQG/PacketCQG.js
+1
-1
AccountVerificationView.js
src/Screens/AccountVerification/AccountVerificationView.js
+2
-3
Profile.js
src/Screens/AccountVerification/Tab/Profile.js
+105
-29
Login.js
src/Screens/Authen/Login.js
+0
-2
GeneralInfor.js
src/Screens/Menu/Profile/Tab/GeneralInfor.js
+65
-59
Tab1.js
src/Screens/NewFeed/Tab1/Tab1.js
+52
-43
NewFeed.js
src/apis/Functions/NewFeed.js
+5
-0
url.js
src/apis/url.js
+1
-0
HeaderHome.js
src/components/Header/HeaderHome.js
+2
-3
HeaderSearch.js
src/components/Header/HeaderSearch.js
+0
-1
TextMulti.js
src/components/Input/TextMulti.js
+2
-1
No files found.
src/Config/Functions.js
View file @
4a64ed70
...
...
@@ -242,6 +242,13 @@ export const getTimeDDMM = (time) => {
let
t1
=
new
Date
(
moment
(
time
,
'DD/MM/YYYY'
).
format
(
'MM/DD/YYYY'
)).
getTime
();
return
t1
;
};
export
const
converStringToDate
=
(
time
)
=>
{
let
t1
=
new
Date
(
moment
(
time
,
'YYYY-MM-DD'
).
format
(
'MM/DD/YYYY'
)).
getTime
();
const
strDate
=
convertDate
(
t1
);
return
strDate
;
};
export
const
sortDataByTime
=
(
data
)
=>
{
data
.
sort
((
a
,
b
)
=>
{
let
t1
=
moment
(
a
.
time
,
'DD-MM-YYYY'
).
format
(
'MM/YYYY'
);
...
...
This diff is collapsed.
Click to expand it.
src/Screens/Account/PacrtCQG/PacketCQG.js
View file @
4a64ed70
...
...
@@ -60,7 +60,7 @@ const PacketCQG = (props) => {
return
(
<
View
style
=
{{
flex
:
1
}}
>
<
HeaderBack
title
=
{
'Mở tài khoản CQG'
}
/
>
<
ScrollView
showsVerticalScrollIndicator
=
{
tru
e
}
>
<
ScrollView
showsVerticalScrollIndicator
=
{
fals
e
}
>
<
View
style
=
{
styles
.
container
}
>
<
Text
style
=
{
styles
.
txtNote
}
>
L
ư
u
ý
:
Ph
í
đượ
c
t
í
nh
theo
th
á
ng
v
à
m
ứ
c
gi
á
n
à
y
đượ
c
á
p
d
ụ
ng
đế
n
h
ế
t
...
...
This diff is collapsed.
Click to expand it.
src/Screens/AccountVerification/AccountVerificationView.js
View file @
4a64ed70
...
...
@@ -25,7 +25,6 @@ const AccountVerificationView = (props) => {
activeTintColor
:
'#1473E6'
,
labelStyle
:
{
fontSize
:
getFontXD
(
36
)},
style
:
{
backgroundColor
:
'white'
},
scrollEnabled
:
true
,
}}
>
<
Tab
.
Screen
name
=
"GeneralInfor"
...
...
@@ -37,11 +36,11 @@ const AccountVerificationView = (props) => {
component
=
{
Profile
}
options
=
{{
tabBarLabel
:
'Hồ sơ'
}}
/
>
<
Tab
.
Screen
{
/*
<Tab.Screen
name="BankInfor"
component={BankInfor}
options={{tabBarLabel: 'Ngân hàng'}}
/
>
/>
*/
}
<
/Tab.Navigator
>
<
/View
>
);
...
...
This diff is collapsed.
Click to expand it.
src/Screens/AccountVerification/Tab/Profile.js
View file @
4a64ed70
...
...
@@ -11,14 +11,18 @@ import {
Platform
,
Dimensions
,
}
from
'react-native'
;
import
Button
from
'../../../components/Button'
;
import
PickerImgUni
from
'../../../components/Picker/PickerImgUni'
;
import
R
from
'../../../assets/R'
;
import
TextField
from
'../../../components/Input/TextField'
;
import
{
connect
}
from
'react-redux'
;
import
{
showLoading
,
hideLoading
}
from
'../../../actions/loadingAction'
;
import
{
checkFormatArray
,
getFontXD
,
convertTime
,
}
from
'../../../Config/Functions'
;
import
{
verifyAccountApi
}
from
'../../../apis/Functions/users'
;
import
PickerDate
from
'../../../components/Picker/PickerDate'
;
import
PickerItem
from
'../../../components/Picker/PickerItem'
;
const
{
width
}
=
Dimensions
.
get
(
'window'
);
...
...
@@ -42,45 +46,110 @@ const Profile = (props) => {
const
[
urlFont
,
setUrlFont
]
=
useState
(
''
);
const
[
urlBack
,
setUrlBack
]
=
useState
(
''
);
const
[
urlSign
,
setUrlSign
]
=
useState
(
''
);
const
[
cmnd
,
setCMND
]
=
useState
(
''
);
const
[
date_range
,
setDate_range
]
=
useState
(
new
Date
());
//
const [cmnd, setCMND] = useState('');
//
const [date_range, setDate_range] = useState(new Date());
const
[
type
,
setType
]
=
useState
();
const
onNextPress
=
()
=>
{
const
createFormData
=
(
identity_after
,
identity_before
,
sign_img
,
body
)
=>
{
const
data
=
new
FormData
();
data
.
append
(
'identity_after'
,
{
name
:
'identity_after.jpg'
,
type
:
'image/jpg'
,
uri
:
Platform
.
OS
===
'android'
?
identity_after
:
identity_after
.
replace
(
'file://'
,
''
),
});
data
.
append
(
'identity_before'
,
{
name
:
'identity_before.jpg'
,
type
:
'image/jpg'
,
uri
:
Platform
.
OS
===
'android'
?
identity_before
:
identity_before
.
replace
(
'file://'
,
''
),
});
data
.
append
(
'sign_image'
,
{
name
:
'sign_img.jpg'
,
type
:
'image/jpg'
,
uri
:
Platform
.
OS
===
'android'
?
sign_img
:
sign_img
.
replace
(
'file://'
,
''
),
});
Object
.
keys
(
body
).
forEach
((
key
)
=>
{
data
.
append
(
key
,
body
[
key
]);
});
return
data
;
};
const
onPress
=
async
()
=>
{
const
titles
=
[
'loại thẻ'
,
'số thẻ'
,
'ảnh CNND mặt trước'
,
'ảnh CMND mặt sau'
,
'ảnh chữ ký'
,
];
const
index
=
checkFormatArray
([
type
,
cmnd
,
urlFont
,
urlBack
,
urlSign
]);
const
index
=
checkFormatArray
([
type
,
urlFont
,
urlBack
,
urlSign
]);
if
(
index
===
true
)
{
props
.
navigation
.
navigate
(
'BankInfor'
,
{
body
:
{
cmnd
,
card_type
:
type
.
value
,
date_range
:
convertTime
(
date_range
),
...
props
.
route
.
params
,
},
img
:
{
urlFont
,
urlBack
,
urlSign
,
},
const
data
=
createFormData
(
urlFont
,
urlBack
,
urlSign
,
{
card_type
:
type
.
value
,
uid
:
props
.
user
.
uid
,
...
props
.
route
.
params
,
});
props
.
showLoading
();
const
res
=
await
verifyAccountApi
(
data
);
props
.
hideLoading
();
if
(
res
.
data
.
code
==
200
)
{
setTimeout
(()
=>
{
Alert
.
alert
(
'Thông báo!'
,
res
.
data
.
message
);
},
500
);
}
else
{
setTimeout
(()
=>
{
Alert
.
alert
(
'Thông báo!'
,
res
.
data
.
message
);
},
500
);
}
}
else
{
Alert
.
alert
(
'Vui lòng
thêm
'
+
titles
[
index
]);
Alert
.
alert
(
'Vui lòng
điền
'
+
titles
[
index
]);
}
};
// const onNextPress = () => {
// const titles = [
// 'loại thẻ',
// 'số thẻ',
// 'ảnh CNND mặt trước',
// 'ảnh CMND mặt sau',
// 'ảnh chữ ký',
// ];
// const index = checkFormatArray([urlFont, urlBack, urlSign]);
// if (index === true) {
// props.navigation.navigate('BankInfor', {
// body: {
// cmnd,
// card_type: type.value,
// date_range: convertTime(date_range),
// ...props.route.params,
// },
// img: {
// urlFont,
// urlBack,
// urlSign,
// },
// });
// } else {
// Alert.alert('Vui lòng thêm ' + titles[index]);
// }
// };
return
(
<
KeyboardAvoidingView
behavior
=
{
Platform
.
Os
===
'ios'
?
'padding'
:
'height'
}
style
=
{{
flex
:
1
}}
keyboardVerticalOffset
=
{
-
50
}
>
<
ScrollView
showsVerticalScrollIndicator
=
{
false
}
>
<
ScrollView
s
tyle
=
{{
flex
:
1
}}
s
howsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{{
flex
:
1
,
...
...
@@ -101,7 +170,7 @@ const Profile = (props) => {
setType
(
items
);
}}
/
>
{
/*
<TextField
isNumber={true}
title={'Số thẻ'}
...
...
@@ -111,12 +180,13 @@ const Profile = (props) => {
value={date_range}
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
)}
...
...
@@ -131,19 +201,20 @@ const Profile = (props) => {
title
=
{
'Ảnh chữ ký'
}
/
>
<
/View
>
<
TouchableOpacity
onPress
=
{
onNextPress
}
style
=
{
styles
.
btnNext
}
>
<
Image
style
=
{{
width
:
30
,
height
:
30
}}
source
=
{
R
.
images
.
iconRight1
}
/
>
<
/TouchableOpacity
>
<
/View
>
<
/ScrollView
>
<
View
style
=
{
styles
.
btnSend
}
>
<
Button
title
=
{
'Xác minh'
}
onClick
=
{
onPress
}
/
>
<
/View
>
<
/KeyboardAvoidingView
>
);
};
const
styles
=
StyleSheet
.
create
({
btnSend
:
{
width
:
'100%'
,
marginBottom
:
30
,
},
btnNext
:
{
borderRadius
:
30
,
backgroundColor
:
'#1473E6'
,
...
...
@@ -164,4 +235,9 @@ const styles = StyleSheet.create({
},
});
export
default
Profile
;
const
mapStateToProps
=
(
state
)
=>
{
return
{
user
:
state
.
userReducer
,
};
};
export
default
connect
(
mapStateToProps
,
{
showLoading
,
hideLoading
})(
Profile
);
This diff is collapsed.
Click to expand it.
src/Screens/Authen/Login.js
View file @
4a64ed70
...
...
@@ -81,8 +81,6 @@ const Login = (props) => {
}
};
return
(
<
View
style
=
{{
...
...
This diff is collapsed.
Click to expand it.
src/Screens/Menu/Profile/Tab/GeneralInfor.js
View file @
4a64ed70
...
...
@@ -13,18 +13,20 @@ import {
Platform
,
}
from
'react-native'
;
import
R
from
'../../../../assets/R'
;
const
dataTest
=
[
{
value
:
'1'
,
name
:
'2020'
,
},
{
value
:
'2'
,
name
:
'2021'
,
},
import
RadioForm
,
{
RadioButton
,
RadioButtonInput
,
RadioButtonLabel
,
}
from
'react-native-simple-radio-button'
;
import
PickerDate
from
'../../../../components/Picker/PickerDate'
;
import
TextMulti
from
'../../../../components/Input/TextMulti'
;
import
{
connect
}
from
'react-redux'
;
import
{
showLoading
,
hideLoading
}
from
'../../../../actions/loadingAction'
;
import
{
converStringToDate
}
from
'../../../../Config/Functions'
;
var
radio_props
=
[
{
label
:
'Nam'
,
value
:
0
},
{
label
:
'Nữ'
,
value
:
1
},
];
const
{
width
}
=
Dimensions
.
get
(
'window'
);
import
TextField
from
'../../../../components/Input/TextField'
;
...
...
@@ -35,6 +37,7 @@ import Icon from 'react-native-vector-icons/Ionicons';
const
GeneralInfor
=
(
props
)
=>
{
const
[
Select
,
setSelect
]
=
useState
(
'ABC'
);
const
[
bank
,
setBank
]
=
useState
();
const
[
account
,
setAccount
]
=
useState
();
return
(
<
KeyboardAvoidingView
...
...
@@ -44,15 +47,21 @@ const GeneralInfor = (props) => {
<
ScrollView
style
=
{{
flex
:
1
}}
showsVerticalScrollIndicator
=
{
false
}
>
<
View
style
=
{
styles
.
container
}
>
<
TextField
value
=
{
props
.
user
.
fullname
}
title
=
{
'Họ và tên'
}
onChangeText
=
{(
val
)
=>
console
.
log
(
val
)}
/
>
<
TextField
title
=
{
'Điện thoại'
}
value
=
{
props
.
user
.
phone
}
onChangeText
=
{(
val
)
=>
console
.
log
(
val
)}
/
>
<
TextField
title
=
{
'Email'
}
onChangeText
=
{(
val
)
=>
console
.
log
(
val
)}
/
>
<
TextField
title
=
{
'Email'
}
value
=
{
props
.
user
.
email
}
onChangeText
=
{(
val
)
=>
console
.
log
(
val
)}
/
>
{
/*
<TextInput
style={styles.customTxt}
...
...
@@ -60,58 +69,41 @@ const GeneralInfor = (props) => {
placeholder="0000"
/> */
}
<
View
style
=
{
styles
.
status
}
>
<
View
style
=
{{
flexDirection
:
'row'
,
justifyContent
:
'center'
,
alignItems
:
'center'
,
}}
>
<
View
style
=
{
styles
.
customAdd
}
>
<
Text
style
=
{{
fontSize
:
getFontXD
(
42
),
color
:
'#929292'
}}
>
+
<
/Text
>
<
/View
>
<
Text
style
=
{
styles
.
txtTitle
}
>
Tr
ạ
ng
th
á
i
<
/Text
>
<
/View
>
<
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
});
}}
/
>
<
View
style
=
{
styles
.
status
}
>
<
Text
style
=
{
styles
.
txtTitle
}
>
Tr
ạ
ng
th
á
i
<
/Text
>
<
Text
style
=
{{
color
:
'#4FCD8D'
,
fontSize
:
getFontXD
(
42
)}}
>
Đã
x
á
c
minh
<
/Text
>
<
/View
>
<
View
style
=
{{
borderTopWidth
:
1
,
borderTopColor
:
'#DBDBDB'
,
marginTop
:
20
,
paddingTop
:
10
,
}}
>
<
TextField
title
=
{
'Số tài khoản ngân hàng'
}
onChangeText
=
{(
val
)
=>
console
.
log
(
val
)}
placeHolder
=
"Nhập số tài khoản ngân hàng"
/>
<
Text
style
=
{
styles
.
txtTitle
}
>
T
ê
n
ng
â
n
h
à
ng
<
/Text
>
<
PickerItem
width
=
{
width
-
20
}
data
=
{
dataTest
}
onValueChange
=
{(
value
,
items
)
=>
{
setBank
(
items
);
}}
/
>
<
/View
>
<
PickerDate
value
=
{
converStringToDate
(
props
.
user
.
birthday
)}
title
=
{
'Ngày sinh'
}
/
>
<
View
style
=
{
styles
.
footer
}
>
<
TouchableOpacity
onPress
=
{()
=>
console
.
log
(
'Hello'
)}
style
=
{
styles
.
btn
}
>
<
Text
style
=
{
styles
.
txtBtn
}
>
C
ậ
p
nh
ậ
t
<
/Text
>
<
/TouchableOpacity
>
<
/View
>
<
TextMulti
value
=
{
props
.
user
.
address
}
title
=
{
'Địa chỉ'
}
/
>
<
/View
>
<
/ScrollView
>
<
View
style
=
{
styles
.
footer
}
>
<
TouchableOpacity
onPress
=
{()
=>
console
.
log
(
'Hello'
)}
style
=
{
styles
.
btn
}
>
<
Text
style
=
{
styles
.
txtBtn
}
>
C
ậ
p
nh
ậ
t
<
/Text
>
<
/TouchableOpacity
>
<
/View
>
<
/KeyboardAvoidingView
>
);
};
...
...
@@ -146,18 +138,18 @@ const styles = StyleSheet.create({
status
:
{
flexDirection
:
'row'
,
justifyContent
:
'space-between'
,
margin
Top
:
10
,
margin
Vertical
:
10
,
alignItems
:
'center'
,
},
footer
:
{
justifyContent
:
'center'
,
alignItems
:
'center'
,
margin
Top
:
30
,
margin
Bottom
:
30
,
},
btn
:
{
width
:
WIDTHXD
(
521
),
height
:
HEIGHTXD
(
120
),
borderRadius
:
1
5
,
borderRadius
:
1
0
,
backgroundColor
:
'#1C6AF6'
,
justifyContent
:
'center'
,
alignItems
:
'center'
,
...
...
@@ -181,6 +173,20 @@ const styles = StyleSheet.create({
paddingTop
:
5
,
},
row
:
{
height
:
HEIGHTXD
(
109
),
width
:
'100%'
,
justifyContent
:
'space-between'
,
marginVertical
:
5
,
width
:
250
,
},
});
export
default
GeneralInfor
;
const
mapStateToProps
=
(
state
)
=>
{
return
{
user
:
state
.
userReducer
,
};
};
export
default
connect
(
mapStateToProps
,
{
showLoading
,
hideLoading
})(
GeneralInfor
,
);
This diff is collapsed.
Click to expand it.
src/Screens/NewFeed/Tab1/Tab1.js
View file @
4a64ed70
...
...
@@ -12,85 +12,94 @@ import {
import
R
from
'../../../assets/R'
;
import
{
getFontXD
}
from
'../../../Config/Functions'
;
import
Item
from
'./item'
;
import
{
getListNew
}
from
'../../../apis/Functions/NewFeed'
;
const
fillers
=
[
{
id
:
'1'
,
title
:
'Ngoại hối'
,
},
{
id
:
'2'
,
title
:
'Cổ phiếu'
,
},
{
id
:
'3'
,
title
:
'Hàng hoá'
,
},
{
id
:
'4'
,
title
:
'Chỉ số'
,
},
];
import
{
getListNew
,
getListCategoryNew
}
from
'../../../apis/Functions/NewFeed'
;
const
NewFeed
=
(
props
)
=>
{
const
[
selected
,
setSelected
]
=
useState
(
1
);
const
[
selected
,
setSelected
]
=
useState
(
''
);
const
[
page
,
setPage
]
=
useState
(
1
);
const
[
data
,
setData
]
=
useState
([]);
const
[
tottalPage
,
setTotalPage
]
=
useState
(
1
);
const
[
isRefresh
,
setisRefresh
]
=
useState
(
false
);
const
[
fillters
,
setFillters
]
=
useState
([]);
const
getCategory
=
async
()
=>
{
const
res
=
await
getListCategoryNew
({
keyword
:
''
,
platform
:
Platform
.
OS
,
page_size
:
20
,
page_index
:
1
,
});
if
((
res
.
data
.
code
=
200
&&
res
.
data
.
data
))
{
setFillters
(
res
.
data
.
data
);
console
.
log
(
res
.
data
.
data
);
}
else
{
Alert
.
alert
(
'Thông báo!'
,
res
.
data
.
message
);
}
};
useEffect
(()
=>
{
getData
();
getCategory
();
},
[]);
useEffect
(()
=>
{
getData
();
},
[
selected
]);
const
getData
=
async
()
=>
{
setisRefresh
(
true
);
setPage
(
1
);
const
res
=
await
getListNew
({
keyword
:
''
,
category_id
:
''
,
category_id
:
selected
,
platform
:
Platform
.
OS
,
page_size
:
10
,
page_index
:
page
,
page_index
:
1
,
});
if
((
res
.
data
.
code
=
200
&&
res
.
data
.
data
))
{
setData
(
res
.
data
.
data
);
setTotalPage
(
res
.
data
.
meta
.
pages
);
}
else
{
Alert
.
alert
(
'Thông báo!'
,
res
.
data
.
message
);
}
setisRefresh
(
false
);
};
const
onRefresh
=
()
=>
{
console
.
log
(
'On Refersh'
);
getData
(
);
};
const
onLoadMore
=
()
=>
{
console
.
log
(
'Load more'
);
if
(
page
<
tottalPage
)
getDataLoadMore
(
);
};
// const getDataLoadMore=async ()=>{
// setisRefresh(true)
// const res=await GetListNotification({keyword:txtSearch,page_index:page+1,page_size:8,platform:Platform.OS})
// setPage(page+1)
// if(res.data.code==200){
// setData(data.concat(res.data.data))
// }
// setisRefresh(false)
// }
// const onLoadMore=()=>{
// if(page<tottalPage)
// getDataLoadMore()
const
getDataLoadMore
=
async
()
=>
{
setisRefresh
(
true
);
const
res
=
await
getListNew
({
keyword
:
''
,
category_id
:
''
,
platform
:
Platform
.
OS
,
page_size
:
10
,
page_index
:
page
+
1
,
});
setPage
(
page
+
1
);
// }
if
(
res
.
data
.
code
==
200
)
{
setData
(
data
.
concat
(
res
.
data
.
data
));
}
setisRefresh
(
false
);
};
return
(
<
View
style
=
{{
flex
:
1
,
backgroundColor
:
'white'
}}
>
<
View
style
=
{
styles
.
fillterView
}
>
<
ScrollView
horizontal
showsHorizontalScrollIndicator
=
{
false
}
>
{
fillers
.
map
((
e
)
=>
(
{
fill
t
ers
.
map
((
e
)
=>
(
<
TouchableOpacity
onPress
=
{()
=>
setSelected
(
e
.
id
)}
onPress
=
{()
=>
{
console
.
log
(
e
.
id
);
setSelected
(
e
.
id
);
}}
key
=
{
e
.
id
}
style
=
{[
styles
.
item
,
...
...
@@ -101,7 +110,7 @@ const NewFeed = (props) => {
styles
.
txt
,
e
.
id
==
selected
?
{
color
:
'#1C6AF6'
}
:
{},
]}
>
{
e
.
titl
e
}
{
e
.
nam
e
}
<
/Text
>
<
/TouchableOpacity
>
))}
...
...
This diff is collapsed.
Click to expand it.
src/apis/Functions/NewFeed.js
View file @
4a64ed70
...
...
@@ -6,3 +6,8 @@ export const getListNew = async (body) =>
GetData
(
url
.
urlGetListNew
,
body
)
.
then
((
res
)
=>
res
)
.
catch
((
err
)
=>
err
);
export
const
getListCategoryNew
=
async
(
body
)
=>
GetData
(
url
.
urlGetCategoryNew
,
body
)
.
then
((
res
)
=>
res
)
.
catch
((
err
)
=>
err
);
This diff is collapsed.
Click to expand it.
src/apis/url.js
View file @
4a64ed70
...
...
@@ -10,4 +10,5 @@ export default {
urlVerifyAccount
:
root
+
'api/v1/customers/verify-account'
,
urlGetListNew
:
root
+
'/api/v1/news/posts'
,
urlGetCategoryNew
:
root
+
'api/v1/news/categories'
,
};
This diff is collapsed.
Click to expand it.
src/components/Header/HeaderHome.js
View file @
4a64ed70
...
...
@@ -104,10 +104,9 @@ const renderLabel = (status) => {
const
HeaderHome
=
(
props
)
=>
{
const
navigate
=
useNavigation
();
console
.
log
(
props
.
user
.
status
);
const
copyToClipboard
=
()
=>
{
Alert
.
alert
(
'Đã sao chép!'
);
Alert
.
alert
(
'Đã sao chép
link giới thiệu
!'
);
Clipboard
.
setString
(
props
.
user
.
sponsor_url
);
};
...
...
@@ -211,7 +210,7 @@ const styles = StyleSheet.create({
},
containerTop
:
{
backgroundColor
:
'white'
,
height
:
HEIGHTXD
(
856
)
,
height
:
290
,
width
:
'90%'
,
borderRadius
:
10
,
shadowColor
:
'#000'
,
...
...
This diff is collapsed.
Click to expand it.
src/components/Header/HeaderSearch.js
View file @
4a64ed70
...
...
@@ -15,7 +15,6 @@ import {
}
from
'react-native'
;
import
R
from
'../../assets/R'
;
import
{
getFontXD
,
HEIGHT
,
WIDTHXD
}
from
'../../Config/Functions'
;
import
LinearGradient
from
'react-native-linear-gradient'
;
import
{
connect
}
from
'react-redux'
;
import
{
HEIGHTXD
}
from
'../../Config/Functions'
;
import
Modal
from
'react-native-modal'
;
...
...
This diff is collapsed.
Click to expand it.
src/components/Input/TextMulti.js
View file @
4a64ed70
...
...
@@ -4,7 +4,7 @@ import {HEIGHTXD, WIDTHXD, getFontXD} from '../../Config/Functions';
import
R
from
'../../assets/R'
;
const
TextField
=
(
props
)
=>
{
const
{
title
,
onChangeText
,
maxLength
}
=
props
;
const
{
title
,
onChangeText
,
maxLength
,
value
}
=
props
;
return
(
<
View
style
=
{{
marginVertical
:
5
}}
>
...
...
@@ -18,6 +18,7 @@ const TextField = (props) => {
<
/Text
>
<
TextInput
maxLength
=
{
maxLength
}
value
=
{
value
}
onChangeText
=
{(
val
)
=>
onChangeText
(
val
)}
multiline
=
{
true
}
numberOfLines
=
{
3
}
...
...
This diff is collapsed.
Click to expand it.
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