import { IonContent, IonHeader, IonPage, IonTitle, IonToolbar, IonSearchbar, IonButtons, IonButton, IonIcon, IonItem, IonModal } from '@ionic/react'; import { checkmarkDone, createOutline } from 'ionicons/icons'; import './Chats.css'; import { ChatStore, ContactStore } from '../store'; import { getContacts, getChats } from '../store/Selectors'; import { useEffect, useState } from 'react'; import ChatItem from '../components/ChatItem'; import { useRef } from 'react'; import ContactModal from '../components/ContactModal'; const Chats = () => { const pageRef = useRef(); const contacts = ContactStore.useState(getContacts); const latestChats = ChatStore.useState(getChats); const [ results, setResults ] = useState(latestChats); const [ showContactModal, setShowContactModal ] = useState(false); useEffect(() => { setResults(latestChats); }, [ latestChats ]); const search = e => { const searchTerm = e.target.value; if (searchTerm !== "") { const searchTermLower = searchTerm.toLowerCase(); const newResults = latestChats.filter(chat => contacts.filter(c => c.id === chat.contact_id)[0].name.toLowerCase().includes(searchTermLower)); setResults(newResults); } else { setResults(latestChats); } } return ( Edit setShowContactModal(true) }> Chats Chats search(e) } /> { results.map((chat, index) => { return ; })} setShowContactModal(false) }> setShowContactModal(false) } /> ); }; export default Chats;