Newer
Older
taehui / taehui-fe / src / forum / usePutEssay.ts
@Taehui Taehui on 13 Mar 1 KB 2024-03-13 오전 9:57
import { useMutation, useQueryClient } from "@tanstack/react-query";
import { wwwAXIOS } from "src/Www";
import { getMillis } from "taehui-ts/date";
import { useTo } from "taehui-ts/fe-utility";

import { useAvatarStore } from "src/Stores";

export default function usePutEssay(forumID: string) {
  const { totem } = useAvatarStore();

  const queryClient = useQueryClient();

  const to = useTo();

  return useMutation({
    mutationFn: async ({
      essayID,
      title,
      text,
    }: {
      essayID: string;
      title: string;
      text: string;
    }) => {
      await wwwAXIOS.put(
        `/essay/${essayID}`,
        {
          title,
          text,
        },
        {
          headers: {
            millis: getMillis(),
            totem,
          },
        },
      );
    },
    onSuccess: async (data, { essayID }) => {
      await queryClient.invalidateQueries({ queryKey: ["forum"] });
      await queryClient.invalidateQueries({ queryKey: ["essay"] });

      to(`/forum/${forumID}/${essayID}`);
    },
  });
}