UNPKG

koval-ui

Version:

React components collection with minimalistic design. Supports theming, layout, and input validation.

1 lines 1.36 kB
{"version":3,"file":"useMatchMedia.cjs","sources":["../../../../src/internal/hooks/useMatchMedia.tsx"],"sourcesContent":["import {useState, useEffect} from 'react';\n\n/**\n * React hook, use to match media queries\n * @see https://fireship.io/snippets/use-media-query-hook/\n */\nexport const useMatchMedia = (query: string) => {\n const [matches, setMatches] = useState(false);\n\n useEffect(() => {\n const media = window.matchMedia(query);\n // fallback for usage in tests\n if (!window.matchMedia) {\n return;\n }\n if (media.matches !== matches) {\n setMatches(media.matches);\n }\n const listener = () => setMatches(media.matches);\n media.addEventListener('change', listener);\n return () => media.removeEventListener('change', listener);\n }, [matches, query]);\n\n return matches;\n};\n"],"names":["useMatchMedia","query","matches","setMatches","useState","useEffect","media","listener"],"mappings":"sHAMaA,EAAiBC,GAAkB,CAC5C,KAAM,CAACC,EAASC,CAAU,EAAIC,EAAAA,SAAS,EAAK,EAE5CC,OAAAA,EAAAA,UAAU,IAAM,CACN,MAAAC,EAAQ,OAAO,WAAWL,CAAK,EAEjC,GAAA,CAAC,OAAO,WACR,OAEAK,EAAM,UAAYJ,GAClBC,EAAWG,EAAM,OAAO,EAE5B,MAAMC,EAAW,IAAMJ,EAAWG,EAAM,OAAO,EACzC,OAAAA,EAAA,iBAAiB,SAAUC,CAAQ,EAClC,IAAMD,EAAM,oBAAoB,SAAUC,CAAQ,CAAA,EAC1D,CAACL,EAASD,CAAK,CAAC,EAEZC,CACX"}