From 5b22b987cd936c1dda9ea5bf597182bf709c8498 Mon Sep 17 00:00:00 2001 From: rxshellg Date: Fri, 19 Jun 2026 00:21:16 -0400 Subject: [PATCH 1/2] Fixed impure performance.now call --- src/components/layout/FooterCat.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/components/layout/FooterCat.tsx b/src/components/layout/FooterCat.tsx index 1f8be5f..24b17ae 100644 --- a/src/components/layout/FooterCat.tsx +++ b/src/components/layout/FooterCat.tsx @@ -41,7 +41,7 @@ function getPose(t: number, elapsed: number) { function FooterCat() { const containerRef = useRef(null); const canvasRef = useRef(null); - const startTime = useRef(performance.now()); + const startTime = useRef(null); const [size, setSize] = useState({ width: 0, height: 0 }); const [img, setImg] = useState(null); @@ -74,6 +74,10 @@ function FooterCat() { let rafId: number; const tick = (now: number) => { + if (startTime.current === null) { + startTime.current = now; + } + const elapsed = (now - startTime.current) / 1000; const { x, row, col } = getPose(elapsed % CYCLE_DURATION, elapsed); From 7efbc26e72c5c20f0249d14309b730dde63f6843 Mon Sep 17 00:00:00 2001 From: rxshellg Date: Fri, 19 Jun 2026 00:38:29 -0400 Subject: [PATCH 2/2] Added ResizeObserver mock for jsdom --- src/test/setup.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/test/setup.ts b/src/test/setup.ts index 6914f45..a5c73e0 100644 --- a/src/test/setup.ts +++ b/src/test/setup.ts @@ -30,3 +30,21 @@ Object.defineProperty(globalThis, "IntersectionObserver", { configurable: true, value: MockIntersectionObserver, }); + +class MockResizeObserver { + observe() {} + unobserve() {} + disconnect() {} +} + +Object.defineProperty(window, "ResizeObserver", { + writable: true, + configurable: true, + value: MockResizeObserver, +}); + +Object.defineProperty(globalThis, "ResizeObserver", { + writable: true, + configurable: true, + value: MockResizeObserver, +}); \ No newline at end of file