{"version":3,"file":"use-media-query.cjs","names":[],"sources":["../../src/use-media-query/use-media-query.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport interface UseMediaQueryOptions {\n  getInitialValueInEffect: boolean;\n}\n\nfunction getInitialValue(query: string, initialValue?: boolean) {\n  if (typeof initialValue === 'boolean') {\n    return initialValue;\n  }\n\n  if (typeof window !== 'undefined' && 'matchMedia' in window) {\n    return window.matchMedia(query).matches;\n  }\n\n  return false;\n}\n\nexport function useMediaQuery(\n  query: string,\n  initialValue?: boolean,\n  { getInitialValueInEffect }: UseMediaQueryOptions = {\n    getInitialValueInEffect: true,\n  }\n): boolean {\n  const [matches, setMatches] = useState(\n    getInitialValueInEffect ? initialValue : getInitialValue(query)\n  );\n  useEffect(() => {\n    try {\n      if ('matchMedia' in window) {\n        const mediaQuery = window.matchMedia(query);\n        setMatches(mediaQuery.matches);\n        const callback = (event: MediaQueryListEvent) => setMatches(event.matches);\n        mediaQuery.addEventListener('change', callback);\n        return () => {\n          mediaQuery.removeEventListener('change', callback);\n        };\n      }\n    } catch (e) {\n      // Safari iframe compatibility issue\n      return undefined;\n    }\n  }, [query]);\n\n  return matches || false;\n}\n\nexport namespace useMediaQuery {\n  export type Options = UseMediaQueryOptions;\n}\n"],"mappings":";;;AAMA,SAAS,gBAAgB,OAAe,cAAwB;AAC9D,KAAI,OAAO,iBAAiB,UAC1B,QAAO;AAGT,KAAI,OAAO,WAAW,eAAe,gBAAgB,OACnD,QAAO,OAAO,WAAW,MAAM,CAAC;AAGlC,QAAO;;AAGT,SAAgB,cACd,OACA,cACA,EAAE,4BAAkD,EAClD,yBAAyB,MAC1B,EACQ;CACT,MAAM,CAAC,SAAS,eAAA,GAAA,MAAA,UACd,0BAA0B,eAAe,gBAAgB,MAAM,CAChE;AACD,EAAA,GAAA,MAAA,iBAAgB;AACd,MAAI;AACF,OAAI,gBAAgB,QAAQ;IAC1B,MAAM,aAAa,OAAO,WAAW,MAAM;AAC3C,eAAW,WAAW,QAAQ;IAC9B,MAAM,YAAY,UAA+B,WAAW,MAAM,QAAQ;AAC1E,eAAW,iBAAiB,UAAU,SAAS;AAC/C,iBAAa;AACX,gBAAW,oBAAoB,UAAU,SAAS;;;WAG/C,GAAG;AAEV;;IAED,CAAC,MAAM,CAAC;AAEX,QAAO,WAAW"}