1 line
2.4 KiB
Plaintext
1 line
2.4 KiB
Plaintext
{"version":3,"sources":["useWindowDimensions.tsx"],"names":["Dimensions","useEffect","useState","useWindowDimensions","dimensions","setDimensions","get","handleChange","window","width","height","scale","fontScale","addEventListener","removeEventListener"],"mappings":"AAAA,SAASA,UAAT,QAA2B,cAA3B;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,OAApC;AASA;AACA;AACA,eAAe,SAASC,mBAAT,GAA+C;AAC5D,QAAM,CAACC,UAAD,EAAaC,aAAb,IAA8BH,QAAQ,CAAC,MAAMF,UAAU,CAACM,GAAX,CAAe,QAAf,CAAP,CAA5C;AACAL,EAAAA,SAAS,CAAC,MAAM;AACd,aAASM,YAAT,CAAsB;AAAEC,MAAAA;AAAF,KAAtB,EAA8D;AAC5D,UACEJ,UAAU,CAACK,KAAX,KAAqBD,MAAM,CAACC,KAA5B,IACAL,UAAU,CAACM,MAAX,KAAsBF,MAAM,CAACE,MAD7B,IAEAN,UAAU,CAACO,KAAX,KAAqBH,MAAM,CAACG,KAF5B,IAGAP,UAAU,CAACQ,SAAX,KAAyBJ,MAAM,CAACI,SAJlC,EAKE;AACAP,QAAAA,aAAa,CAACG,MAAD,CAAb;AACD;AACF;;AACDR,IAAAA,UAAU,CAACa,gBAAX,CAA4B,QAA5B,EAAsCN,YAAtC,EAXc,CAYd;AACA;AACA;;AACAA,IAAAA,YAAY,CAAC;AAAEC,MAAAA,MAAM,EAAER,UAAU,CAACM,GAAX,CAAe,QAAf;AAAV,KAAD,CAAZ;AACA,WAAO,MAAM;AACXN,MAAAA,UAAU,CAACc,mBAAX,CAA+B,QAA/B,EAAyCP,YAAzC;AACD,KAFD;AAGD,GAnBQ,EAmBN,CAACH,UAAD,CAnBM,CAAT;AAoBA,SAAOA,UAAP;AACD","sourcesContent":["import { Dimensions } from 'react-native';\nimport { useEffect, useState } from 'react';\n\ntype DisplayMetrics = {\n width: number;\n height: number;\n scale: number;\n fontScale: number;\n};\n\n// Copied from https://github.com/facebook/react-native/blob/8d57691a/Libraries/Utilities/useWindowDimensions.js\n// for compatibility with React Native < 0.61.\nexport default function useWindowDimensions(): DisplayMetrics {\n const [dimensions, setDimensions] = useState(() => Dimensions.get('window'));\n useEffect(() => {\n function handleChange({ window }: { window: DisplayMetrics }) {\n if (\n dimensions.width !== window.width ||\n dimensions.height !== window.height ||\n dimensions.scale !== window.scale ||\n dimensions.fontScale !== window.fontScale\n ) {\n setDimensions(window);\n }\n }\n Dimensions.addEventListener('change', handleChange);\n // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n handleChange({ window: Dimensions.get('window') });\n return () => {\n Dimensions.removeEventListener('change', handleChange);\n };\n }, [dimensions]);\n return dimensions;\n}\n"]} |