UNPKG

@yamada-ui/react

Version:

React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion

1 lines 1.44 kB
{"version":3,"file":"index.cjs","names":["useEnvironment"],"sources":["../../../../src/hooks/use-media-query/index.ts"],"sourcesContent":["\"use client\"\n\nimport { useCallback, useSyncExternalStore } from \"react\"\nimport { useEnvironment } from \"../../core\"\n\n/**\n * `useMediaQuery` is a custom hook that detects whether it matches a media query.\n *\n * @see https://yamada-ui.com/docs/hooks/use-media-query\n */\nexport const useMediaQuery = (query: string, fallback = false): boolean => {\n const { getWindow } = useEnvironment()\n\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n const mql = getWindow()?.matchMedia(query)\n\n mql?.addEventListener(\"change\", onStoreChange)\n\n return () => {\n mql?.removeEventListener(\"change\", onStoreChange)\n }\n },\n [getWindow, query],\n )\n\n const getSnapshot = useCallback(() => {\n return getWindow()?.matchMedia(query).matches ?? fallback\n }, [getWindow, query, fallback])\n\n return useSyncExternalStore(subscribe, getSnapshot, getSnapshot)\n}\n"],"mappings":";;;;;;;;;;;;;;AAUA,MAAa,iBAAiB,OAAe,WAAW,UAAmB;CACzE,MAAM,EAAE,cAAcA,6CAAgB;CAEtC,MAAM,oCACH,kBAA8B;EAC7B,MAAM,MAAM,WAAW,EAAE,WAAW,MAAM;AAE1C,OAAK,iBAAiB,UAAU,cAAc;AAE9C,eAAa;AACX,QAAK,oBAAoB,UAAU,cAAc;;IAGrD,CAAC,WAAW,MAAM,CACnB;CAED,MAAM,2CAAgC;AACpC,SAAO,WAAW,EAAE,WAAW,MAAM,CAAC,WAAW;IAChD;EAAC;EAAW;EAAO;EAAS,CAAC;AAEhC,wCAA4B,WAAW,aAAa,YAAY"}