From a3219c3e243bca56d5b5edf722b13c5095ebb130 Mon Sep 17 00:00:00 2001 From: Dylan Jeffers Date: Mon, 21 Aug 2023 12:54:38 -0700 Subject: [PATCH] [C-2975] Fix stale local data (#3915) --- packages/common/src/models/User.ts | 1 + packages/common/src/store/cache/reducer.ts | 1 + packages/common/src/store/cache/types.ts | 1 + packages/web/src/common/store/account/sagas.js | 2 +- 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/common/src/models/User.ts b/packages/common/src/models/User.ts index 24a71ef1fc..efe8dd18e3 100644 --- a/packages/common/src/models/User.ts +++ b/packages/common/src/models/User.ts @@ -63,6 +63,7 @@ export type UserMetadata = { associated_wallets_balance?: Nullable playlist_library?: PlaylistLibrary userBank?: SolanaWalletAddress + local?: boolean } & Timestamped export type ComputedUserProperties = { diff --git a/packages/common/src/store/cache/reducer.ts b/packages/common/src/store/cache/reducer.ts index 7c4f35641c..079623a05e 100644 --- a/packages/common/src/store/cache/reducer.ts +++ b/packages/common/src/store/cache/reducer.ts @@ -201,6 +201,7 @@ const addEntries = (state: CacheState, entries: any[], replace?: boolean) => { newEntries[entity.id] = wrapEntry(entity.metadata) } else if ( existing && + !existing.local && _timestamp + entryTTL > now && cacheType === 'fast' ) { diff --git a/packages/common/src/store/cache/types.ts b/packages/common/src/store/cache/types.ts index 0026649da1..9d82bec91a 100644 --- a/packages/common/src/store/cache/types.ts +++ b/packages/common/src/store/cache/types.ts @@ -1,3 +1,4 @@ export type Metadata = { blocknumber?: number + local?: boolean } diff --git a/packages/web/src/common/store/account/sagas.js b/packages/web/src/common/store/account/sagas.js index eb80ec1d59..8c8a0cd799 100644 --- a/packages/web/src/common/store/account/sagas.js +++ b/packages/web/src/common/store/account/sagas.js @@ -226,7 +226,7 @@ export function* fetchLocalAccountAsync() { if (cachedAccount && cachedAccountUser && !cachedAccountUser.is_deactivated) { yield call( cacheAccount, - cachedAccountUser, + { ...cachedAccountUser, local: true }, cachedAccountUser.orderedPlaylists ) } else if (!currentUserExists) {