import { PostStore } from "stores";
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.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;
  });
};

export const handleCreated = (payload) => {
  PostStore.update((state) => {
    state.items[payload.id] = parseRawPost(payload);

    updateWindowPosts(state);
  });
};