Commit 64a81713 by Giang Tran

Merge branch 'dev_phase2' of http://git.dcv.vn/tdgiangdev/InvestCustomer into dev_phase2

parents 7d089f9a 49c2f416
...@@ -17,7 +17,15 @@ const Home = (props) => { ...@@ -17,7 +17,15 @@ const Home = (props) => {
const [dataPriceFilter, setDataPriceFilter] = useState([]); const [dataPriceFilter, setDataPriceFilter] = useState([]);
const [listImage, setListImage] = useState([]); const [listImage, setListImage] = useState([]);
const [filters, setFilters] = useState([]); const [filters, setFilters] = useState([]);
const [filterId, setFilterId] = useState(-1); const [filterId, setFilterId] = useState(null);
const [isSortName, setIsSortName] = useState(null);
const [isSortPercent, setIsSortPercent] = useState(null);
const [isSortPriceOpenClose, setIsSortPriceOpenClose] = useState(null);
const [isSortPriceHighLow, setIsSortPriceHighLow] = useState(null);
const SORT_TYPE = {
DESC: 'DESC',
ASC: 'ASC'
}
useEffect(() => { useEffect(() => {
getData(); getData();
initSocket(); initSocket();
...@@ -91,6 +99,51 @@ const Home = (props) => { ...@@ -91,6 +99,51 @@ const Home = (props) => {
console.log(id, newList); console.log(id, newList);
}; };
const onSortByName = () => {
let type = 'ASC'
if(!isSortName || isSortName == SORT_TYPE.ASC) type = SORT_TYPE.DESC
let newData = type == SORT_TYPE.ASC ? [...dataPriceFilter].sort((a, b) => a.name > b.name ? 1 : -1 )
: [...dataPriceFilter].sort((a, b) => a.name < b.name ? 1 : -1 )
setDataPriceFilter(newData)
setIsSortPriceOpenClose(null)
setIsSortName(type)
setIsSortPercent(null)
setIsSortPriceHighLow(null)
}
const onSortByPercent = () => {
let type = 'ASC'
if(!isSortPercent || isSortPercent == SORT_TYPE.ASC) type = SORT_TYPE.DESC
let newData = type == SORT_TYPE.ASC ? [...dataPriceFilter].sort((a, b) => a.change > b.change ? 1 : -1 )
: [...dataPriceFilter].sort((a, b) => a.change < b.change ? 1 : -1 )
setDataPriceFilter(newData)
setIsSortPriceOpenClose(null)
setIsSortName(null)
setIsSortPercent(type)
setIsSortPriceHighLow(null)
}
const onSortByPriceOpenClose = () => {
let type = 'ASC'
if(!isSortPriceOpenClose || isSortPriceOpenClose == SORT_TYPE.ASC) type = SORT_TYPE.DESC
let newData = type == SORT_TYPE.ASC ? [...dataPriceFilter].sort((a, b) => a.open_price > b.open_price ? 1 : -1 )
: [...dataPriceFilter].sort((a, b) => a.open_price < b.open_price ? 1 : -1 )
setDataPriceFilter(newData)
setIsSortPriceOpenClose(type)
setIsSortName(null)
setIsSortPercent(null)
setIsSortPriceHighLow(null)
}
const onSortByPriceHighLow = () => {
let type = 'ASC'
if(!isSortPriceHighLow || isSortPriceHighLow == SORT_TYPE.ASC) type = SORT_TYPE.DESC
let newData = type == SORT_TYPE.ASC ? [...dataPriceFilter].sort((a, b) => a.high_price > b.high_price ? 1 : -1 )
: [...dataPriceFilter].sort((a, b) => a.high_price < b.high_price ? 1 : -1 )
setDataPriceFilter(newData)
setIsSortPriceOpenClose(null)
setIsSortName(null)
setIsSortPercent(null)
setIsSortPriceHighLow(type)
}
return <HomeView return <HomeView
data={data} data={data}
dataPrice={dataPriceFilter} dataPrice={dataPriceFilter}
...@@ -98,6 +151,10 @@ const Home = (props) => { ...@@ -98,6 +151,10 @@ const Home = (props) => {
filterId={filterId} filterId={filterId}
filters={filters} filters={filters}
setFilterId={changeFilter} setFilterId={changeFilter}
onSortByName={onSortByName}
onSortByPercent={onSortByPercent}
onSortByPriceOpenClose={onSortByPriceOpenClose}
onSortByPriceHighLow={onSortByPriceHighLow}
/>; />;
}; };
......
...@@ -29,6 +29,10 @@ const HomeView = (props) => { ...@@ -29,6 +29,10 @@ const HomeView = (props) => {
filterId={props.filterId} filterId={props.filterId}
filters={props.filters} filters={props.filters}
dataPrice={props.dataPrice} dataPrice={props.dataPrice}
onSortByName={props.onSortByName}
onSortByPercent={props.onSortByPercent}
onSortByPriceOpenClose={props.onSortByPriceOpenClose}
onSortByPriceHighLow={props.onSortByPriceHighLow}
/> />
</ScrollView> </ScrollView>
</ImageBackground> </ImageBackground>
......
...@@ -15,7 +15,7 @@ import {PRODUCTDETAIL} from '../../routers/ScreenNames'; ...@@ -15,7 +15,7 @@ import {PRODUCTDETAIL} from '../../routers/ScreenNames';
import {useNavigation} from '@react-navigation/native'; import {useNavigation} from '@react-navigation/native';
const PriceListView = (props) => { const PriceListView = (props) => {
const {setFilterId, filters, dataPrice, filterId} = props; const {setFilterId, filters, dataPrice, filterId, onSortByName, onSortByPercent, onSortByPriceOpenClose, onSortByPriceHighLow} = props;
const navigate = useNavigation(); const navigate = useNavigation();
return ( return (
<View style={{flex: 1}}> <View style={{flex: 1}}>
...@@ -44,6 +44,7 @@ const PriceListView = (props) => { ...@@ -44,6 +44,7 @@ const PriceListView = (props) => {
data={dataPrice} data={dataPrice}
ListHeaderComponent={() => ListHeaderComponent={() =>
<View style={[styles.container]}> <View style={[styles.container]}>
<TouchableOpacity style={{flex: 0.3}} onPress={() => onSortByName()}>
<View style={[styles.headerContent, { <View style={[styles.headerContent, {
flex: 0.3, flex: 0.3,
justifyContent: 'flex-start', justifyContent: 'flex-start',
...@@ -52,18 +53,25 @@ const PriceListView = (props) => { ...@@ -52,18 +53,25 @@ const PriceListView = (props) => {
<Text>Tên</Text> <Text>Tên</Text>
<Image source={R.images.iconSort} style={styles.imgIcon}/> <Image source={R.images.iconSort} style={styles.imgIcon}/>
</View> </View>
<View style={[styles.headerContent, {flex: 1.5}]}> </TouchableOpacity>
<TouchableOpacity style={[styles.headerContent, {flex: 1.5}]} onPress={() => onSortByPercent()}>
<View style={[styles.headerContent]}>
<Text>T l thay đổi</Text> <Text>T l thay đổi</Text>
<Image source={R.images.iconSort} style={styles.imgIcon}/> <Image source={R.images.iconSort} style={styles.imgIcon}/>
</View> </View>
</TouchableOpacity>
<TouchableOpacity style={styles.headerContent} onPress={() => onSortByPriceOpenClose()}>
<View style={[styles.headerContent]}> <View style={[styles.headerContent]}>
<Text>Giá m/đóng</Text> <Text>Giá m/đóng</Text>
<Image source={R.images.iconSort} style={styles.imgIcon}/> <Image source={R.images.iconSort} style={styles.imgIcon}/>
</View> </View>
</TouchableOpacity>
<TouchableOpacity style={{flex: 1}} onPress={() => onSortByPriceHighLow()}>
<View style={[styles.headerContent]}> <View style={[styles.headerContent]}>
<Text>Giá cao/thp</Text> <Text>Giá cao/thp</Text>
<Image source={R.images.iconSort} style={styles.imgIcon}/> <Image source={R.images.iconSort} style={styles.imgIcon}/>
</View> </View>
</TouchableOpacity>
</View>} </View>}
renderItem={({item}) => <ItemPrice item={item} renderItem={({item}) => <ItemPrice item={item}
onPress={() => navigate.navigate(PRODUCTDETAIL, { onPress={() => navigate.navigate(PRODUCTDETAIL, {
......
...@@ -155,12 +155,13 @@ const menus = [ ...@@ -155,12 +155,13 @@ const menus = [
]; ];
const Drawer = (props) => { const Drawer = (props) => {
const [imgAvatart, setImgAvatart] = useState(props.user.picture_url);
const navigate = useNavigation(); const navigate = useNavigation();
const [listMenu, setListMenu] = useState(menus); const [listMenu, setListMenu] = useState(menus);
return ( return (
<View style={styles.container}> <View style={styles.container}>
<View style={styles.header}> <View style={styles.header}>
<Image source={R.images.avartar} style={styles.imgAvatar} /> <Image source={imgAvatart ? {uri: imgAvatart} : R.images.avartar} style={styles.imgAvatar} />
<TouchableOpacity <TouchableOpacity
onPress={() => { onPress={() => {
props.toggleModal(); props.toggleModal();
......
...@@ -37,7 +37,6 @@ const PickerImg = (props) => { ...@@ -37,7 +37,6 @@ const PickerImg = (props) => {
const naviagtion = useNavigation(); const naviagtion = useNavigation();
const [isModalVisible, setModalVisible] = useState(false); const [isModalVisible, setModalVisible] = useState(false);
const [imgAvatart, setImgAvatart] = useState(props.user.picture_url); const [imgAvatart, setImgAvatart] = useState(props.user.picture_url);
// useEffect(() => { // useEffect(() => {
// setTimeout(() => { // setTimeout(() => {
// console.log('Affter', props.user.picture_url); // console.log('Affter', props.user.picture_url);
...@@ -63,10 +62,10 @@ const PickerImg = (props) => { ...@@ -63,10 +62,10 @@ const PickerImg = (props) => {
const res = await changeAvatart( const res = await changeAvatart(
createFormData(image, {uid: props.user.uid, platform: Platform.OS}), createFormData(image, {uid: props.user.uid, platform: Platform.OS}),
); );
console.log('upload avatar', res) console.log('upload avatar', res);
props.hideLoading(); props.hideLoading();
if (res?.status == 200 && res.data) { if (res?.status == 200 && res.data) {
if(res.data.code == 200) { if (res.data.code == 200) {
setTimeout(() => { setTimeout(() => {
props.saveUserToRedux(res.data.data); props.saveUserToRedux(res.data.data);
Alert.alert(I18n.t('Notification'), res.data.message); Alert.alert(I18n.t('Notification'), res.data.message);
...@@ -115,11 +114,11 @@ const PickerImg = (props) => { ...@@ -115,11 +114,11 @@ const PickerImg = (props) => {
return ( return (
<TouchableOpacity onPress={() => setModalVisible(true)}> <TouchableOpacity onPress={() => setModalVisible(true)}>
<View style={styles.containerImg}> <View style={styles.containerImg}>
{imgAvatart ? ( {/*{imgAvatart ? (*/}
<Image source={{uri: imgAvatart}} style={styles.imgAvatar} /> <Image source={imgAvatart ? {uri: imgAvatart} : R.images.avartar} style={styles.imgAvatar}/>
) : ( {/*) : (*/}
<View style={styles.imgAvatar} /> {/* <View style={styles.imgAvatar}/>*/}
)} {/*)}*/}
<View style={styles.iconPicker}> <View style={styles.iconPicker}>
<Image <Image
...@@ -149,19 +148,19 @@ const PickerImg = (props) => { ...@@ -149,19 +148,19 @@ const PickerImg = (props) => {
}} }}
/> />
<View style={styles.line} /> <View style={styles.line}/>
<Block row space={'around'} center> <Block row space={'around'} center>
<TouchableOpacity style={styles.selectionImg} onPress={onCapture}> <TouchableOpacity style={styles.selectionImg} onPress={onCapture}>
<Image style={styles.imgIcon} source={R.images.iconCamera} /> <Image style={styles.imgIcon} source={R.images.iconCamera}/>
<AppText i18nKey={'Take_photo'} style={styles.txtTitleBtn} /> <AppText i18nKey={'Take_photo'} style={styles.txtTitleBtn}/>
</TouchableOpacity> </TouchableOpacity>
<TouchableOpacity <TouchableOpacity
style={styles.selectionImg} style={styles.selectionImg}
onPress={onchoosGalery}> onPress={onchoosGalery}>
<Image style={styles.imgIcon} source={R.images.iconImg} /> <Image style={styles.imgIcon} source={R.images.iconImg}/>
<AppText i18nKey={'Photo_library'} style={styles.txtTitleBtn} /> <AppText i18nKey={'Photo_library'} style={styles.txtTitleBtn}/>
</TouchableOpacity> </TouchableOpacity>
</Block> </Block>
</View> </View>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment