From ddb8bf8a5c7132b9241a52203dd6f354c22c6468 Mon Sep 17 00:00:00 2001 From: Pujit Mehrotra Date: Mon, 28 Oct 2024 09:54:37 -0400 Subject: [PATCH] refactor(web): improve signature & readability of mergeAndDedup cache function --- web/helpers/apollo-cache/merge.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/web/helpers/apollo-cache/merge.ts b/web/helpers/apollo-cache/merge.ts index eb372cf48..4bdaba59f 100644 --- a/web/helpers/apollo-cache/merge.ts +++ b/web/helpers/apollo-cache/merge.ts @@ -22,17 +22,12 @@ export function mergeAndDedup( incoming: T[] = [], getRef: (item: T) => Id, { offset }: { offset: number } = { offset: 0 } -) { +): T[] { const incomingRefs = new Set(incoming.map((item) => getRef(item))); // Set duplicated items in `existing` to `undefined` // This allows us to keep the incoming insertion/merge logic simple by retaining item positions. // We can easily remove duplicates later by filtering out `undefined` values. - const merged = existing.map((item) => { - if (incomingRefs.has(getRef(item))) { - return; - } - return item; - }); + const merged = existing.map((item) => incomingRefs.has(getRef(item)) ? undefined : item); // Merges incoming data into the correct offset position. Adapted from: // [Apollo Docs](https://www.apollographql.com/docs/react/pagination/core-api#improving-the-merge-function).