Commit dfac4b31 by tungnq

TODO: Đã fix giao diện thành search thành công

parent fd33b466
import React, { useState } from 'react'; import React, { useState, useMemo } from 'react';
import {Text, View, StyleSheet} from 'react-native'; import {Text, View, StyleSheet} from 'react-native';
import NotificationView from './view'; import NotificationView from './view';
...@@ -107,13 +107,31 @@ const Notification = (props) => { ...@@ -107,13 +107,31 @@ const Notification = (props) => {
setSearchText(text); setSearchText(text);
}; };
const fitlerSearch = useMemo(() => {
const list = dataNotifi[activeTab] || [];
if (!searchText.trim()) return list;
const searchLower = searchText.toLowerCase();
return list.filter( item =>{
if (item.title_notifi) {
return item.title_notifi.toLowerCase().includes(searchLower)
}
if (item.title_notifi_tuition) {
return item.title_notifi_tuition.toLowerCase().includes(searchLower)
}
return false;
});
}, [dataNotifi, activeTab, searchText])
return ( return (
<NotificationView <NotificationView
dataTitleListTabView={dataListTabView} dataTitleListTabView={dataListTabView}
activeTab={activeTab} activeTab={activeTab}
onTabChange={handleTabChange} onTabChange={handleTabChange}
dataNotifi={dataNotifi} dataNotifi={{[activeTab]:fitlerSearch}}
getEmptyMessage={getEmptyMessage} getEmptyMessage={getEmptyMessage}
searchText={searchText} searchText={searchText}
onSearchChange={handleSearchChange} onSearchChange={handleSearchChange}
......
...@@ -46,8 +46,6 @@ const styles = StyleSheet.create({ ...@@ -46,8 +46,6 @@ const styles = StyleSheet.create({
backgroundColor:R.colors.white, backgroundColor:R.colors.white,
flexDirection:'row', flexDirection:'row',
maxHeight:41, maxHeight:41,
alignItems:'center',
justifyContent:'center',
}, },
boxIconSearch:{ boxIconSearch:{
maxWidth:35, maxWidth:35,
...@@ -62,6 +60,13 @@ const styles = StyleSheet.create({ ...@@ -62,6 +60,13 @@ const styles = StyleSheet.create({
fontWeight:'500', fontWeight:'500',
flex:1, flex:1,
}, },
// boxSearch:{
// position:'relative',
// top:0,
// right:0,
// left:0,
// },
//List Notification //List Notification
containerListNotification:{ containerListNotification:{
paddingVertical:15, paddingVertical:15,
......
...@@ -31,7 +31,7 @@ const NotificationView = props => { ...@@ -31,7 +31,7 @@ const NotificationView = props => {
} }
}; };
//Xử lý màu trạng thái khi ở tab view //Xử lý màu trạng thái khi ở tab view
const getStatusColor = (status) => { const getStatusColor = status => {
switch (status) { switch (status) {
case 'Đã gửi': case 'Đã gửi':
return R.colors.green || '#4CAF50'; return R.colors.green || '#4CAF50';
...@@ -72,7 +72,7 @@ const NotificationView = props => { ...@@ -72,7 +72,7 @@ const NotificationView = props => {
<View style={styles.boxIconSearch}> <View style={styles.boxIconSearch}>
<Image <Image
source={R.images.icSearchHeader} source={R.images.icSearchHeader}
maxWidth={Platform.OS === 'ios' ? 16: 20} maxWidth={Platform.OS === 'ios' ? 16 : 20}
maxHeight={Platform.OS === 'ios' ? 16 : 20} maxHeight={Platform.OS === 'ios' ? 16 : 20}
resizeMode="contain" resizeMode="contain"
tintColor={R.colors.gray} tintColor={R.colors.gray}
...@@ -93,10 +93,16 @@ const NotificationView = props => { ...@@ -93,10 +93,16 @@ const NotificationView = props => {
const renderNotificationItemView = ({item}) => { const renderNotificationItemView = ({item}) => {
return ( return (
<View style={styles.cardItem}> <View style={styles.cardItem}>
<Text style={styles.text} numberOfLines={1} ellipsizeMode="tail">{item.title_notifi}</Text> <Text style={styles.text} numberOfLines={1} ellipsizeMode="tail">
<Text style={styles.text} numberOfLines={2} ellipsizeMode="tail">{item.message}</Text> {item.title_notifi}
</Text>
<Text style={styles.text} numberOfLines={2} ellipsizeMode="tail">
{item.message}
</Text>
<View style={styles.boxTimeView}> <View style={styles.boxTimeView}>
<Text style={styles.text} numberOfLines={1} ellipsizeMode="tail">{item.time}</Text> <Text style={styles.text} numberOfLines={1} ellipsizeMode="tail">
{item.time}
</Text>
</View> </View>
</View> </View>
); );
...@@ -123,18 +129,24 @@ const NotificationView = props => { ...@@ -123,18 +129,24 @@ const NotificationView = props => {
{item.time_send} {item.time_send}
</Text> </Text>
<View style={styles.sizedBox}></View> <View style={styles.sizedBox}></View>
<Text style={[styles.text, {color: statusColor}]} numberOfLines={1} ellipsizeMode="tail"> <Text
style={[styles.text, {color: statusColor}]}
numberOfLines={1}
ellipsizeMode="tail">
{item.status} {item.status}
</Text> </Text>
</View> </View>
<Text style={styles.text} numberOfLines={1} ellipsizeMode="tail"> <Text style={styles.text} numberOfLines={1} ellipsizeMode="tail">
<Text style={styles.text}>Loi thông báo: </Text> <Text style={styles.text}>Loi thông báo: </Text>
{item.style}</Text> {item.style}
</Text>
</View> </View>
<Image source={R.images.icNext} resizeMode="contain" style={{width: 10, height: 15, alignSelf:'center'}} /> <Image
source={R.images.icNext}
resizeMode="contain"
style={{width: 10, height: 15, alignSelf: 'center'}}
/>
</TouchableOpacity> </TouchableOpacity>
); );
}; };
...@@ -163,13 +175,27 @@ const NotificationView = props => { ...@@ -163,13 +175,27 @@ const NotificationView = props => {
return ( return (
<View style={styles.safeArea}> <View style={styles.safeArea}>
<Header title={'Thông báo'} /> <Header title={'Thông báo'} />
<View>
{renderListTabView()} {renderListTabView()}
{renderSearchBox()}
</View>
<View style={styles.containerBody}> <View style={styles.containerBody}>
{(dataNotifi[activeTab] && dataNotifi[activeTab].length > 0) && renderSearchBox()}
{dataNotifi[activeTab].length === 0 ? renderItemEmpty(): renderListNotification()}
{/* {(dataNotifi[activeTab] && dataNotifi[activeTab].length > 0) && renderSearchBox()} */}
{dataNotifi[activeTab].length === 0
? renderItemEmpty()
: renderListNotification()}
</View> </View>
<View style={styles.containerFooter}> <View style={styles.containerFooter}>
<TouchableOpacity style={styles.btnFooter} onPress={() => navigate.navigate(SCREENNAME.PROFILE)}> <TouchableOpacity
style={styles.btnFooter}
onPress={() => navigate.navigate(SCREENNAME.PROFILE)}>
<Text style={styles.textBtnFooter}>To thông báo mi</Text> <Text style={styles.textBtnFooter}>To thông báo mi</Text>
</TouchableOpacity> </TouchableOpacity>
</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