import has from "lodash/has"; import { PostStore } from "stores"; import { parseRawPost, postsStateMapping, updateWindowPosts } from "utils"; export const handlePostRanked = (payload) => { PostStore.update((state) => { 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); } } }); }; export const handlePostChanged = (payload) => { PostStore.update((state) => { if (state.items[payload.id]) { if (has(payload, "content")) { state.items[payload.id].content = payload.content; state.items[payload.id].modified = true; } if (has(payload, "state")) { state.items[payload.id].state = postsStateMapping[payload.state]; } if (has(payload, "is_archived")) { state.items[payload.id].archived = payload.is_archived; } } }); }; export const handlePostCreated = (payload) => { PostStore.update((state) => { state.items[payload.id] = parseRawPost(payload); state.itemCount = Object.keys(state.items).length; updateWindowPosts(state); }); };