mirror of https://github.com/halo-dev/halo
41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
import type { Post } from "@halo-dev/api-client";
|
|
import { coreApiClient } from "@halo-dev/api-client";
|
|
import { Toast } from "@halo-dev/components";
|
|
import { useMutation } from "@tanstack/vue-query";
|
|
import { useI18n } from "vue-i18n";
|
|
|
|
export function usePostUpdateMutate() {
|
|
const { t } = useI18n();
|
|
|
|
return useMutation({
|
|
mutationKey: ["post-update"],
|
|
mutationFn: async (post: Post) => {
|
|
const { data: latestPost } = await coreApiClient.content.post.getPost({
|
|
name: post.metadata.name,
|
|
});
|
|
|
|
return await coreApiClient.content.post.updatePost(
|
|
{
|
|
name: post.metadata.name,
|
|
post: {
|
|
...latestPost,
|
|
spec: post.spec,
|
|
metadata: {
|
|
...latestPost.metadata,
|
|
annotations: post.metadata.annotations,
|
|
},
|
|
},
|
|
},
|
|
{
|
|
mute: true,
|
|
}
|
|
);
|
|
},
|
|
retry: 3,
|
|
onError: (error) => {
|
|
console.error("Failed to update post", error);
|
|
Toast.error(t("core.common.toast.server_internal_error"));
|
|
},
|
|
});
|
|
}
|