Skip to content

Commit e2c5706

Browse files
Merge pull request #2264 from severe77/fix/matchmedia-cleanup-2263
Fix: prevent matchMedia listener accumulation in FaviconHead (#2263)
2 parents 70c6ab4 + 1450b19 commit e2c5706

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

components/Layout.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -503,9 +503,16 @@ const FaviconHead = () => {
503503
const matcher: MediaQueryList = window.matchMedia(
504504
'(prefers-color-scheme: dark)',
505505
);
506-
matcher.addEventListener('change', () => onUpdate(matcher));
506+
507+
const handleChange = () => onUpdate(matcher);
508+
509+
matcher.addEventListener('change', handleChange);
507510
onUpdate(matcher);
508-
}, []);
511+
512+
return () => {
513+
matcher.removeEventListener('change', handleChange);
514+
};
515+
}, [onUpdate]);
509516

510517
if (isDarkMode) {
511518
return (

0 commit comments

Comments
 (0)