diff --git a/packages/framer-motion/src/utils/is-browser.ts b/packages/framer-motion/src/utils/is-browser.ts index 82abb79267..08c0f871ec 100644 --- a/packages/framer-motion/src/utils/is-browser.ts +++ b/packages/framer-motion/src/utils/is-browser.ts @@ -1 +1 @@ -export const isBrowser = typeof window !== "undefined" +export const isBrowser = typeof document !== "undefined" diff --git a/packages/framer-motion/src/utils/use-reduced-motion.ts b/packages/framer-motion/src/utils/use-reduced-motion.ts index 129193fa06..98d1542601 100644 --- a/packages/framer-motion/src/utils/use-reduced-motion.ts +++ b/packages/framer-motion/src/utils/use-reduced-motion.ts @@ -1,5 +1,6 @@ import { useContext, useState } from "react" import { MotionConfigContext } from "../context/MotionConfigContext" +import { isBrowser } from "./is-browser" interface ReducedMotionState { current: boolean | null @@ -11,7 +12,7 @@ const prefersReducedMotion: ReducedMotionState = { current: null } let hasDetected = false function initPrefersReducedMotion() { hasDetected = true - if (typeof window === "undefined") return + if (!isBrowser) return if (window.matchMedia) { const motionMediaQuery = window.matchMedia("(prefers-reduced-motion)") diff --git a/packages/framer-motion/src/value/scroll/use-viewport-scroll.ts b/packages/framer-motion/src/value/scroll/use-viewport-scroll.ts index 6c0aee3549..4c6ba117a4 100644 --- a/packages/framer-motion/src/value/scroll/use-viewport-scroll.ts +++ b/packages/framer-motion/src/value/scroll/use-viewport-scroll.ts @@ -21,7 +21,6 @@ let hasListeners = false function addEventListeners() { hasListeners = true - if (typeof window === "undefined") return const updateScrollValues = createScrollUpdater( viewportScrollValues,