From 441292c727e63863431ad2e3a1984e64a050aad2 Mon Sep 17 00:00:00 2001 From: Markus Dobmann Date: Mon, 13 Nov 2023 11:06:59 +0100 Subject: [PATCH] prepopulate cache with newly added links --- .../data/use-add-profile-link-mutation.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/client/me/profile-links/data/use-add-profile-link-mutation.ts b/client/me/profile-links/data/use-add-profile-link-mutation.ts index 78c4c40dffd28d..8ecee889366fb3 100644 --- a/client/me/profile-links/data/use-add-profile-link-mutation.ts +++ b/client/me/profile-links/data/use-add-profile-link-mutation.ts @@ -6,6 +6,7 @@ import type { AddProfileLinksPayload, AddProfileLinksResponse, AddProfileLinksVariables, + ProfileLink, } from './types'; export const useAddProfileLinkMutation = ( options: AddProfileLinksMutationOptions = {} ) => { @@ -16,6 +17,18 @@ export const useAddProfileLinkMutation = ( options: AddProfileLinksMutationOptio }, ...options, onSuccess: ( ...args ) => { + const [ data ] = args; + + queryClient.setQueryData( + [ 'profile-links' ], + ( cachedProfileLinks: ProfileLink[] | undefined ) => { + if ( ! cachedProfileLinks || ! data.added ) { + return cachedProfileLinks; + } + return [ ...cachedProfileLinks, ...data.added ]; + } + ); + queryClient.invalidateQueries( [ 'profile-links' ] ); options.onSuccess?.( ...args ); },