export function preserveShallowEqual(current: T, next: T): T { if (Object.is(current, next)) return current; const currentRecord = current as Record; const nextRecord = next as Record; const currentKeys = Object.keys(currentRecord); const nextKeys = Object.keys(nextRecord); if (currentKeys.length !== nextKeys.length) return next; for (const key of currentKeys) { if (!Object.hasOwn(nextRecord, key) || !Object.is(currentRecord[key], nextRecord[key])) { return next; } } return current; }