Skip to content

Commit b913ecf

Browse files
committed
support older browser with MediaQueryList
1 parent 644ede5 commit b913ecf

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

src/A11yUserPreferences.tsx

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,23 +58,35 @@ export const A11yUserPreferences: React.FC<Props> = ({ children }) => {
5858
});
5959
};
6060

61-
prefersReducedMotionMediaQuery.addEventListener(
62-
'change',
63-
handleReducedMotionPrefChange
64-
);
65-
prefersDarkSchemeMediaQuery.addEventListener(
66-
'change',
67-
handleDarkSchemePrefChange
68-
);
69-
return () => {
70-
prefersReducedMotionMediaQuery.removeEventListener(
61+
if (typeof prefersReducedMotionMediaQuery.addEventListener === 'function') {
62+
prefersReducedMotionMediaQuery.addEventListener(
7163
'change',
7264
handleReducedMotionPrefChange
7365
);
74-
prefersDarkSchemeMediaQuery.removeEventListener(
66+
}
67+
if (typeof prefersDarkSchemeMediaQuery.addEventListener === 'function') {
68+
prefersDarkSchemeMediaQuery.addEventListener(
7569
'change',
7670
handleDarkSchemePrefChange
7771
);
72+
}
73+
return () => {
74+
if (
75+
typeof prefersReducedMotionMediaQuery.removeEventListener === 'function'
76+
) {
77+
prefersReducedMotionMediaQuery.removeEventListener(
78+
'change',
79+
handleReducedMotionPrefChange
80+
);
81+
}
82+
if (
83+
typeof prefersDarkSchemeMediaQuery.removeEventListener === 'function'
84+
) {
85+
prefersDarkSchemeMediaQuery.removeEventListener(
86+
'change',
87+
handleDarkSchemePrefChange
88+
);
89+
}
7890
};
7991
}, []);
8092

0 commit comments

Comments
 (0)