6 lines
421 B
TypeScript
6 lines
421 B
TypeScript
"use client"
|
|
import { useSyncExternalStore } from "react"
|
|
const query = "(prefers-reduced-motion: reduce)"
|
|
function subscribe(callback: () => void) { const media=window.matchMedia(query); media.addEventListener("change",callback); return ()=>media.removeEventListener("change",callback) }
|
|
export function usePrefersReducedMotion() { return useSyncExternalStore(subscribe,()=>window.matchMedia(query).matches,()=>false) }
|