Skip to content

Commit 3a06ddd

Browse files
committed
Add isCollection deepEqual for cached results
1 parent 2ae6062 commit 3a06ddd

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

lib/useOnyx.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,12 @@ function useOnyx<TKey extends OnyxKey, TReturnValue = OnyxValue<TKey>>(
236236
if (!(isFirstConnectionRef.current && options?.initWithStoredValues === false) && !shouldGetCachedValueRef.current) {
237237
const cachedResult = onyxSnapshotCache.getCachedResult<UseOnyxResult<TReturnValue>>(key, cacheKey);
238238
if (cachedResult !== undefined) {
239+
// Collections: preserve reference stability - if data is deeply equal, return same reference
240+
const isCollection = OnyxUtils.isCollectionKey(key);
241+
if (isCollection && resultRef.current && cachedResult !== resultRef.current && deepEqual(cachedResult, resultRef.current)) {
242+
return resultRef.current;
243+
}
244+
239245
resultRef.current = cachedResult;
240246
return cachedResult;
241247
}

0 commit comments

Comments
 (0)