improvement: consider loading in all websockets handlers

This commit is contained in:
canove
2020-08-10 19:12:30 -03:00
parent d747d49881
commit 1c0e251b24
3 changed files with 28 additions and 26 deletions

View File

@@ -28,6 +28,8 @@ import ContactsSekeleton from "../../components/ContactsSekeleton";
import ContactModal from "../../components/ContactModal";
import ConfirmationModal from "../../components/ConfirmationModal/";
const socket = openSocket(process.env.REACT_APP_BACKEND_URL);
const useStyles = makeStyles(theme => ({
mainContainer: {
flex: 1,
@@ -103,23 +105,23 @@ const Contacts = () => {
}, [searchParam, page, rowsPerPage]);
useEffect(() => {
const socket = openSocket(process.env.REACT_APP_BACKEND_URL);
socket.on("contact", data => {
if (data.action === "update" || data.action === "create") {
updateContacts(data.contact);
}
if (data.action === "delete") {
deleteContact(data.contactId);
}
});
return () => {
socket.disconnect();
};
}, []);
useEffect(() => {
socket.on("contact", data => {
if ((data.action === "update" || data.action === "create") && !loading) {
updateContacts(data.contact);
}
if (data.action === "delete" && !loading) {
deleteContact(data.contactId);
}
});
}, [loading]);
const updateContacts = contact => {
setContacts(prevState => {
const contactIndex = prevState.findIndex(c => c.id === contact.id);