diff --git a/src/components/modules/dashboard/writing/BaseWritingProvider.tsx b/src/components/modules/dashboard/writing/BaseWritingProvider.tsx index 3eb92d61e9..b303c285a6 100644 --- a/src/components/modules/dashboard/writing/BaseWritingProvider.tsx +++ b/src/components/modules/dashboard/writing/BaseWritingProvider.tsx @@ -1,3 +1,5 @@ +'use client' + import { createContext, useContext, useEffect, useMemo, useState } from 'react' import { useForceUpdate } from 'framer-motion' import { produce } from 'immer' diff --git a/src/queries/definition/note.ts b/src/queries/definition/note.ts index 8b72121d2b..61a4408335 100644 --- a/src/queries/definition/note.ts +++ b/src/queries/definition/note.ts @@ -4,6 +4,7 @@ import { revalidateTag } from 'next/cache' import type { NoteModel, NoteWrappedPayload } from '@mx-space/api-client' import type { NoteDto } from '~/models/writing' +import { useResetAutoSaverData } from '~/components/modules/dashboard/writing/BaseWritingProvider' import { cloneDeep } from '~/lib/_' import { apiClient } from '~/lib/request' import { routeBuilder, Routes } from '~/lib/route-builder' @@ -73,8 +74,9 @@ export const noteAdmin = { }), } -export const useCreateNote = () => - useMutation({ +export const useCreateNote = () => { + const resetAutoSaver = useResetAutoSaverData() + return useMutation({ mutationFn: (data: NoteDto) => { const readonlyKeys = [ 'id', @@ -95,11 +97,14 @@ export const useCreateNote = () => onSuccess: () => { revalidateTag('note') toast.success('创建成功') + resetAutoSaver('note') }, }) +} -export const useUpdateNote = () => - useMutation({ +export const useUpdateNote = () => { + const resetAutoSaver = useResetAutoSaverData() + return useMutation({ mutationFn: (data: NoteDto) => { const { id } = data const readonlyKeys = [ @@ -118,7 +123,9 @@ export const useUpdateNote = () => data: nextData, }) }, - onSuccess: () => { + onSuccess: ({ id }) => { toast.success('更新成功') + resetAutoSaver('note', id) }, }) +} diff --git a/src/queries/definition/post.ts b/src/queries/definition/post.ts index c4f9394543..c0f5935748 100644 --- a/src/queries/definition/post.ts +++ b/src/queries/definition/post.ts @@ -2,6 +2,7 @@ import { useMutation } from '@tanstack/react-query' import type { PaginateResult, PostModel, TagModel } from '@mx-space/api-client' import type { PostDto } from '~/models/writing' +import { useResetAutoSaverData } from '~/components/modules/dashboard/writing/BaseWritingProvider' import { cloneDeep } from '~/lib/_' import { apiClient } from '~/lib/request' import { routeBuilder, Routes } from '~/lib/route-builder' @@ -102,8 +103,9 @@ export const postAdmin = { }), } -export const useCreatePost = () => - useMutation({ +export const useCreatePost = () => { + const resetAutoSaver = useResetAutoSaverData() + return useMutation({ mutationFn: (data: PostDto) => { const readonlyKeys = [ 'id', @@ -123,11 +125,14 @@ export const useCreatePost = () => }, onSuccess: () => { toast.success('创建成功') + resetAutoSaver('post') }, }) +} -export const useUpdatePost = () => - useMutation({ +export const useUpdatePost = () => { + const resetAutoSaver = useResetAutoSaverData() + return useMutation({ mutationFn: (data: PostDto) => { const { id } = data const readonlyKeys = [ @@ -146,7 +151,9 @@ export const useUpdatePost = () => data: nextData, }) }, - onSuccess: () => { + onSuccess: ({ id }) => { toast.success('更新成功') + resetAutoSaver('post', id) }, }) +}