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,26 +44,34 @@ const PriceListView = (props) => { ...@@ -44,26 +44,34 @@ const PriceListView = (props) => {
data={dataPrice} data={dataPrice}
ListHeaderComponent={() => ListHeaderComponent={() =>
<View style={[styles.container]}> <View style={[styles.container]}>
<View style={[styles.headerContent, { <TouchableOpacity style={{flex: 0.3}} onPress={() => onSortByName()}>
flex: 0.3, <View style={[styles.headerContent, {
justifyContent: 'flex-start', flex: 0.3,
alignItems: 'center', justifyContent: 'flex-start',
}]}> alignItems: 'center',
<Text>Tên</Text> }]}>
<Image source={R.images.iconSort} style={styles.imgIcon}/> <Text>Tên</Text>
</View> <Image source={R.images.iconSort} style={styles.imgIcon}/>
<View style={[styles.headerContent, {flex: 1.5}]}> </View>
<Text>T l thay đổi</Text> </TouchableOpacity>
<Image source={R.images.iconSort} style={styles.imgIcon}/> <TouchableOpacity style={[styles.headerContent, {flex: 1.5}]} onPress={() => onSortByPercent()}>
</View> <View style={[styles.headerContent]}>
<View style={[styles.headerContent]}> <Text>T l thay đổi</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>
<View style={[styles.headerContent]}> <TouchableOpacity style={styles.headerContent} onPress={() => onSortByPriceOpenClose()}>
<Text>Giá cao/thp</Text> <View style={[styles.headerContent]}>
<Image source={R.images.iconSort} style={styles.imgIcon}/> <Text>Giá m/đóng</Text>
</View> <Image source={R.images.iconSort} style={styles.imgIcon}/>
</View>
</TouchableOpacity>
<TouchableOpacity style={{flex: 1}} onPress={() => onSortByPriceHighLow()}>
<View style={[styles.headerContent]}>
<Text>Giá cao/thp</Text>
<Image source={R.images.iconSort} style={styles.imgIcon}/>
</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();
......
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