From 2cf084130fb944ba993217600462530fe081b107 Mon Sep 17 00:00:00 2001 From: DingDongSoLong4 <99329275+DingDongSoLong4@users.noreply.github.com> Date: Tue, 1 Aug 2023 01:48:04 +0200 Subject: [PATCH] Fix graphql caching issues (#3973) * Fix migrate infinite loop * Fix readDanglingNull --- ui/v2.5/src/core/StashService.ts | 11 +---------- ui/v2.5/src/core/createClient.ts | 10 ++++++---- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/ui/v2.5/src/core/StashService.ts b/ui/v2.5/src/core/StashService.ts index 7850c0ae0..d9e89007a 100644 --- a/ui/v2.5/src/core/StashService.ts +++ b/ui/v2.5/src/core/StashService.ts @@ -1975,16 +1975,7 @@ export const queryLogs = () => fetchPolicy: "no-cache", }); -export const useSystemStatus = () => - GQL.useSystemStatusQuery({ - fetchPolicy: "no-cache", - }); - -export const querySystemStatus = () => - client.query({ - query: GQL.SystemStatusDocument, - fetchPolicy: "no-cache", - }); +export const useSystemStatus = () => GQL.useSystemStatusQuery(); export const useJobsSubscribe = () => GQL.useJobsSubscribeSubscription(); diff --git a/ui/v2.5/src/core/createClient.ts b/ui/v2.5/src/core/createClient.ts index 70e7ac4e4..2d2d91278 100644 --- a/ui/v2.5/src/core/createClient.ts +++ b/ui/v2.5/src/core/createClient.ts @@ -27,10 +27,12 @@ const readReference = (typename: string): FieldReadFunction => { }); }; -// A read function that returns null if no valid reference is available. +// A read function that returns null if a cached reference is invalid. // Means that a dangling reference implies the object was deleted. -const readDanglingNull: FieldReadFunction = (existing, { canRead }) => - canRead(existing) ? existing : null; +const readDanglingNull: FieldReadFunction = (existing, { canRead }) => { + if (existing === undefined) return undefined; + return canRead(existing) ? existing : null; +}; const typePolicies: TypePolicies = { Query: { @@ -60,7 +62,7 @@ const typePolicies: TypePolicies = { read: readReference("SavedFilter"), }, findDefaultFilter: { - read: readReference("SavedFilter"), + read: readDanglingNull, }, }, },