From e5b8e5b683235b4f56c9a3e2aa65b59758bdd5ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=B4mulo=20Penido?= Date: Tue, 29 Oct 2024 12:06:39 -0300 Subject: [PATCH 1/2] fix: enable publish button on library after component edit --- src/library-authoring/data/apiHooks.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/library-authoring/data/apiHooks.ts b/src/library-authoring/data/apiHooks.ts index 159fc8e6d7..0645117383 100644 --- a/src/library-authoring/data/apiHooks.ts +++ b/src/library-authoring/data/apiHooks.ts @@ -113,6 +113,8 @@ export const xblockQueryKeys = { export function invalidateComponentData(queryClient: QueryClient, contentLibraryId: string, usageKey: string) { queryClient.invalidateQueries({ queryKey: xblockQueryKeys.xblockFields(usageKey) }); queryClient.invalidateQueries({ queryKey: xblockQueryKeys.componentMetadata(usageKey) }); + // The description and display name etc. may have changed, so refresh everything in the library too: + queryClient.invalidateQueries({ queryKey: libraryAuthoringQueryKeys.contentLibrary(contentLibraryId) }); queryClient.invalidateQueries({ predicate: (query) => libraryQueryPredicate(query, contentLibraryId) }); } @@ -135,7 +137,6 @@ export const useCreateLibraryBlock = () => { return useMutation({ mutationFn: createLibraryBlock, onSettled: (_data, _error, variables) => { - queryClient.invalidateQueries({ queryKey: libraryAuthoringQueryKeys.contentLibrary(variables.libraryId) }); queryClient.invalidateQueries({ predicate: (query) => libraryQueryPredicate(query, variables.libraryId) }); }, }); @@ -150,8 +151,6 @@ export const useDeleteLibraryBlock = () => { mutationFn: deleteLibraryBlock, onSettled: (_data, _error, variables) => { const libraryId = getLibraryId(variables.usageKey); - queryClient.invalidateQueries({ queryKey: libraryAuthoringQueryKeys.contentLibrary(libraryId) }); - queryClient.invalidateQueries({ predicate: (query) => libraryQueryPredicate(query, libraryId) }); invalidateComponentData(queryClient, libraryId, variables.usageKey); }, }); @@ -367,11 +366,7 @@ export const useUpdateXBlockOLX = (usageKey: string) => { mutationFn: (newOLX: string) => setXBlockOLX(usageKey, newOLX), onSuccess: (olxFromServer) => { queryClient.setQueryData(xblockQueryKeys.xblockOLX(usageKey), olxFromServer); - // Reload the other data for this component: invalidateComponentData(queryClient, contentLibraryId, usageKey); - // And the description and display name etc. may have changed, so refresh everything in the library too: - queryClient.invalidateQueries({ queryKey: libraryAuthoringQueryKeys.contentLibrary(contentLibraryId) }); - queryClient.invalidateQueries({ predicate: (query) => libraryQueryPredicate(query, contentLibraryId) }); }, }); }; From c9b0c9eb530bd0a9de86625412ed666044b5ccd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=B4mulo=20Penido?= Date: Fri, 1 Nov 2024 10:37:25 -0300 Subject: [PATCH 2/2] fix: invalidate library on block creation --- src/library-authoring/data/apiHooks.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/library-authoring/data/apiHooks.ts b/src/library-authoring/data/apiHooks.ts index 0645117383..e1ab38f1f5 100644 --- a/src/library-authoring/data/apiHooks.ts +++ b/src/library-authoring/data/apiHooks.ts @@ -137,6 +137,7 @@ export const useCreateLibraryBlock = () => { return useMutation({ mutationFn: createLibraryBlock, onSettled: (_data, _error, variables) => { + queryClient.invalidateQueries({ queryKey: libraryAuthoringQueryKeys.contentLibrary(variables.libraryId) }); queryClient.invalidateQueries({ predicate: (query) => libraryQueryPredicate(query, variables.libraryId) }); }, });