From 402d6f6101236e302eb014f6754aa9ca534994b0 Mon Sep 17 00:00:00 2001 From: xaralis <filip.varecha@fragaria.cz> Date: Sat, 19 Dec 2020 21:32:16 +0100 Subject: [PATCH] feat: make sure to only apply WS event if that item is loaded --- src/ws/handlers/posts.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/ws/handlers/posts.js b/src/ws/handlers/posts.js index ecd3e27..7ef6c3f 100644 --- a/src/ws/handlers/posts.js +++ b/src/ws/handlers/posts.js @@ -3,29 +3,34 @@ import { parseRawPost, updateWindowPosts } from "utils"; export const handleRanking = (payload) => { PostStore.update((state) => { - state.items[payload.id].ranking.likes = payload["ranking_likes"]; - state.items[payload.id].ranking.dislikes = payload["ranking_dislikes"]; - state.items[payload.id].ranking.score = - state.items[payload.id].ranking.likes - - state.items[payload.id].ranking.dislikes; + if (state.items[payload.id]) { + state.items[payload.id].ranking.likes = payload["ranking_likes"]; + state.items[payload.id].ranking.dislikes = payload["ranking_dislikes"]; + state.items[payload.id].ranking.score = + state.items[payload.id].ranking.likes - + state.items[payload.id].ranking.dislikes; - if (state.filters.sort === "byScore") { - updateWindowPosts(state); + if (state.filters.sort === "byScore") { + updateWindowPosts(state); + } } }); }; export const handleChanged = (payload) => { PostStore.update((state) => { - state.items[payload.id].content = payload.content; - state.items[payload.id].modified = true; + if (state.items[payload.id]) { + state.items[payload.id].content = payload.content; + state.items[payload.id].modified = true; + } }); }; export const handleCreated = (payload) => { PostStore.update((state) => { - state.items[payload.id] = parseRawPost(payload); - - updateWindowPosts(state); + if (state.items[payload.id]) { + state.items[payload.id] = parseRawPost(payload); + updateWindowPosts(state); + } }); }; -- GitLab