import { useSyncExternalStore } from "react";
const QUERY = "(prefers-reduced-motion: reduce)";
function subscribe(onChange: () => void): () => void {
const media = window.matchMedia(QUERY);
media.addEventListener("change", onChange);
return () => media.removeEventListener("change", onChange);
}
/** True when the visitor asked for less motion. Server render assumes motion is reduced. */
export function useReducedMotion(): boolean {
return useSyncExternalStore(
subscribe,
() => window.matchMedia(QUERY).matches,
() => true,
);
}