diff --git a/apps/admin-web/src/components/ArticleEditorCanvas.vue b/apps/admin-web/src/components/ArticleEditorCanvas.vue index 79e56a9..d301a80 100644 --- a/apps/admin-web/src/components/ArticleEditorCanvas.vue +++ b/apps/admin-web/src/components/ArticleEditorCanvas.vue @@ -57,6 +57,7 @@ import { } from '@milkdown/kit/prose/state' import { Decoration, DecorationSet, type EditorView } from '@milkdown/kit/prose/view' import { callCommand, replaceAll } from '@milkdown/kit/utils' +import { useQueryClient } from '@tanstack/vue-query' import { message } from 'ant-design-vue' // NOTE: import each common stylesheet explicitly instead of the aggregate // `theme/common/style.css`. The aggregate transitively `@import`s `latex.css`, @@ -121,6 +122,7 @@ const emit = defineEmits<{ }>() const { t } = useI18n() +const queryClient = useQueryClient() const crepeRef = shallowRef(null) const syncingExternalMarkdown = ref(false) const editorRootRef = ref(null) @@ -1481,6 +1483,7 @@ async function generateAiOptimizePreview(): Promise { if (aiOptimizeAbortController === controller) { aiOptimizeAbortController = null } + void queryClient.invalidateQueries({ queryKey: ['workspace'] }) } } diff --git a/apps/admin-web/src/components/GenerateTaskDrawer.vue b/apps/admin-web/src/components/GenerateTaskDrawer.vue index d65b0de..6a393e8 100644 --- a/apps/admin-web/src/components/GenerateTaskDrawer.vue +++ b/apps/admin-web/src/components/GenerateTaskDrawer.vue @@ -173,6 +173,7 @@ const instantGenerateMutation = useMutation({ await Promise.all([ queryClient.invalidateQueries({ queryKey: ['articles'] }), queryClient.invalidateQueries({ queryKey: ['instantTasks'] }), + queryClient.invalidateQueries({ queryKey: ['workspace'] }), ]) }, onError: (error) => message.error(formatError(error)), diff --git a/apps/admin-web/src/components/kol/KolPromptEditor.vue b/apps/admin-web/src/components/kol/KolPromptEditor.vue index e74115f..c5de98f 100644 --- a/apps/admin-web/src/components/kol/KolPromptEditor.vue +++ b/apps/admin-web/src/components/kol/KolPromptEditor.vue @@ -275,6 +275,7 @@ async function runAiAssistStream(payload: KolAssistRequest) { if (aiAssistAbortController === controller) { aiAssistAbortController = null } + void queryClient.invalidateQueries({ queryKey: ['workspace'] }) } } @@ -411,6 +412,7 @@ async function generateSelectionAiPreview() { if (selectionAiAbortController === controller) { selectionAiAbortController = null } + void queryClient.invalidateQueries({ queryKey: ['workspace'] }) } } diff --git a/apps/admin-web/src/views/FreeCreateView.vue b/apps/admin-web/src/views/FreeCreateView.vue index 4454d85..13b2dd5 100644 --- a/apps/admin-web/src/views/FreeCreateView.vue +++ b/apps/admin-web/src/views/FreeCreateView.vue @@ -95,6 +95,7 @@ const deleteMutation = useMutation({ const createMutation = useMutation({ mutationFn: () => articlesApi.create({}), onSuccess: (data) => { + void queryClient.invalidateQueries({ queryKey: ['workspace'] }) void router.push({ name: 'article-editor', params: { id: String(data.id) } }) }, onError: (error) => { diff --git a/apps/admin-web/src/views/TemplateWizardView.vue b/apps/admin-web/src/views/TemplateWizardView.vue index 7638ebc..7edf042 100644 --- a/apps/admin-web/src/views/TemplateWizardView.vue +++ b/apps/admin-web/src/views/TemplateWizardView.vue @@ -839,6 +839,7 @@ function beginAssistTask(kind: 'analyze' | 'title' | 'outline'): void { } function endAssistTask(): void { + void queryClient.invalidateQueries({ queryKey: ['workspace'] }) window.setTimeout(() => { assistModalOpen.value = false assistBusy.value = false