Files
bsky-social-app/src/alf/util/dimensions.ts
T
2026-08-25 09:40:14 +03:00

23 lines
593 B
TypeScript

import {useEffect, useState} from 'react'
import {Dimensions, type DimensionsPayload} from 'react-native'
/**
* Same as `useWindowDimensions().fontScale`, but avoids rerendering
* whenever the screen size changes
*/
export function useNativeFontScale() {
const [fontScale, setFontScale] = useState(Dimensions.get('window').fontScale)
useEffect(() => {
const sub = Dimensions.addEventListener(
'change',
(evt: DimensionsPayload) => {
if (evt.window) setFontScale(evt.window.fontScale)
},
)
return () => sub.remove()
}, [])
return fontScale
}