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