useMediaQuery
hookas/use-media-queryFreeHook
A hook to check if the user is online
Install it
npx shadcn@latest add https://hookas.letstri.dev/r/use-media-query.jsonSource
1'use client'23import * as React from 'react'45const isBrowser = typeof window !== 'undefined'67export function useMediaQuery(8 query: string,9) {10 const mediaQuery = React.useMemo(() => isBrowser ? window.matchMedia(query) : null, [query])1112 const [matches, setMatches] = React.useState(mediaQuery?.matches ?? false)1314 React.useEffect(() => {15 if (!mediaQuery)16 return1718 const handleChange = (event: MediaQueryListEvent) => {19 setMatches(event.matches)20 }2122 mediaQuery.addEventListener('change', handleChange)2324 return () => {25 mediaQuery.removeEventListener('change', handleChange)26 }27 }, [mediaQuery])2829 return matches30}
Files it writes
More from hookas
All 30 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| useAsyncEffectuse-async-effect | hookas | Hooks | Free | no deps | |
| useClickOutsideuse-click-outside | hookas | Hooks | Free | no deps | |
| useDebounceCallbackuse-debounced-callback | hookas | Hooks | Free | no deps | |
| useDebounceMemouse-debounced-memo | hookas | Hooks | Free | no deps | |
| useDebounceStateuse-debounced-state | hookas | Hooks | Free | no deps | |
| useElementSizeuse-element-size | hookas | Hooks | Free | no deps | |
| useFullscreenuse-fullscreen | hookas | Hooks | Free | no deps | |
| useIntervaluse-interval | hookas | Hooks | Free | no deps |
