diff --git a/packages/react-store/src/index.ts b/packages/react-store/src/index.ts index 155b0f5..7d8cb12 100644 --- a/packages/react-store/src/index.ts +++ b/packages/react-store/src/index.ts @@ -61,6 +61,11 @@ export function shallow(objA: T, objB: T) { return true } + if (objA instanceof Date && objB instanceof Date) { + if (objA.getTime() !== objB.getTime()) return false + return true + } + const keysA = Object.keys(objA) if (keysA.length !== Object.keys(objB).length) { return false diff --git a/packages/react-store/tests/index.test.tsx b/packages/react-store/tests/index.test.tsx index 520768a..c14c80a 100644 --- a/packages/react-store/tests/index.test.tsx +++ b/packages/react-store/tests/index.test.tsx @@ -187,4 +187,16 @@ describe('shallow', () => { const objB = new Set([2]) expect(shallow(objA, objB)).toBe(false) }) + + test('should return false for dates with different values', () => { + const objA = new Date('2025-04-10T14:48:00') + const objB = new Date('2025-04-10T14:58:00') + expect(shallow(objA, objB)).toBe(false) + }) + + test('should return true for equal dates', () => { + const objA = new Date('2025-02-10') + const objB = new Date('2025-02-10') + expect(shallow(objA, objB)).toBe(true) + }) })