Remove useWindowDimensions from ProfileBadges (#10738)
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
import {useEffect, useState} from 'react'
|
||||||
|
import {Dimensions} 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 => {
|
||||||
|
setFontScale(evt.window.fontScale)
|
||||||
|
})
|
||||||
|
return () => sub.remove()
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
return fontScale
|
||||||
|
}
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
import {useWindowDimensions, View} from 'react-native'
|
import {View} from 'react-native'
|
||||||
|
|
||||||
import {useProfileShadow} from '#/state/cache/profile-shadow'
|
import {useProfileShadow} from '#/state/cache/profile-shadow'
|
||||||
import {atoms as a, useAlf, type ViewStyleProp} from '#/alf'
|
import {atoms as a, useAlf, type ViewStyleProp} from '#/alf'
|
||||||
|
import {useNativeFontScale} from '#/alf/util/dimensions'
|
||||||
import {BotBadge, BotBadgeButton, isBotAccount} from '#/components/BotBadge'
|
import {BotBadge, BotBadgeButton, isBotAccount} from '#/components/BotBadge'
|
||||||
import {useSimpleVerificationState} from '#/components/verification'
|
import {useSimpleVerificationState} from '#/components/verification'
|
||||||
import {VerificationCheck} from '#/components/verification/VerificationCheck'
|
import {VerificationCheck} from '#/components/verification/VerificationCheck'
|
||||||
@@ -40,7 +41,7 @@ export function ProfileBadges({
|
|||||||
}) {
|
}) {
|
||||||
const shadowed = useProfileShadow(profile)
|
const shadowed = useProfileShadow(profile)
|
||||||
const verification = useSimpleVerificationState({profile})
|
const verification = useSimpleVerificationState({profile})
|
||||||
const {fontScale: nativeScaleMultiplier} = useWindowDimensions()
|
const nativeScaleMultiplier = useNativeFontScale()
|
||||||
const {
|
const {
|
||||||
fonts: {scaleMultiplier: alfScaleMultiplier},
|
fonts: {scaleMultiplier: alfScaleMultiplier},
|
||||||
} = useAlf()
|
} = useAlf()
|
||||||
|
|||||||
Reference in New Issue
Block a user