From c7a2bbd08966c752a812b4eed89cd6a947719a20 Mon Sep 17 00:00:00 2001 From: Adrien Bayles Date: Mon, 6 Jun 2022 11:00:59 +0200 Subject: [PATCH] fix: fix window detection for ssr --- src/targets/web/index.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/targets/web/index.js b/src/targets/web/index.js index 97545af..e461117 100644 --- a/src/targets/web/index.js +++ b/src/targets/web/index.js @@ -15,18 +15,29 @@ if ( export function useReduceMotion() { const [matches, setMatch] = React.useState( - window.matchMedia('(prefers-reduced-motion: reduce)').matches + typeof window !== "undefined" ? window.matchMedia('(prefers-reduced-motion: reduce)').matches : false ); + React.useEffect(() => { - const mq = window.matchMedia('(prefers-reduced-motion: reduce)'); + let mq = null; + const handleChange = () => { setMatch(mq.matches); }; - handleChange(); - mq.addEventListener('change', handleChange); + + + if (typeof window !== "undefined") { + mq = window.matchMedia('(prefers-reduced-motion: reduce)'); + handleChange(); + mq.addEventListener('change', handleChange); + } + return () => { - mq.removeEventListener('change', handleChange); + if (mq) { + mq.removeEventListener('change', handleChange); + } }; }, []); + return matches; }