import { PostStore } from "stores";
import { parseRawPost, updateWindowPosts } from "utils";

export const handleRanking = (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 handleChanged = (payload) => {
  PostStore.update((state) => {
    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) => {
    if (state.items[payload.id]) {
      state.items[payload.id] = parseRawPost(payload);
      updateWindowPosts(state);
    }
  });
};