use-is-match-media
shadcn-hooks/use-is-match-mediaFreeHook
A hook to check if the media query matches
Install it
npx shadcn@latest add https://shadcn-hooks.com/r/use-is-match-media.jsonSource
1import { useState } from 'react'2import { useIsomorphicLayoutEffect } from '@/registry/hooks/use-isomorphic-layout-effect'34export function useIsMatchMedia(mediaQueryString: string) {5 const [isMatch, setIsMatch] = useState(() => {6 if (typeof window === 'undefined') return false7 return window.matchMedia(mediaQueryString).matches8 })910 useIsomorphicLayoutEffect(() => {11 const mediaQueryList = window.matchMedia(mediaQueryString)1213 setIsMatch(mediaQueryList.matches)1415 const listener = (event: MediaQueryListEvent) => {16 setIsMatch(event.matches)17 }1819 mediaQueryList.addEventListener('change', listener)2021 return () => {22 mediaQueryList.removeEventListener('change', listener)23 }24 }, [mediaQueryString])2526 return isMatch27}
What it pulls in
Other registry items
Files it writes
More from shadcn-hooks
All 58 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| use-active-elementuse-active-element | shadcn-hooks | Hooks | Free | no deps | |
| use-batteryuse-battery | shadcn-hooks | Hooks | Free | no deps | |
| use-booleanuse-boolean | shadcn-hooks | Hooks | Free | no deps | |
| use-click-any-whereuse-click-any-where | shadcn-hooks | Hooks | Free | no deps | |
| use-click-awayuse-click-away | shadcn-hooks | Hooks | Free | no deps | |
| use-clipboarduse-clipboard | shadcn-hooks | Hooks | Free | no deps | |
| use-controllable-valueuse-controllable-value | shadcn-hooks | Hooks | Free | 1 dep | |
| use-counteruse-counter | shadcn-hooks | Hooks | Free | no deps |
