{"version":3,"sources":["../src/useMediaQuery.ts"],"names":[],"mappings":";AAEA,SAAS,WAAW,iBAAiB,gBAAgB;AASrD,IAAM,4BACL,OAAO,WAAW,cAAc,kBAAkB;AAE5C,SAAS,cAAc,kBAA0B;AACvD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAkB;AAEhD,4BAA0B,MAAM;AAC/B,QAAI,OAAO,WAAW;AAAa;AACnC,UAAM,iBAAiB,OAAO,WAAW,gBAAgB;AACzD,UAAM,WAAW,MAAM,WAAW,CAAC,CAAC,eAAe,OAAO;AAC1D,aAAS;AACT,mBAAe,iBAAiB,UAAU,QAAQ;AAClD,WAAO,MAAM,eAAe,oBAAoB,UAAU,QAAQ;AAAA,EACnE,GAAG,CAAC,gBAAgB,CAAC;AAErB,SAAO;AACR","sourcesContent":["'use client'\n\nimport { useEffect, useLayoutEffect, useState } from \"react\";\n\n/**\n * Modified from link below\n * @see https://observablehq.com/@werehamster/avoiding-hydration-mismatch-when-using-react-hooks\n * @param mediaQueryString\n * @returns {unknown}\n */\n\nconst useIsoMorphicLayoutEffect =\n\ttypeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n\nexport function useMediaQuery(mediaQueryString: string) {\n\tconst [matches, setMatches] = useState<boolean>();\n\n\tuseIsoMorphicLayoutEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\t\tconst mediaQueryList = window.matchMedia(mediaQueryString);\n\t\tconst listener = () => setMatches(!!mediaQueryList.matches);\n\t\tlistener();\n\t\tmediaQueryList.addEventListener(\"change\", listener); // updated from .addListener\n\t\treturn () => mediaQueryList.removeEventListener(\"change\", listener); // updated from .removeListener\n\t}, [mediaQueryString]);\n\n\treturn matches;\n}\n"]}