···1import React from 'react'
2import {msg} from '@lingui/core/macro'
3-import {Plural, Trans} from '@lingui/react/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect} from '@react-navigation/native'
67import {useSetTitle} from '#/lib/hooks/useSetTitle'
···1import React from 'react'
2import {msg} from '@lingui/core/macro'
03import {useLingui} from '@lingui/react'
4+import {Plural, Trans} from '@lingui/react/macro'
5import {useFocusEffect} from '@react-navigation/native'
67import {useSetTitle} from '#/lib/hooks/useSetTitle'
+1-1
src/screens/Post/PostQuotes.tsx
···1import React from 'react'
2import {msg} from '@lingui/core/macro'
3-import {Plural, Trans} from '@lingui/react/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect} from '@react-navigation/native'
67import {useSetTitle} from '#/lib/hooks/useSetTitle'
···1import React from 'react'
2import {msg} from '@lingui/core/macro'
03import {useLingui} from '@lingui/react'
4+import {Plural, Trans} from '@lingui/react/macro'
5import {useFocusEffect} from '@react-navigation/native'
67import {useSetTitle} from '#/lib/hooks/useSetTitle'
+1-1
src/screens/Post/PostRepostedBy.tsx
···1import React from 'react'
2import {msg} from '@lingui/core/macro'
3-import {Plural, Trans} from '@lingui/react/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect} from '@react-navigation/native'
67import {useSetTitle} from '#/lib/hooks/useSetTitle'
···1import React from 'react'
2import {msg} from '@lingui/core/macro'
03import {useLingui} from '@lingui/react'
4+import {Plural, Trans} from '@lingui/react/macro'
5import {useFocusEffect} from '@react-navigation/native'
67import {useSetTitle} from '#/lib/hooks/useSetTitle'
+17-9
src/screens/Profile/Header/Shell.tsx
···20import {useLightboxControls} from '#/state/lightbox'
21import {useEnableSquareAvatars} from '#/state/preferences/enable-square-avatars'
22import {useEnableSquareButtons} from '#/state/preferences/enable-square-buttons'
023import {
24- maybeModifyHighQualityImage,
25- useHighQualityImages,
26-} from '#/state/preferences/high-quality-images'
27import {useSession} from '#/state/session'
28import {LoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder'
29import {UserAvatar} from '#/view/com/util/UserAvatar'
···68 const playHaptic = useHaptics()
69 const liveStatusControl = useDialogControl()
70 const highQualityImages = useHighQualityImages()
071 const enableSquareAvatars = useEnableSquareAvatars()
72 const enableSquareButtons = useEnableSquareButtons()
73···102 openLightbox({
103 images: [
104 {
105- uri: maybeModifyHighQualityImage(uri, highQualityImages),
106- thumbUri: maybeModifyHighQualityImage(uri, highQualityImages),
000107 thumbRect,
108 dimensions:
109 type === 'circle-avi' || type === 'rect-avi'
···124 index: 0,
125 })
126 },
127- [openLightbox, highQualityImages, enableSquareAvatars],
128 )
129130 // theres probs a better way instead of just making a separate one but this works:tm: so its whatever
···133 openLightbox({
134 images: [
135 {
136- uri: maybeModifyHighQualityImage(uri, highQualityImages),
137- thumbUri: maybeModifyHighQualityImage(uri, highQualityImages),
000138 thumbRect,
139 dimensions: thumbRect,
140 thumbDimensions: null,
···144 index: 0,
145 })
146 },
147- [openLightbox, highQualityImages],
148 )
149150 const isMe = useMemo(
···20import {useLightboxControls} from '#/state/lightbox'
21import {useEnableSquareAvatars} from '#/state/preferences/enable-square-avatars'
22import {useEnableSquareButtons} from '#/state/preferences/enable-square-buttons'
23+import {useHighQualityImages} from '#/state/preferences/high-quality-images'
24import {
25+ applyImageTransforms,
26+ useImageCdnHost,
27+} from '#/state/preferences/image-cdn-host'
28import {useSession} from '#/state/session'
29import {LoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder'
30import {UserAvatar} from '#/view/com/util/UserAvatar'
···69 const playHaptic = useHaptics()
70 const liveStatusControl = useDialogControl()
71 const highQualityImages = useHighQualityImages()
72+ const imageCdnHost = useImageCdnHost()
73 const enableSquareAvatars = useEnableSquareAvatars()
74 const enableSquareButtons = useEnableSquareButtons()
75···104 openLightbox({
105 images: [
106 {
107+ uri: applyImageTransforms(uri, {imageCdnHost, highQualityImages}),
108+ thumbUri: applyImageTransforms(uri, {
109+ imageCdnHost,
110+ highQualityImages,
111+ }),
112 thumbRect,
113 dimensions:
114 type === 'circle-avi' || type === 'rect-avi'
···129 index: 0,
130 })
131 },
132+ [openLightbox, imageCdnHost, highQualityImages, enableSquareAvatars],
133 )
134135 // theres probs a better way instead of just making a separate one but this works:tm: so its whatever
···138 openLightbox({
139 images: [
140 {
141+ uri: applyImageTransforms(uri, {imageCdnHost, highQualityImages}),
142+ thumbUri: applyImageTransforms(uri, {
143+ imageCdnHost,
144+ highQualityImages,
145+ }),
146 thumbRect,
147 dimensions: thumbRect,
148 thumbDimensions: null,
···152 index: 0,
153 })
154 },
155+ [openLightbox, imageCdnHost, highQualityImages],
156 )
157158 const isMe = useMemo(
+1-1
src/screens/Profile/ProfileFollowers.tsx
···1import React from 'react'
2import {msg} from '@lingui/core/macro'
3-import {Plural} from '@lingui/react/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect} from '@react-navigation/native'
67import {useSetTitle} from '#/lib/hooks/useSetTitle'
···1import React from 'react'
2import {msg} from '@lingui/core/macro'
03import {useLingui} from '@lingui/react'
4+import {Plural} from '@lingui/react/macro'
5import {useFocusEffect} from '@react-navigation/native'
67import {useSetTitle} from '#/lib/hooks/useSetTitle'
+1-1
src/screens/Profile/ProfileFollows.tsx
···1import React from 'react'
2import {msg} from '@lingui/core/macro'
3-import {Plural} from '@lingui/react/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect} from '@react-navigation/native'
67import {useSetTitle} from '#/lib/hooks/useSetTitle'
···1import React from 'react'
2import {msg} from '@lingui/core/macro'
03import {useLingui} from '@lingui/react'
4+import {Plural} from '@lingui/react/macro'
5import {useFocusEffect} from '@react-navigation/native'
67import {useSetTitle} from '#/lib/hooks/useSetTitle'
+109-3
src/screens/Settings/RunesSettings.tsx
···1import {useState} from 'react'
2import {View} from 'react-native'
3import {type ProfileViewBasic} from '@atproto/api/dist/client/types/app/bsky/actor/defs'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {type NativeStackScreenProps} from '@react-navigation/native-stack'
78import {DEFAULT_ALT_TEXT_AI_MODEL} from '#/lib/constants'
···98 useHighQualityImages,
99 useSetHighQualityImages,
100} from '#/state/preferences/high-quality-images'
0000101import {useModerationOpts} from '#/state/preferences/moderation-opts'
102import {
103 useNoAppLabelers,
···319 )
320}
32100000000000000000000000000000000000000000000000000000000000000000000000000322function PostReplacementDialog({
323 control,
324}: {
···657658 const highQualityImages = useHighQualityImages()
659 const setHighQualityImages = useSetHighQualityImages()
0660661 const hideFeedsPromoTab = useHideFeedsPromoTab()
662 const setHideFeedsPromoTab = useSetHideFeedsPromoTab()
···732 const setTranslationServicePreference = useSetTranslationServicePreference()
733734 const setLibreTranslateInstanceControl = Dialog.useDialogControl()
00735736 const setPostReplacementDialogControl = Dialog.useDialogControl()
737···1007 longer to load and use more bandwidth.
1008 </Trans>
1009 </Admonition>
0101000000000000000000000001011 <Toggle.Item
1012 name="hide_feeds_promo_tab"
1013 label={_(msg`Hide "Feeds ✨" tab when only one feed is selected`)}
···1096 <Admonition type="warning" style={[a.flex_1]}>
1097 <Trans>
1098 This only gets rid of the reminder on app launch, useful if your
1099- PDS does not have email verification setup.\nThis does NOT give
1100- access to features locked behind email verification.
1101 </Trans>
1102 </Admonition>
1103···1406 <LibreTranslateInstanceDialog
1407 control={setLibreTranslateInstanceControl}
1408 />
01409 <PostReplacementDialog control={setPostReplacementDialogControl} />
1410 <OpenRouterApiKeyDialog control={setOpenRouterApiKeyControl} />
1411 <OpenRouterModelDialog control={setOpenRouterModelControl} />
···56 UserCircle_Stroke2_Corner0_Rounded as UserCircle,
57} from '#/components/icons/UserCircle'
58import {InlineLinkText} from '#/components/Link'
59-import {Text} from '#/components/Typography'
60import {PdsBadge} from '#/components/PdsBadge'
061import {useSimpleVerificationState} from '#/components/verification'
62import {VerificationCheck} from '#/components/verification/VerificationCheck'
63import {IS_WEB} from '#/env'
···56 UserCircle_Stroke2_Corner0_Rounded as UserCircle,
57} from '#/components/icons/UserCircle'
58import {InlineLinkText} from '#/components/Link'
059import {PdsBadge} from '#/components/PdsBadge'
60+import {Text} from '#/components/Typography'
61import {useSimpleVerificationState} from '#/components/verification'
62import {VerificationCheck} from '#/components/verification/VerificationCheck'
63import {IS_WEB} from '#/env'