···110111# i18n
112src/locale/locales/_build/
113-src/locale/locales/**/*.js
00114115# local builds
116*.apk
···110111# i18n
112src/locale/locales/_build/
113+src/locale/locales/**/messages.js
114+src/locale/locales/**/messages.mjs
115+src/locale/locales/**/messages.ts
116117# local builds
118*.apk
+2-1
CLAUDE.md
···271All user-facing strings must be wrapped for translation using Lingui.
272273```tsx
274-import {msg, Trans, plural} from '@lingui/macro'
0275import {useLingui} from '@lingui/react'
276277function MyComponent() {
···271All user-facing strings must be wrapped for translation using Lingui.
272273```tsx
274+import {msg, plural} from '@lingui/core/macro'
275+import {Trans} from '@lingui/react/macro'
276import {useLingui} from '@lingui/react'
277278function MyComponent() {
+6
__tests__/lib/string.test.ts
···1import {RichText} from '@atproto/api'
023import {parseEmbedPlayerFromUrl} from '#/lib/strings/embed-player'
4import {
···6 createStarterPackLinkFromAndroidReferrer,
7 parseStarterPackUri,
8} from '#/lib/strings/starter-pack'
09import {tenorUrlToBskyGifUrl} from '#/state/queries/tenor'
10import {cleanError} from '../../src/lib/strings/errors'
11import {createFullHandle, makeValidHandle} from '../../src/lib/strings/handles'
···202})
203204describe('cleanError', () => {
000205 const inputs = [
206 'TypeError: Network request failed',
207 'Error: Aborted',
···327 expect(outputRT.text).toEqual(outputs[i][0])
328 expect(outputRT.facets?.length).toEqual(outputs[i][1].length)
329 for (let j = 0; j < outputs[i][1].length; j++) {
0330 expect(outputRT.facets![j].features[0].uri).toEqual(outputs[i][1][j])
331 }
332 }
···1import {RichText} from '@atproto/api'
2+import {i18n} from '@lingui/core'
34import {parseEmbedPlayerFromUrl} from '#/lib/strings/embed-player'
5import {
···7 createStarterPackLinkFromAndroidReferrer,
8 parseStarterPackUri,
9} from '#/lib/strings/starter-pack'
10+import {messages} from '#/locale/locales/en/messages'
11import {tenorUrlToBskyGifUrl} from '#/state/queries/tenor'
12import {cleanError} from '../../src/lib/strings/errors'
13import {createFullHandle, makeValidHandle} from '../../src/lib/strings/handles'
···204})
205206describe('cleanError', () => {
207+ // cleanError uses lingui
208+ i18n.loadAndActivate({locale: 'en', messages})
209+210 const inputs = [
211 'TypeError: Network request failed',
212 'Error: Aborted',
···332 expect(outputRT.text).toEqual(outputs[i][0])
333 expect(outputRT.facets?.length).toEqual(outputs[i][1].length)
334 for (let j = 0; j < outputs[i][1].length; j++) {
335+ // @ts-expect-error whatever
336 expect(outputRT.facets![j].features[0].uri).toEqual(outputs[i][1][j])
337 }
338 }
···73```jsx
74// After
75import { Text } from "react-native";
76-import { Trans } from "@lingui/macro";
7778<Text><Trans>Hello World</Trans></Text>
79```
···90```
91In this case, you can use the `useLingui()` hook:
92```jsx
93-import { msg } from "@lingui/macro";
94import { useLingui } from "@lingui/react";
9596const { _ } = useLingui();
97return <Text accessibilityLabel={_(msg`Label is here`)}>{text}</Text>
98```
99100-If you want to do this outside of a React component, you can use the `t` macro instead (note: this won't react to changes if the locale is switched dynamically within the app):
000000000101```jsx
102-import { t } from "@lingui/macro";
1030104const text = t`Hello World`;
00000105```
106107We can then run `yarn intl:extract` to update the catalog in `src/locale/locales/{locale}/messages.po`. This will add the new string to the catalog.
···121These pitfalls are memoization pitfalls that will cause the components to not re-render when the locale is changed -- causing stale translations to be shown.
122123```jsx
124-import { msg } from "@lingui/macro";
125import { i18n } from "@lingui/core";
126127const welcomeMessage = msg`Welcome!`;
···73```jsx
74// After
75import { Text } from "react-native";
76+import { Trans } from "@lingui/react/macro";
7778<Text><Trans>Hello World</Trans></Text>
79```
···90```
91In this case, you can use the `useLingui()` hook:
92```jsx
93+import { msg } from "@lingui/core/macro";
94import { useLingui } from "@lingui/react";
9596const { _ } = useLingui();
97return <Text accessibilityLabel={_(msg`Label is here`)}>{text}</Text>
98```
99100+NEW: the latest Lingui version introduced a new macro version of the `useLingui` hook which lets you do this:
101+102+```jsx
103+import { useLingui } from "@lingui/react/macro";
104+105+const { t } = useLingui();
106+return <Text accessibilityLabel={t`Label is here`}>{text}</Text>
107+```
108+109+If you want to do this outside of a React component, you can use the global `t` macro instead (note: this won't react to changes if the locale is switched dynamically within the app):
110```jsx
111+import { t } from "@lingui/core/macro";
112113+// not ideal - t only gets called once at module evaluation time
114const text = t`Hello World`;
115+116+// however, this is suitable for strings that are ephemeral:
117+function sayHello() {
118+ Toast.show(t`Hello World`); // Each time the toast shows, the current locale at that moment is used
119+}
120```
121122We can then run `yarn intl:extract` to update the catalog in `src/locale/locales/{locale}/messages.po`. This will add the new string to the catalog.
···136These pitfalls are memoization pitfalls that will cause the components to not re-render when the locale is changed -- causing stale translations to be shown.
137138```jsx
139+import { msg } from "@lingui/core/macro";
140import { i18n } from "@lingui/core";
141142const welcomeMessage = msg`Welcome!`;
···1-diff --git a/node_modules/@lingui/core/dist/index.mjs b/node_modules/@lingui/core/dist/index.mjs
2-index 9759736..881f67b 100644
3---- a/node_modules/@lingui/core/dist/index.mjs
4-+++ b/node_modules/@lingui/core/dist/index.mjs
5-@@ -1,4 +1,4 @@
6--import unraw from 'unraw';
7-+import { unraw } from 'unraw';
8- import { compileMessage } from '@lingui/message-utils/compileMessage';
9-10- const isString = (s) => typeof s === "string";
···0000000000
+1-1
src/App.native.tsx
···11import * as ScreenOrientation from 'expo-screen-orientation'
12import * as SplashScreen from 'expo-splash-screen'
13import * as SystemUI from 'expo-system-ui'
14-import {msg} from '@lingui/macro'
15import {useLingui} from '@lingui/react'
16import * as Sentry from '@sentry/react-native'
17
···11import * as ScreenOrientation from 'expo-screen-orientation'
12import * as SplashScreen from 'expo-splash-screen'
13import * as SystemUI from 'expo-system-ui'
14+import {msg} from '@lingui/core/macro'
15import {useLingui} from '@lingui/react'
16import * as Sentry from '@sentry/react-native'
17
+1-1
src/App.web.tsx
···45import {Fragment, useEffect, useState} from 'react'
6import {SafeAreaProvider} from 'react-native-safe-area-context'
7-import {msg} from '@lingui/macro'
8import {useLingui} from '@lingui/react'
9import * as Sentry from '@sentry/react-native'
10
···45import {Fragment, useEffect, useState} from 'react'
6import {SafeAreaProvider} from 'react-native-safe-area-context'
7+import {msg} from '@lingui/core/macro'
8import {useLingui} from '@lingui/react'
9import * as Sentry from '@sentry/react-native'
10
+1-1
src/Navigation.tsx
···2import * as Linking from 'expo-linking'
3import * as Notifications from 'expo-notifications'
4import {i18n, type MessageDescriptor} from '@lingui/core'
5-import {msg} from '@lingui/macro'
6import {
7 type BottomTabBarProps,
8 createBottomTabNavigator,
···2import * as Linking from 'expo-linking'
3import * as Notifications from 'expo-notifications'
4import {i18n, type MessageDescriptor} from '@lingui/core'
5+import {msg} from '@lingui/core/macro'
6import {
7 type BottomTabBarProps,
8 createBottomTabNavigator,
+2-1
src/ageAssurance/components/NoAccessScreen.tsx
···1import {useCallback, useEffect} from 'react'
2import {ScrollView, View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {
8 SupportCode,
···1import {useCallback, useEffect} from 'react'
2import {ScrollView, View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {
9 SupportCode,
+2-1
src/ageAssurance/components/RedirectOverlay.tsx
···9} from 'react'
10import {Dimensions, View} from 'react-native'
11import * as Linking from 'expo-linking'
12-import {msg, Trans} from '@lingui/macro'
13import {useLingui} from '@lingui/react'
01415import {retry} from '#/lib/async/retry'
16import {wait} from '#/lib/async/wait'
···9} from 'react'
10import {Dimensions, View} from 'react-native'
11import * as Linking from 'expo-linking'
12+import {msg} from '@lingui/core/macro'
13import {useLingui} from '@lingui/react'
14+import {Trans} from '@lingui/react/macro'
1516import {retry} from '#/lib/async/retry'
17import {wait} from '#/lib/async/wait'
+2-1
src/components/AccountList.tsx
···1import React, {useCallback} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {isJwtExpired} from '#/lib/jwt'
8import {sanitizeDisplayName} from '#/lib/strings/display-names'
···1import React, {useCallback} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {isJwtExpired} from '#/lib/jwt'
9import {sanitizeDisplayName} from '#/lib/strings/display-names'
+1-1
src/components/AppLanguageDropdown.tsx
···1import React from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
4import {useQueryClient} from '@tanstack/react-query'
5
···1import React from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4import {useQueryClient} from '@tanstack/react-query'
5
+1-1
src/components/ContextMenu/Backdrop.ios.tsx
···7 useAnimatedStyle,
8} from 'react-native-reanimated'
9import {BlurView} from 'expo-blur'
10-import {msg} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
1213import {atoms as a, useTheme} from '#/alf'
···7 useAnimatedStyle,
8} from 'react-native-reanimated'
9import {BlurView} from 'expo-blur'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
1213import {atoms as a, useTheme} from '#/alf'
+1-1
src/components/ContextMenu/Backdrop.tsx
···5 type SharedValue,
6 useAnimatedStyle,
7} from 'react-native-reanimated'
8-import {msg} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
1011import {atoms as a, useTheme} from '#/alf'
···5 type SharedValue,
6 useAnimatedStyle,
7} from 'react-native-reanimated'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
1011import {atoms as a, useTheme} from '#/alf'
+1-1
src/components/ContextMenu/index.tsx
···40} from 'react-native-safe-area-context'
41import {captureRef} from 'react-native-view-shot'
42import {Image, type ImageErrorEventData} from 'expo-image'
43-import {msg} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
45import {useIsFocused} from '@react-navigation/native'
46import flattenReactChildren from 'react-keyed-flatten-children'
···40} from 'react-native-safe-area-context'
41import {captureRef} from 'react-native-view-shot'
42import {Image, type ImageErrorEventData} from 'expo-image'
43+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
45import {useIsFocused} from '@react-navigation/native'
46import flattenReactChildren from 'react-keyed-flatten-children'
+1-1
src/components/Dialog/index.tsx
···21 useAnimatedStyle,
22} from 'react-native-reanimated'
23import {useSafeAreaInsets} from 'react-native-safe-area-context'
24-import {msg} from '@lingui/macro'
25import {useLingui} from '@lingui/react'
2627import {ScrollProvider} from '#/lib/ScrollContext'
···21 useAnimatedStyle,
22} from 'react-native-reanimated'
23import {useSafeAreaInsets} from 'react-native-safe-area-context'
24+import {msg} from '@lingui/core/macro'
25import {useLingui} from '@lingui/react'
2627import {ScrollProvider} from '#/lib/ScrollContext'
+1-1
src/components/Dialog/index.web.tsx
···8 View,
9 type ViewStyle,
10} from 'react-native'
11-import {msg} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
13import {DismissableLayer, FocusGuards, FocusScope} from 'radix-ui/internal'
14import {RemoveScrollBar} from 'react-remove-scroll-bar'
···8 View,
9 type ViewStyle,
10} from 'react-native'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13import {DismissableLayer, FocusGuards, FocusScope} from 'radix-ui/internal'
14import {RemoveScrollBar} from 'react-remove-scroll-bar'
+2-1
src/components/Error.tsx
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {useGoBack} from '#/lib/hooks/useGoBack'
6import {CenteredView} from '#/view/com/util/Views'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {useGoBack} from '#/lib/hooks/useGoBack'
7import {CenteredView} from '#/view/com/util/Views'
+2-1
src/components/FeedCard.tsx
···6 AtUri,
7 RichText as RichTextApi,
8} from '@atproto/api'
9-import {msg, Plural, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
011import {useQueryClient} from '@tanstack/react-query'
1213import {sanitizeHandle} from '#/lib/strings/handles'
···6 AtUri,
7 RichText as RichTextApi,
8} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Plural, Trans} from '@lingui/react/macro'
12import {useQueryClient} from '@tanstack/react-query'
1314import {sanitizeHandle} from '#/lib/strings/handles'
+2-1
src/components/FeedInterstitials.tsx
···8 LinearTransition,
9} from 'react-native-reanimated'
10import {type AppBskyFeedDefs, AtUri} from '@atproto/api'
11-import {msg, Trans} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
013import {useNavigation} from '@react-navigation/native'
1415import {type NavigationProp} from '#/lib/routes/types'
···8 LinearTransition,
9} from 'react-native-reanimated'
10import {type AppBskyFeedDefs, AtUri} from '@atproto/api'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13+import {Trans} from '@lingui/react/macro'
14import {useNavigation} from '@react-navigation/native'
1516import {type NavigationProp} from '#/lib/routes/types'
+1-1
src/components/FocusScope/index.tsx
···14 Text,
15 View,
16} from 'react-native'
17-import {msg} from '@lingui/macro'
18import {useLingui} from '@lingui/react'
1920import {useA11y} from '#/state/a11y'
···14 Text,
15 View,
16} from 'react-native'
17+import {msg} from '@lingui/core/macro'
18import {useLingui} from '@lingui/react'
1920import {useA11y} from '#/state/a11y'
+1-1
src/components/InterestTabs.tsx
···5 View,
6 type ViewStyle,
7} from 'react-native'
8-import {msg} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
1011import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
···5 View,
6 type ViewStyle,
7} from 'react-native'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
1011import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
+1-1
src/components/InternationalPhoneCodeSelect.tsx
···1import {Fragment, useMemo} from 'react'
2import {Text as RNText} from 'react-native'
3import {Image} from 'expo-image'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
67import {
···1import {Fragment, useMemo} from 'react'
2import {Text as RNText} from 'react-native'
3import {Image} from 'expo-image'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
67import {
+3-3
src/components/KnownFollowers.tsx
···5 moderateProfile,
6 type ModerationOpts,
7} from '@atproto/api'
8-import {msg, Plural, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
01011import {makeProfileLink} from '#/lib/routes/links'
12import {sanitizeDisplayName} from '#/lib/strings/display-names'
···205 one="# other"
206 other="# others"
207 />
208- </Trans>
209 ) : (
210- // only 2
211 <Trans>
212 Followed by{' '}
213 <Text emoji key={slice[0].profile.did} style={textStyle}>
···5 moderateProfile,
6 type ModerationOpts,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Plural, Trans} from '@lingui/react/macro'
1112import {makeProfileLink} from '#/lib/routes/links'
13import {sanitizeDisplayName} from '#/lib/strings/display-names'
···206 one="# other"
207 other="# others"
208 />
209+ </Trans> // only 2
210 ) : (
0211 <Trans>
212 Followed by{' '}
213 <Text emoji key={slice[0].profile.did} style={textStyle}>
+2-1
src/components/LabelingServiceCard/index.tsx
···1import {View} from 'react-native'
2import {type AppBskyLabelerDefs} from '@atproto/api'
3-import {msg, Plural, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import type React from 'react'
67import {getLabelingServiceTitle} from '#/lib/moderation'
···1import {View} from 'react-native'
2import {type AppBskyLabelerDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Plural, Trans} from '@lingui/react/macro'
6import type React from 'react'
78import {getLabelingServiceTitle} from '#/lib/moderation'
+1-1
src/components/LanguageSelect.tsx
···1import React from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {sanitizeAppLanguageSetting} from '#/locale/helpers'
···1import React from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {sanitizeAppLanguageSetting} from '#/locale/helpers'
+1-1
src/components/Layout/Header/index.tsx
···1import {createContext, useCallback, useContext} from 'react'
2import {type GestureResponderEvent, Keyboard, View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
5import {useNavigation} from '@react-navigation/native'
6
···1import {createContext, useCallback, useContext} from 'react'
2import {type GestureResponderEvent, Keyboard, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5import {useNavigation} from '@react-navigation/native'
6
+1-1
src/components/LikedByList.tsx
···1import React from 'react'
2import {type AppBskyFeedGetLikes as GetLikes} from '@atproto/api'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
···1import React from 'react'
2import {type AppBskyFeedGetLikes as GetLikes} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
+2-1
src/components/ListCard.tsx
···6 moderateUserList,
7 type ModerationUI,
8} from '@atproto/api'
9-import {msg, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
011import {useQueryClient} from '@tanstack/react-query'
1213import {sanitizeHandle} from '#/lib/strings/handles'
···6 moderateUserList,
7 type ModerationUI,
8} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Trans} from '@lingui/react/macro'
12import {useQueryClient} from '@tanstack/react-query'
1314import {sanitizeHandle} from '#/lib/strings/handles'
+2-1
src/components/Lists.tsx
···1import {memo} from 'react'
2import {type StyleProp, View, type ViewStyle} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {cleanError} from '#/lib/strings/errors'
7import {
···1import {memo} from 'react'
2import {type StyleProp, View, type ViewStyle} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {cleanError} from '#/lib/strings/errors'
8import {
+1-1
src/components/MediaPreview.tsx
···1import {type StyleProp, StyleSheet, View, type ViewStyle} from 'react-native'
2import {Image} from 'expo-image'
3import {type AppBskyFeedDefs} from '@atproto/api'
4-import {Trans} from '@lingui/macro'
56import {isTenorGifUri} from '#/lib/strings/embed-player'
7import {atoms as a, useTheme} from '#/alf'
···1import {type StyleProp, StyleSheet, View, type ViewStyle} from 'react-native'
2import {Image} from 'expo-image'
3import {type AppBskyFeedDefs} from '@atproto/api'
4+import {Trans} from '@lingui/react/macro'
56import {isTenorGifUri} from '#/lib/strings/embed-player'
7import {atoms as a, useTheme} from '#/alf'
+2-1
src/components/Menu/index.tsx
···6 View,
7 type ViewStyle,
8} from 'react-native'
9-import {msg, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
011import flattenReactChildren from 'react-keyed-flatten-children'
1213import {atoms as a, useTheme} from '#/alf'
···6 View,
7 type ViewStyle,
8} from 'react-native'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Trans} from '@lingui/react/macro'
12import flattenReactChildren from 'react-keyed-flatten-children'
1314import {atoms as a, useTheme} from '#/alf'
+1-1
src/components/Menu/index.web.tsx
···6 View,
7 type ViewStyle,
8} from 'react-native'
9-import {msg} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
11import {DropdownMenu} from 'radix-ui'
12
···6 View,
7 type ViewStyle,
8} from 'react-native'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11import {DropdownMenu} from 'radix-ui'
12
+3-2
src/components/NewskieDialog.tsx
···1import {useMemo, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, moderateProfile} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {differenceInSeconds} from 'date-fns'
78import {HITSLOP_10} from '#/lib/constants'
···29 const {_} = useLingui()
30 const control = useDialogControl()
3132- const createdAt = profile.createdAt as string | undefined
3334 const [now] = useState(() => Date.now())
35 const daysOld = useMemo(() => {
···1import {useMemo, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, moderateProfile} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {differenceInSeconds} from 'date-fns'
89import {HITSLOP_10} from '#/lib/constants'
···30 const {_} = useLingui()
31 const control = useDialogControl()
3233+ const createdAt = profile.createdAt
3435 const [now] = useState(() => Date.now())
36 const daysOld = useMemo(() => {
+1-1
src/components/Pills.tsx
···1import React from 'react'
2import {View} from 'react-native'
3import {BSKY_LABELER_DID, type ModerationCause} from '@atproto/api'
4-import {Trans} from '@lingui/macro'
56import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
7import {UserAvatar} from '#/view/com/util/UserAvatar'
···1import React from 'react'
2import {View} from 'react-native'
3import {BSKY_LABELER_DID, type ModerationCause} from '@atproto/api'
4+import {Trans} from '@lingui/react/macro'
56import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
7import {UserAvatar} from '#/view/com/util/UserAvatar'
+1-1
src/components/PolicyUpdateOverlay/Badge.tsx
···1import {View} from 'react-native'
2-import {Trans} from '@lingui/macro'
34import {Logo} from '#/view/icons/Logo'
5import {atoms as a, useTheme} from '#/alf'
···1import {View} from 'react-native'
2+import {Trans} from '@lingui/react/macro'
34import {Logo} from '#/view/icons/Logo'
5import {atoms as a, useTheme} from '#/alf'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useA11y} from '#/state/a11y'
7import {atoms as a, useTheme} from '#/alf'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useA11y} from '#/state/a11y'
8import {atoms as a, useTheme} from '#/alf'
···17import {WebView} from 'react-native-webview'
18import {Image} from 'expo-image'
19import {type AppBskyEmbedExternal} from '@atproto/api'
20-import {msg} from '@lingui/macro'
21import {useLingui} from '@lingui/react'
22import {useNavigation} from '@react-navigation/native'
23
···17import {WebView} from 'react-native-webview'
18import {Image} from 'expo-image'
19import {type AppBskyEmbedExternal} from '@atproto/api'
20+import {msg} from '@lingui/core/macro'
21import {useLingui} from '@lingui/react'
22import {useNavigation} from '@react-navigation/native'
23
+1-1
src/components/Post/Embed/ExternalEmbed/Gif.tsx
···1import {useRef, useState} from 'react'
2import {type StyleProp, View, type ViewStyle} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {clamp} from '#/lib/numbers'
···1import {useRef, useState} from 'react'
2import {type StyleProp, View, type ViewStyle} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {clamp} from '#/lib/numbers'
+1-1
src/components/Post/Embed/ExternalEmbed/index.tsx
···2import {type StyleProp, View, type ViewStyle} from 'react-native'
3import {Image} from 'expo-image'
4import {type AppBskyEmbedExternal} from '@atproto/api'
5-import {msg} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
78import {parseAltFromGIFDescription} from '#/lib/gif-alt-text'
···2import {type StyleProp, View, type ViewStyle} from 'react-native'
3import {Image} from 'expo-image'
4import {type AppBskyEmbedExternal} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
78import {parseAltFromGIFDescription} from '#/lib/gif-alt-text'
···4 TouchableOpacity,
5 View,
6} from 'react-native'
7-import {msg, Trans} from '@lingui/macro'
8import {useLingui} from '@lingui/react'
0910import {HITSLOP_20} from '#/lib/constants'
11import {atoms as a, useTheme} from '#/alf'
···4 TouchableOpacity,
5 View,
6} from 'react-native'
7+import {msg} from '@lingui/core/macro'
8import {useLingui} from '@lingui/react'
9+import {Trans} from '@lingui/react/macro'
1011import {HITSLOP_20} from '#/lib/constants'
12import {atoms as a, useTheme} from '#/alf'
···1import {type StyleProp, type ViewStyle} from 'react-native'
2import {View} from 'react-native'
3-import {msg, plural} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {atoms as a, useTheme} from '#/alf'
···1import {type StyleProp, type ViewStyle} from 'react-native'
2import {View} from 'react-native'
3+import {msg, plural} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {atoms as a, useTheme} from '#/alf'
···2import {Pressable, type StyleProp, View, type ViewStyle} from 'react-native'
3import {type AppBskyEmbedVideo} from '@atproto/api'
4import {BlueskyVideoView} from '@haileyok/bluesky-video'
5-import {msg} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
78import {HITSLOP_30} from '#/lib/constants'
···2import {Pressable, type StyleProp, View, type ViewStyle} from 'react-native'
3import {type AppBskyEmbedVideo} from '@atproto/api'
4import {BlueskyVideoView} from '@haileyok/bluesky-video'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
78import {HITSLOP_30} from '#/lib/constants'
···1import {useEffect, useId, useRef, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyEmbedVideo} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import type * as HlsTypes from 'hls.js'
7
···1import {useEffect, useId, useRef, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyEmbedVideo} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6import type * as HlsTypes from 'hls.js'
7
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {atoms as a, useTheme} from '#/alf'
6import {Button, ButtonIcon, ButtonText} from '#/components/Button'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {atoms as a, useTheme} from '#/alf'
7import {Button, ButtonIcon, ButtonText} from '#/components/Button'
···1import {useCallback, useEffect, useRef, useState} from 'react'
2import {View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {clamp} from '#/lib/numbers'
···1import {useCallback, useEffect, useRef, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {clamp} from '#/lib/numbers'
···1import {useCallback, useEffect, useRef, useState} from 'react'
2import {Pressable, View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import type Hls from 'hls.js'
67import {clamp} from '#/lib/numbers'
···1import {useCallback, useEffect, useRef, useState} from 'react'
2import {Pressable, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import type Hls from 'hls.js'
78import {clamp} from '#/lib/numbers'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
67import {atoms as a} from '#/alf'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
67import {atoms as a} from '#/alf'
+2-1
src/components/Post/Embed/VideoEmbed/index.tsx
···2import {ActivityIndicator, View} from 'react-native'
3import {ImageBackground} from 'expo-image'
4import {type AppBskyEmbedVideo} from '@atproto/api'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
078import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
9import {atoms as a, platform} from '#/alf'
···2import {ActivityIndicator, View} from 'react-native'
3import {ImageBackground} from 'expo-image'
4import {type AppBskyEmbedVideo} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
89import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
10import {atoms as a, platform} from '#/alf'
···8} from 'react'
9import {View} from 'react-native'
10import {type AppBskyEmbedVideo} from '@atproto/api'
11-import {msg} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
1314import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
···8} from 'react'
9import {View} from 'react-native'
10import {type AppBskyEmbedVideo} from '@atproto/api'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
1314import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
+1-1
src/components/Post/Embed/index.tsx
···8 moderatePost,
9 RichText as RichTextAPI,
10} from '@atproto/api'
11-import {Trans} from '@lingui/macro'
12import {useQueryClient} from '@tanstack/react-query'
1314import {makeProfileLink} from '#/lib/routes/links'
···8 moderatePost,
9 RichText as RichTextAPI,
10} from '@atproto/api'
11+import {Trans} from '@lingui/react/macro'
12import {useQueryClient} from '@tanstack/react-query'
1314import {makeProfileLink} from '#/lib/routes/links'
+1-1
src/components/Post/PostRepliedTo.tsx
···1import {View} from 'react-native'
2-import {Trans} from '@lingui/macro'
34import {useSession} from '#/state/session'
5import {UserInfoText} from '#/view/com/util/UserInfoText'
···1import {View} from 'react-native'
2+import {Trans} from '@lingui/react/macro'
34import {useSession} from '#/state/session'
5import {UserInfoText} from '#/view/com/util/UserInfoText'
+2-1
src/components/Post/ShowMoreTextButton.tsx
···1import {useCallback, useMemo} from 'react'
2import {LayoutAnimation, type TextStyle} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {HITSLOP_10} from '#/lib/constants'
7import {atoms as a, flatten, type TextStyleProp, useTheme} from '#/alf'
···1import {useCallback, useMemo} from 'react'
2import {LayoutAnimation, type TextStyle} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {HITSLOP_10} from '#/lib/constants'
8import {atoms as a, flatten, type TextStyleProp, useTheme} from '#/alf'
+2-1
src/components/PostControls/BookmarkButton.tsx
···1import {memo} from 'react'
2import {type Insets} from 'react-native'
3import {type AppBskyFeedDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import type React from 'react'
78import {useCleanError} from '#/lib/hooks/useCleanError'
···1import {memo} from 'react'
2import {type Insets} from 'react-native'
3import {type AppBskyFeedDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import type React from 'react'
89import {useCleanError} from '#/lib/hooks/useCleanError'
+1-1
src/components/PostControls/DiscoverDebug.tsx
···1import {Pressable} from 'react-native'
2import * as Clipboard from 'expo-clipboard'
3-import {t} from '@lingui/macro'
45import {DISCOVER_DEBUG_DIDS} from '#/lib/constants'
6import {useSession} from '#/state/session'
···1import {Pressable} from 'react-native'
2import * as Clipboard from 'expo-clipboard'
3+import {t} from '@lingui/core/macro'
45import {DISCOVER_DEBUG_DIDS} from '#/lib/constants'
6import {useSession} from '#/state/session'
···13 AtUri,
14 type RichText as RichTextAPI,
15} from '@atproto/api'
16-import {msg, plural} from '@lingui/macro'
17import {useLingui} from '@lingui/react'
18import {useNavigation} from '@react-navigation/native'
19
···13 AtUri,
14 type RichText as RichTextAPI,
15} from '@atproto/api'
16+import {msg, plural} from '@lingui/core/macro'
17import {useLingui} from '@lingui/react'
18import {useNavigation} from '@react-navigation/native'
19
+1-1
src/components/PostControls/PostMenu/index.tsx
···6 type AppBskyFeedThreadgate,
7 type RichText as RichTextAPI,
8} from '@atproto/api'
9-import {msg} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
1112import {type Shadow} from '#/state/cache/post-shadow'
···6 type AppBskyFeedThreadgate,
7 type RichText as RichTextAPI,
8} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
1112import {type Shadow} from '#/state/cache/post-shadow'
+2-1
src/components/PostControls/RepostButton.tsx
···1import {memo, useCallback} from 'react'
2import {View} from 'react-native'
3-import {msg, plural, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useHaptics} from '#/lib/haptics'
7import {useRequireAuth} from '#/state/session'
···1import {memo, useCallback} from 'react'
2import {View} from 'react-native'
3+import {msg, plural} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useHaptics} from '#/lib/haptics'
8import {useRequireAuth} from '#/state/session'
+2-3
src/components/PostControls/RepostButton.web.tsx
···1-import {msg} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
34-import {useRequireAuth} from '#/state/session'
5-import {useSession} from '#/state/session'
6import {EventStopper} from '#/view/com/util/EventStopper'
7import {useTheme} from '#/alf'
8import {CloseQuote_Stroke2_Corner1_Rounded as Quote} from '#/components/icons/Quote'
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
34+import {useRequireAuth, useSession} from '#/state/session'
05import {EventStopper} from '#/view/com/util/EventStopper'
6import {useTheme} from '#/alf'
7import {CloseQuote_Stroke2_Corner1_Rounded as Quote} from '#/components/icons/Quote'
···1import {ScrollView, View} from 'react-native'
2import {moderateProfile, type ModerationOpts} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useNavigation} from '@react-navigation/native'
67import {isBlockedOrBlocking, isMuted} from '#/lib/moderation/blocked-and-muted'
···1import {ScrollView, View} from 'react-native'
2import {moderateProfile, type ModerationOpts} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useNavigation} from '@react-navigation/native'
78import {isBlockedOrBlocking, isMuted} from '#/lib/moderation/blocked-and-muted'
···1import {memo, useMemo} from 'react'
2import * as ExpoClipboard from 'expo-clipboard'
3import {AtUri} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useNavigation} from '@react-navigation/native'
78import {makeProfileLink} from '#/lib/routes/links'
···1import {memo, useMemo} from 'react'
2import * as ExpoClipboard from 'expo-clipboard'
3import {AtUri} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useNavigation} from '@react-navigation/native'
89import {makeProfileLink} from '#/lib/routes/links'
···1import {memo, useMemo} from 'react'
2import {AtUri} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useNavigation} from '@react-navigation/native'
67import {makeProfileLink} from '#/lib/routes/links'
···1import {memo, useMemo} from 'react'
2import {AtUri} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useNavigation} from '@react-navigation/native'
78import {makeProfileLink} from '#/lib/routes/links'
+1-1
src/components/PostControls/ShareMenu/index.tsx
···7 AtUri,
8 type RichText as RichTextAPI,
9} from '@atproto/api'
10-import {msg} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
1213import {makeProfileLink} from '#/lib/routes/links'
···7 AtUri,
8 type RichText as RichTextAPI,
9} from '@atproto/api'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
1213import {makeProfileLink} from '#/lib/routes/links'
+1-1
src/components/PostControls/index.tsx
···6 type AppBskyFeedThreadgate,
7 type RichText as RichTextAPI,
8} from '@atproto/api'
9-import {msg, plural} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
1112import {CountWheel} from '#/lib/custom-animations/CountWheel'
···6 type AppBskyFeedThreadgate,
7 type RichText as RichTextAPI,
8} from '@atproto/api'
9+import {msg, plural} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
1112import {CountWheel} from '#/lib/custom-animations/CountWheel'
+1-1
src/components/ProfileCard.tsx
···11 type ModerationOpts,
12 RichText as RichTextApi,
13} from '@atproto/api'
14-import {msg} from '@lingui/macro'
15import {useLingui} from '@lingui/react'
1617import {getModerationCauseKey} from '#/lib/moderation'
···11 type ModerationOpts,
12 RichText as RichTextApi,
13} from '@atproto/api'
14+import {msg} from '@lingui/core/macro'
15import {useLingui} from '@lingui/react'
1617import {getModerationCauseKey} from '#/lib/moderation'
+1-1
src/components/ProfileHoverCard/index.web.tsx
···6 type ModerationOpts,
7} from '@atproto/api'
8import {flip, offset, shift, size, useFloating} from '@floating-ui/react-dom'
9-import {msg, plural} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
11import {useNavigation} from '@react-navigation/native'
12
···6 type ModerationOpts,
7} from '@atproto/api'
8import {flip, offset, shift, size, useFloating} from '@floating-ui/react-dom'
9+import {msg, plural} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11import {useNavigation} from '@react-navigation/native'
12
+2-1
src/components/ProgressGuide/FollowDialog.tsx
···6 type ViewToken,
7} from 'react-native'
8import {type ModerationOpts} from '@atproto/api'
9-import {msg, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
01112import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
13import {popularInterests, useInterestsDisplayNames} from '#/lib/interests'
···6 type ViewToken,
7} from 'react-native'
8import {type ModerationOpts} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Trans} from '@lingui/react/macro'
1213import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
14import {popularInterests, useInterestsDisplayNames} from '#/lib/interests'
+2-1
src/components/ProgressGuide/List.tsx
···5 View,
6 type ViewStyle,
7} from 'react-native'
8-import {msg, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
01011import {useProfileFollowsQuery} from '#/state/queries/profile-follows'
12import {useSession} from '#/state/session'
···5 View,
6 type ViewStyle,
7} from 'react-native'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Trans} from '@lingui/react/macro'
1112import {useProfileFollowsQuery} from '#/state/queries/profile-follows'
13import {useSession} from '#/state/session'
+1-1
src/components/ProgressGuide/Toast.tsx
···8 withTiming,
9} from 'react-native-reanimated'
10import {useSafeAreaInsets} from 'react-native-safe-area-context'
11-import {msg} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
1314import {atoms as a, useTheme} from '#/alf'
···8 withTiming,
9} from 'react-native-reanimated'
10import {useSafeAreaInsets} from 'react-native-safe-area-context'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
1314import {atoms as a, useTheme} from '#/alf'
+1-1
src/components/Prompt.tsx
···1import {createContext, useCallback, useContext, useId, useMemo} from 'react'
2import {type GestureResponderEvent, View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {atoms as a, useTheme, type ViewStyleProp, web} from '#/alf'
···1import {createContext, useCallback, useContext, useId, useMemo} from 'react'
2import {type GestureResponderEvent, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {atoms as a, useTheme, type ViewStyleProp, web} from '#/alf'
+2-1
src/components/RichTextTag.tsx
···1import React from 'react'
2import {type StyleProp, Text as RNText, type TextStyle} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useNavigation} from '@react-navigation/native'
67import {type NavigationProp} from '#/lib/routes/types'
···1import React from 'react'
2import {type StyleProp, Text as RNText, type TextStyle} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useNavigation} from '@react-navigation/native'
78import {type NavigationProp} from '#/lib/routes/types'
+2-3
src/components/Select/index.tsx
···7 useState,
8} from 'react'
9import {View} from 'react-native'
10-import {msg} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
1213-import {useTheme} from '#/alf'
14-import {atoms as a} from '#/alf'
15import {Button, ButtonIcon, ButtonText} from '#/components/Button'
16import * as Dialog from '#/components/Dialog'
17import {useInteractionState} from '#/components/hooks/useInteractionState'
···7 useState,
8} from 'react'
9import {View} from 'react-native'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
1213+import {atoms as a, useTheme} from '#/alf'
014import {Button, ButtonIcon, ButtonText} from '#/components/Button'
15import * as Dialog from '#/components/Dialog'
16import {useInteractionState} from '#/components/hooks/useInteractionState'
+1-1
src/components/StarterPack/Main/PostsList.tsx
···1import React, {useCallback} from 'react'
2import {View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {type FeedDescriptor} from '#/state/queries/post-feed'
···1import React, {useCallback} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {type FeedDescriptor} from '#/state/queries/post-feed'
···8 type ViewStyle,
9} from 'react-native'
10import {type AppBskyGraphDefs} from '@atproto/api'
11-import {msg, Trans} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
013import {useNavigation} from '@react-navigation/native'
1415import {useGenerateStarterPackMutation} from '#/lib/generate-starterpack'
···8 type ViewStyle,
9} from 'react-native'
10import {type AppBskyGraphDefs} from '@atproto/api'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13+import {Trans} from '@lingui/react/macro'
14import {useNavigation} from '@react-navigation/native'
1516import {useGenerateStarterPackMutation} from '#/lib/generate-starterpack'
+2-3
src/components/StarterPack/QrCode.tsx
···4import QRCode from 'react-native-qrcode-styled'
5import type ViewShot from 'react-native-view-shot'
6import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api'
7-import {Trans} from '@lingui/macro'
89import {Logo} from '#/view/icons/Logo'
10import {Logotype} from '#/view/icons/Logotype'
11-import {useTheme} from '#/alf'
12-import {atoms as a} from '#/alf'
13import {LinearGradientBackground} from '#/components/LinearGradientBackground'
14import {Text} from '#/components/Typography'
15import {IS_WEB} from '#/env'
···4import QRCode from 'react-native-qrcode-styled'
5import type ViewShot from 'react-native-view-shot'
6import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api'
7+import {Trans} from '@lingui/react/macro'
89import {Logo} from '#/view/icons/Logo'
10import {Logotype} from '#/view/icons/Logotype'
11+import {atoms as a, useTheme} from '#/alf'
012import {LinearGradientBackground} from '#/components/LinearGradientBackground'
13import {Text} from '#/components/Typography'
14import {IS_WEB} from '#/env'
+2-1
src/components/StarterPack/QrCodeDialog.tsx
···5import {createAssetAsync} from 'expo-media-library'
6import * as Sharing from 'expo-sharing'
7import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api'
8-import {msg, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
01011import {logger} from '#/logger'
12import {atoms as a, useBreakpoints} from '#/alf'
···5import {createAssetAsync} from 'expo-media-library'
6import * as Sharing from 'expo-sharing'
7import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Trans} from '@lingui/react/macro'
1112import {logger} from '#/logger'
13import {atoms as a, useBreakpoints} from '#/alf'
+2-1
src/components/StarterPack/ShareDialog.tsx
···1import {View} from 'react-native'
2import {Image} from 'expo-image'
3import {type AppBskyGraphDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {useSaveImageToMediaLibrary} from '#/lib/media/save-image'
8import {shareUrl} from '#/lib/sharing'
···1import {View} from 'react-native'
2import {Image} from 'expo-image'
3import {type AppBskyGraphDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {useSaveImageToMediaLibrary} from '#/lib/media/save-image'
9import {shareUrl} from '#/lib/sharing'
+12-3
src/components/StarterPack/StarterPackCard.tsx
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {AppBskyGraphStarterpack, AtUri} from '@atproto/api'
5-import {msg, Plural, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
07import {useQueryClient} from '@tanstack/react-query'
89import {sanitizeHandle} from '#/lib/strings/handles'
···126127 return {
128 to: `/starter-pack/${handleOrDid}/${rkey}`,
129- label: AppBskyGraphStarterpack.isRecord(view.record)
000130 ? _(msg`Navigate to ${view.record.name}`)
131 : _(msg`Navigate to starter pack`),
132 precache,
···150 return {rkey, handleOrDid: creator.handle || creator.did}
151 }, [starterPack])
152153- if (!AppBskyGraphStarterpack.isRecord(record)) {
00000154 return null
155 }
156
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {AppBskyGraphStarterpack, AtUri} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Plural, Trans} from '@lingui/react/macro'
8import {useQueryClient} from '@tanstack/react-query'
910import {sanitizeHandle} from '#/lib/strings/handles'
···127128 return {
129 to: `/starter-pack/${handleOrDid}/${rkey}`,
130+ label: bsky.dangerousIsType<AppBskyGraphStarterpack.Record>(
131+ view.record,
132+ AppBskyGraphStarterpack.isRecord,
133+ )
134 ? _(msg`Navigate to ${view.record.name}`)
135 : _(msg`Navigate to starter pack`),
136 precache,
···154 return {rkey, handleOrDid: creator.handle || creator.did}
155 }, [starterPack])
156157+ if (
158+ !bsky.dangerousIsType<AppBskyGraphStarterpack.Record>(
159+ record,
160+ AppBskyGraphStarterpack.isRecord,
161+ )
162+ ) {
163 return null
164 }
165
···6 type AppBskyFeedDefs,
7 type ModerationOpts,
8} from '@atproto/api'
9-import {msg, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
01112import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
13import {type ListMethods} from '#/view/com/util/List'
···6 type AppBskyFeedDefs,
7 type ModerationOpts,
8} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Trans} from '@lingui/react/macro'
1213import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
14import {type ListMethods} from '#/view/com/util/List'
···7 type ModerationOpts,
8 type ModerationUI,
9} from '@atproto/api'
10-import {msg, Trans} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
01213import {DISCOVER_FEED_URI, STARTER_PACK_MAX_SIZE} from '#/lib/constants'
14import {sanitizeDisplayName} from '#/lib/strings/display-names'
···7 type ModerationOpts,
8 type ModerationUI,
9} from '@atproto/api'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
12+import {Trans} from '@lingui/react/macro'
1314import {DISCOVER_FEED_URI, STARTER_PACK_MAX_SIZE} from '#/lib/constants'
15import {sanitizeDisplayName} from '#/lib/strings/display-names'
+1-1
src/components/TrendingTopics.tsx
···1import React from 'react'
2import {View} from 'react-native'
3import {type AtUri} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
67import {PressableScale} from '#/lib/custom-animations/PressableScale'
···1import React from 'react'
2import {View} from 'react-native'
3import {type AtUri} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
67import {PressableScale} from '#/lib/custom-animations/PressableScale'
+1-1
src/components/VideoPostCard.tsx
···9 AppBskyFeedPost,
10 type ModerationDecision,
11} from '@atproto/api'
12-import {msg} from '@lingui/macro'
13import {useLingui} from '@lingui/react'
1415import {sanitizeHandle} from '#/lib/strings/handles'
···9 AppBskyFeedPost,
10 type ModerationDecision,
11} from '@atproto/api'
12+import {msg} from '@lingui/core/macro'
13import {useLingui} from '@lingui/react'
1415import {sanitizeHandle} from '#/lib/strings/handles'
+2-1
src/components/WelcomeModal.tsx
···1import {useEffect, useState} from 'react'
2import {Pressable, View} from 'react-native'
3import {ImageBackground} from 'expo-image'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {FocusGuards, FocusScope} from 'radix-ui/internal'
78import {useLoggedOutViewControls} from '#/state/shell/logged-out'
···1import {useEffect, useState} from 'react'
2import {Pressable, View} from 'react-native'
3import {ImageBackground} from 'expo-image'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {FocusGuards, FocusScope} from 'radix-ui/internal'
89import {useLoggedOutViewControls} from '#/state/shell/logged-out'
+2-1
src/components/WhoCanReply.tsx
···12 type AppBskyGraphDefs,
13 AtUri,
14} from '@atproto/api'
15-import {msg, Trans} from '@lingui/macro'
16import {useLingui} from '@lingui/react'
01718import {HITSLOP_10} from '#/lib/constants'
19import {makeListLink, makeProfileLink} from '#/lib/routes/links'
···12 type AppBskyGraphDefs,
13 AtUri,
14} from '@atproto/api'
15+import {msg} from '@lingui/core/macro'
16import {useLingui} from '@lingui/react'
17+import {Trans} from '@lingui/react/macro'
1819import {HITSLOP_10} from '#/lib/constants'
20import {makeListLink, makeProfileLink} from '#/lib/routes/links'
···1import {useCallback, useEffect, useState} from 'react'
2import {type ModerationOpts} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
7import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
···1import {useCallback, useEffect, useState} from 'react'
2import {type ModerationOpts} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
8import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
···6 type ModerationOpts,
7 type Un$Typed,
8} from '@atproto/api'
9-import {msg, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
011import {
12 type InfiniteData,
13 useMutation,
···6 type ModerationOpts,
7 type Un$Typed,
8} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Trans} from '@lingui/react/macro'
12import {
13 type InfiniteData,
14 useMutation,
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {dateDiff, useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
6import {atoms as a, useBreakpoints, useTheme, type ViewStyleProp} from '#/alf'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {dateDiff, useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
7import {atoms as a, useBreakpoints, useTheme, type ViewStyleProp} from '#/alf'
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {atoms as a, select, useTheme, type ViewStyleProp} from '#/alf'
6import {AgeAssuranceConfigUnavailableError} from '#/components/ageAssurance/AgeAssuranceErrors'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {atoms as a, select, useTheme, type ViewStyleProp} from '#/alf'
7import {AgeAssuranceConfigUnavailableError} from '#/components/ageAssurance/AgeAssuranceErrors'
···1import React from 'react'
2import {View} from 'react-native'
3import {ToolsOzoneReportDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useMutation} from '@tanstack/react-query'
78import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
···1import React from 'react'
2import {View} from 'react-native'
3import {ToolsOzoneReportDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useMutation} from '@tanstack/react-query'
89import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
+1-1
src/components/ageAssurance/AgeAssuranceBadge.tsx
···1import {View} from 'react-native'
2-import {Trans} from '@lingui/macro'
34import {atoms as a, select, useTheme} from '#/alf'
5import {ShieldCheck_Stroke2_Corner0_Rounded as Shield} from '#/components/icons/Shield'
···1import {View} from 'react-native'
2+import {Trans} from '@lingui/react/macro'
34import {atoms as a, select, useTheme} from '#/alf'
5import {ShieldCheck_Stroke2_Corner0_Rounded as Shield} from '#/components/icons/Shield'
···1import {useMemo} from 'react'
2import {View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {Nux, useNux, useSaveNux} from '#/state/queries/nuxs'
···1import {useMemo} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {Nux, useNux, useSaveNux} from '#/state/queries/nuxs'
···1import {View} from 'react-native'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {Nux, useNux, useSaveNux} from '#/state/queries/nuxs'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {Nux, useNux, useSaveNux} from '#/state/queries/nuxs'
···1-import {msg, Trans} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
034import {type ViewStyleProp} from '#/alf'
5import * as Admonition from '#/components/Admonition'
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3+import {Trans} from '@lingui/react/macro'
45import {type ViewStyleProp} from '#/alf'
6import * as Admonition from '#/components/Admonition'
···1import {useState} from 'react'
2import {View} from 'react-native'
3import {XRPCError} from '@atproto/xrpc'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {validate as validateEmail} from 'email-validator'
78import {useCleanError} from '#/lib/hooks/useCleanError'
···1import {useState} from 'react'
2import {View} from 'react-native'
3import {XRPCError} from '@atproto/xrpc'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {validate as validateEmail} from 'email-validator'
89import {useCleanError} from '#/lib/hooks/useCleanError'
···1import {useEffect, useRef, useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {retry} from '#/lib/async/retry'
7import {wait} from '#/lib/async/wait'
···1import {useEffect, useRef, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {retry} from '#/lib/async/retry'
8import {wait} from '#/lib/async/wait'
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {atoms as a} from '#/alf'
6import {Admonition} from '#/components/Admonition'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {atoms as a} from '#/alf'
7import {Admonition} from '#/components/Admonition'
···1import {useMemo} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {useAgeAssurance} from '#/ageAssurance'
···1import {useMemo} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {useAgeAssurance} from '#/ageAssurance'
+2-1
src/components/contacts/FindContactsBannerNUX.tsx
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
078import {HITSLOP_10} from '#/lib/constants'
9import {Nux, useNux, useSaveNux} from '#/state/queries/nuxs'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
89import {HITSLOP_10} from '#/lib/constants'
10import {Nux, useNux, useSaveNux} from '#/state/queries/nuxs'
+1-1
src/components/contacts/components/HeroImage.tsx
···1import {View} from 'react-native'
2import {Image} from 'expo-image'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {atoms as a, useTheme} from '#/alf'
···1import {View} from 'react-native'
2import {Image} from 'expo-image'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {atoms as a, useTheme} from '#/alf'
+2-1
src/components/contacts/components/InviteInfo.tsx
···1import {type StyleProp, type TextStyle} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {HITSLOP_20} from '#/lib/constants'
6import {android, atoms as a} from '#/alf'
···1import {type StyleProp, type TextStyle} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {HITSLOP_20} from '#/lib/constants'
7import {android, atoms as a} from '#/alf'
+1-1
src/components/contacts/components/OTPInput.tsx
···5 type TextInputSelectionChangeEvent,
6 View,
7} from 'react-native'
8-import {msg} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
1011import {mergeRefs} from '#/lib/merge-refs'
···5 type TextInputSelectionChangeEvent,
6 View,
7} from 'react-native'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
1011import {mergeRefs} from '#/lib/merge-refs'
+1-1
src/components/contacts/phone-number.ts
···1-import {t} from '@lingui/macro'
2import {
3 isSupportedCountry,
4 ParseError,
···1+import {t} from '@lingui/core/macro'
2import {
3 isSupportedCountry,
4 ParseError,
+2-1
src/components/contacts/screens/GetContacts.tsx
···8 AppBskyContactImportContacts,
9 type Un$Typed,
10} from '@atproto/api'
11-import {msg, t, Trans} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
013import {useMutation, useQueryClient} from '@tanstack/react-query'
1415import {uploadBlob} from '#/lib/api'
···8 AppBskyContactImportContacts,
9 type Un$Typed,
10} from '@atproto/api'
11+import {msg, t} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13+import {Trans} from '@lingui/react/macro'
14import {useMutation, useQueryClient} from '@tanstack/react-query'
1516import {uploadBlob} from '#/lib/api'
+2-1
src/components/contacts/screens/PhoneInput.tsx
···3import {KeyboardAvoidingView} from 'react-native-keyboard-controller'
4import {useSafeAreaInsets} from 'react-native-safe-area-context'
5import {AppBskyContactStartPhoneVerification} from '@atproto/api'
6-import {msg, Trans} from '@lingui/macro'
7import {useLingui} from '@lingui/react'
08import {useMutation} from '@tanstack/react-query'
910import {urls} from '#/lib/constants'
···3import {KeyboardAvoidingView} from 'react-native-keyboard-controller'
4import {useSafeAreaInsets} from 'react-native-safe-area-context'
5import {AppBskyContactStartPhoneVerification} from '@atproto/api'
6+import {msg} from '@lingui/core/macro'
7import {useLingui} from '@lingui/react'
8+import {Trans} from '@lingui/react/macro'
9import {useMutation} from '@tanstack/react-query'
1011import {urls} from '#/lib/constants'
+2-1
src/components/contacts/screens/VerifyNumber.tsx
···4 AppBskyContactStartPhoneVerification,
5 AppBskyContactVerifyPhone,
6} from '@atproto/api'
7-import {msg, Trans} from '@lingui/macro'
8import {useLingui} from '@lingui/react'
09import {useMutation} from '@tanstack/react-query'
1011import {clamp} from '#/lib/numbers'
···4 AppBskyContactStartPhoneVerification,
5 AppBskyContactVerifyPhone,
6} from '@atproto/api'
7+import {msg} from '@lingui/core/macro'
8import {useLingui} from '@lingui/react'
9+import {Trans} from '@lingui/react/macro'
10import {useMutation} from '@tanstack/react-query'
1112import {clamp} from '#/lib/numbers'
+2-1
src/components/contacts/screens/ViewMatches.tsx
···3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4import * as SMS from 'expo-sms'
5import {type ModerationOpts} from '@atproto/api'
6-import {msg, Plural, Trans} from '@lingui/macro'
7import {useLingui} from '@lingui/react'
08import {useMutation, useQueryClient} from '@tanstack/react-query'
910import {wait} from '#/lib/async/wait'
···3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4import * as SMS from 'expo-sms'
5import {type ModerationOpts} from '@atproto/api'
6+import {msg} from '@lingui/core/macro'
7import {useLingui} from '@lingui/react'
8+import {Plural, Trans} from '@lingui/react/macro'
9import {useMutation, useQueryClient} from '@tanstack/react-query'
1011import {wait} from '#/lib/async/wait'
+2-1
src/components/dialogs/BirthDateSettings.tsx
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useCleanError} from '#/lib/hooks/useCleanError'
7import {isAppPassword} from '#/lib/jwt'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useCleanError} from '#/lib/hooks/useCleanError'
8import {isAppPassword} from '#/lib/jwt'
···1import {useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {wait} from '#/lib/async/wait'
7import {isNetworkError, useCleanError} from '#/lib/hooks/useCleanError'
···1import {useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {wait} from '#/lib/async/wait'
8import {isNetworkError, useCleanError} from '#/lib/hooks/useCleanError'
···1import {useState} from 'react'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {wait} from '#/lib/async/wait'
6import {atoms as a, type TextStyleProp, useTheme} from '#/alf'
···1import {useState} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {wait} from '#/lib/async/wait'
7import {atoms as a, type TextStyleProp, useTheme} from '#/alf'
···1import {type TextInputProps, View} from 'react-native'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import * as TextField from '#/components/forms/TextField'
···1import {type TextInputProps, View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import * as TextField from '#/components/forms/TextField'
+1-1
src/components/dialogs/EmailDialog/index.tsx
···1import {useCallback, useState} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {web} from '#/alf'
···1import {useCallback, useState} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {web} from '#/alf'
···1import {useReducer, useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {wait} from '#/lib/async/wait'
7import {useCleanError} from '#/lib/hooks/useCleanError'
···1import {useReducer, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {wait} from '#/lib/async/wait'
8import {useCleanError} from '#/lib/hooks/useCleanError'
···1import {useReducer} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {wait} from '#/lib/async/wait'
7import {useCleanError} from '#/lib/hooks/useCleanError'
···1import {useReducer} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {wait} from '#/lib/async/wait'
8import {useCleanError} from '#/lib/hooks/useCleanError'
···1import {useEffect, useState} from 'react'
2-import {Trans} from '@lingui/macro'
34import {useAccountEmailState} from '#/components/dialogs/EmailDialog/data/useAccountEmailState'
5import {Disable} from '#/components/dialogs/EmailDialog/screens/Manage2FA/Disable'
···1import {useEffect, useState} from 'react'
2+import {Trans} from '@lingui/react/macro'
34import {useAccountEmailState} from '#/components/dialogs/EmailDialog/data/useAccountEmailState'
5import {Disable} from '#/components/dialogs/EmailDialog/screens/Manage2FA/Disable'
···1import {useReducer} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {validate as validateEmail} from 'email-validator'
67import {wait} from '#/lib/async/wait'
···1import {useReducer} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {validate as validateEmail} from 'email-validator'
78import {wait} from '#/lib/async/wait'
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {atoms as a, platform, tokens, useBreakpoints, useTheme} from '#/alf'
6import {Button, ButtonText} from '#/components/Button'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {atoms as a, platform, tokens, useBreakpoints, useTheme} from '#/alf'
7import {Button, ButtonText} from '#/components/Button'
···1import {useReducer} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {wait} from '#/lib/async/wait'
7import {useCleanError} from '#/lib/hooks/useCleanError'
···1import {useReducer} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {wait} from '#/lib/async/wait'
8import {useCleanError} from '#/lib/hooks/useCleanError'
+2-1
src/components/dialogs/Embed.tsx
···1import {memo, useEffect, useMemo, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, type AppBskyFeedPost, AtUri} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {EMBED_SCRIPT} from '#/lib/constants'
8import {niceDate} from '#/lib/strings/time'
···1import {memo, useEffect, useMemo, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, type AppBskyFeedPost, AtUri} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {EMBED_SCRIPT} from '#/lib/constants'
9import {niceDate} from '#/lib/strings/time'
+2-1
src/components/dialogs/EmbedConsent.tsx
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {
7 type EmbedPlayerSource,
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {
8 type EmbedPlayerSource,
+2-1
src/components/dialogs/GifSelect.tsx
···8import {type TextInput, View} from 'react-native'
9import {useWindowDimensions} from 'react-native'
10import {Image} from 'expo-image'
11-import {msg, Trans} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
01314import {cleanError} from '#/lib/strings/errors'
15import {
···8import {type TextInput, View} from 'react-native'
9import {useWindowDimensions} from 'react-native'
10import {Image} from 'expo-image'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13+import {Trans} from '@lingui/react/macro'
1415import {cleanError} from '#/lib/strings/errors'
16import {
+2-1
src/components/dialogs/InAppBrowserConsent.tsx
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useOpenLink} from '#/lib/hooks/useOpenLink'
7import {useSetInAppBrowser} from '#/state/preferences/in-app-browser'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useOpenLink} from '#/lib/hooks/useOpenLink'
8import {useSetInAppBrowser} from '#/state/preferences/in-app-browser'
+2-1
src/components/dialogs/LanguageSelectDialog.tsx
···1import {useCallback, useMemo, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {languageName} from '#/locale/helpers'
8import {type Language, LANGUAGES, LANGUAGES_MAP_CODE2} from '#/locale/languages'
···1import {useCallback, useMemo, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {languageName} from '#/locale/helpers'
9import {type Language, LANGUAGES, LANGUAGES_MAP_CODE2} from '#/locale/languages'
+2-1
src/components/dialogs/LinkWarning.tsx
···1import {useCallback, useMemo} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useOpenLink} from '#/lib/hooks/useOpenLink'
7import {shareUrl} from '#/lib/sharing'
···1import {useCallback, useMemo} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useOpenLink} from '#/lib/hooks/useOpenLink'
8import {shareUrl} from '#/lib/sharing'
+2-1
src/components/dialogs/MutedWords.tsx
···1import React from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {logger} from '#/logger'
8import {
···1import React from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {logger} from '#/logger'
9import {
···5 type AppBskyFeedPostgate,
6 AtUri,
7} from '@atproto/api'
8-import {msg, Plural, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
010import {useQueryClient} from '@tanstack/react-query'
1112import {useHaptics} from '#/lib/haptics'
···5 type AppBskyFeedPostgate,
6 AtUri,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Plural, Trans} from '@lingui/react/macro'
11import {useQueryClient} from '@tanstack/react-query'
1213import {useHaptics} from '#/lib/haptics'
+2-1
src/components/dialogs/SearchablePeopleList.tsx
···8} from 'react'
9import {TextInput, View} from 'react-native'
10import {moderateProfile, type ModerationOpts} from '@atproto/api'
11-import {msg, Trans} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
01314import {sanitizeDisplayName} from '#/lib/strings/display-names'
15import {sanitizeHandle} from '#/lib/strings/handles'
···8} from 'react'
9import {TextInput, View} from 'react-native'
10import {moderateProfile, type ModerationOpts} from '@atproto/api'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13+import {Trans} from '@lingui/react/macro'
1415import {sanitizeDisplayName} from '#/lib/strings/display-names'
16import {sanitizeHandle} from '#/lib/strings/handles'
+2-1
src/components/dialogs/ServerInput.tsx
···1import {useCallback, useImperativeHandle, useRef, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {BSKY_SERVICE} from '#/lib/constants'
7import * as persisted from '#/state/persisted'
···1import {useCallback, useImperativeHandle, useRef, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {BSKY_SERVICE} from '#/lib/constants'
8import * as persisted from '#/state/persisted'
+2-1
src/components/dialogs/Signin.tsx
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useLoggedOutViewControls} from '#/state/shell/logged-out'
7import {useCloseAllActiveElements} from '#/state/util'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useLoggedOutViewControls} from '#/state/shell/logged-out'
8import {useCloseAllActiveElements} from '#/state/util'
+2-1
src/components/dialogs/StarterPackDialog.tsx
···4 type AppBskyGraphGetStarterPacksWithMembership,
5 AppBskyGraphStarterpack,
6} from '@atproto/api'
7-import {msg, Plural, Trans} from '@lingui/macro'
8import {useLingui} from '@lingui/react'
09import {useNavigation} from '@react-navigation/native'
1011import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
···4 type AppBskyGraphGetStarterPacksWithMembership,
5 AppBskyGraphStarterpack,
6} from '@atproto/api'
7+import {msg} from '@lingui/core/macro'
8import {useLingui} from '@lingui/react'
9+import {Plural, Trans} from '@lingui/react/macro'
10import {useNavigation} from '@react-navigation/native'
1112import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
+2-1
src/components/dialogs/SwitchAccount.tsx
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher'
7import {type SessionAccount, useSession} from '#/state/session'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher'
8import {type SessionAccount, useSession} from '#/state/session'
···8 type ComAtprotoRepoApplyWrites,
9} from '@atproto/api'
10import {TID} from '@atproto/common-web'
11-import {msg, Trans} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
013import {useNavigation} from '@react-navigation/native'
14import {useQueryClient} from '@tanstack/react-query'
15import chunk from 'lodash.chunk'
···8 type ComAtprotoRepoApplyWrites,
9} from '@atproto/api'
10import {TID} from '@atproto/common-web'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13+import {Trans} from '@lingui/react/macro'
14import {useNavigation} from '@react-navigation/native'
15import {useQueryClient} from '@tanstack/react-query'
16import chunk from 'lodash.chunk'
···1import {useCallback, useEffect, useMemo, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3import {type AppBskyGraphDefs, RichText as RichTextAPI} from '@atproto/api'
4-import {msg, Plural, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {cleanError} from '#/lib/strings/errors'
8import {isOverMaxGraphemeCount} from '#/lib/strings/helpers'
···1import {useCallback, useEffect, useMemo, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3import {type AppBskyGraphDefs, RichText as RichTextAPI} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Plural, Trans} from '@lingui/react/macro'
78import {cleanError} from '#/lib/strings/errors'
9import {isOverMaxGraphemeCount} from '#/lib/strings/helpers'
···1import {useCallback, useMemo} from 'react'
2import {View} from 'react-native'
3import {type AppBskyGraphDefs, type ModerationOpts} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {cleanError} from '#/lib/strings/errors'
8import {useModerationOpts} from '#/state/preferences/moderation-opts'
···1import {useCallback, useMemo} from 'react'
2import {View} from 'react-native'
3import {type AppBskyGraphDefs, type ModerationOpts} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {cleanError} from '#/lib/strings/errors'
9import {useModerationOpts} from '#/state/preferences/moderation-opts'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3import {Image} from 'expo-image'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {atoms as a, useTheme, web} from '#/alf'
8import {Button, ButtonText} from '#/components/Button'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3import {Image} from 'expo-image'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {atoms as a, useTheme, web} from '#/alf'
9import {Button, ButtonText} from '#/components/Button'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
078import {atoms as a, useTheme, web} from '#/alf'
9import {transparentifyColor} from '#/alf/util/colorGeneration'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
89import {atoms as a, useTheme, web} from '#/alf'
10import {transparentifyColor} from '#/alf/util/colorGeneration'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
078import {atoms as a, useTheme, web} from '#/alf'
9import {Button, ButtonText} from '#/components/Button'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
89import {atoms as a, useTheme, web} from '#/alf'
10import {Button, ButtonText} from '#/components/Button'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
078import {atoms as a, useTheme, web} from '#/alf'
9import {Button, ButtonText} from '#/components/Button'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
89import {atoms as a, useTheme, web} from '#/alf'
10import {Button, ButtonText} from '#/components/Button'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3import {Image} from 'expo-image'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {urls} from '#/lib/constants'
8import {atoms as a, useBreakpoints, useTheme} from '#/alf'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3import {Image} from 'expo-image'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {urls} from '#/lib/constants'
9import {atoms as a, useBreakpoints, useTheme} from '#/alf'
+2-1
src/components/dialogs/nuxs/LiveNowBetaDialog.tsx
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
078import {atoms as a, select, useTheme, utils, web} from '#/alf'
9import {Button, ButtonText} from '#/components/Button'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
89import {atoms as a, select, useTheme, utils, web} from '#/alf'
10import {Button, ButtonText} from '#/components/Button'
+1-1
src/components/dms/ActionsWrapper.tsx
···1import {View} from 'react-native'
2import {type ChatBskyConvoDefs} from '@atproto/api'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {atoms as a} from '#/alf'
···1import {View} from 'react-native'
2import {type ChatBskyConvoDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {atoms as a} from '#/alf'
+1-1
src/components/dms/ActionsWrapper.web.tsx
···1import {useCallback, useRef, useState} from 'react'
2import {Pressable, View} from 'react-native'
3import {type ChatBskyConvoDefs} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
67import {useConvoActive} from '#/state/messages/convo'
···1import {useCallback, useRef, useState} from 'react'
2import {Pressable, View} from 'react-native'
3import {type ChatBskyConvoDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
67import {useConvoActive} from '#/state/messages/convo'
+2-1
src/components/dms/AfterReportDialog.tsx
···1import {memo, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, type ChatBskyConvoDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {StackActions, useNavigation} from '@react-navigation/native'
7import type React from 'react'
8
···1import {memo, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, type ChatBskyConvoDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {StackActions, useNavigation} from '@react-navigation/native'
8import type React from 'react'
9
+1-1
src/components/dms/BlockedByListDialog.tsx
···1import React from 'react'
2import {View} from 'react-native'
3import {type ModerationCause} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
67import {listUriToHref} from '#/lib/strings/url-helpers'
···1import React from 'react'
2import {View} from 'react-native'
3import {type ModerationCause} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
67import {listUriToHref} from '#/lib/strings/url-helpers'
+1-1
src/components/dms/ChatEmptyPill.tsx
···6 useSharedValue,
7 withTiming,
8} from 'react-native-reanimated'
9-import {msg} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
1112import {ScaleAndFadeIn} from '#/lib/custom-animations/ScaleAndFade'
···6 useSharedValue,
7 withTiming,
8} from 'react-native-reanimated'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
1112import {ScaleAndFadeIn} from '#/lib/custom-animations/ScaleAndFade'
+2-1
src/components/dms/ConvoMenu.tsx
···1import React, {useCallback} from 'react'
2import {Keyboard, View} from 'react-native'
3import {type ChatBskyConvoDefs, type ModerationCause} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useNavigation} from '@react-navigation/native'
78import {type NavigationProp} from '#/lib/routes/types'
···1import React, {useCallback} from 'react'
2import {Keyboard, View} from 'react-native'
3import {type ChatBskyConvoDefs, type ModerationCause} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useNavigation} from '@react-navigation/native'
89import {type NavigationProp} from '#/lib/routes/types'
+2-1
src/components/dms/DateDivider.tsx
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {subDays} from 'date-fns'
67import {atoms as a, useTheme} from '#/alf'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {subDays} from 'date-fns'
78import {atoms as a, useTheme} from '#/alf'
+2-1
src/components/dms/EmojiPopup.android.tsx
···1import {useState} from 'react'
2import {Modal, Pressable, View} from 'react-native'
3import {SafeAreaView} from 'react-native-safe-area-context'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {atoms as a, useTheme} from '#/alf'
8import {Button, ButtonIcon} from '#/components/Button'
···1import {useState} from 'react'
2import {Modal, Pressable, View} from 'react-native'
3import {SafeAreaView} from 'react-native-safe-area-context'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {atoms as a, useTheme} from '#/alf'
9import {Button, ButtonIcon} from '#/components/Button'
+1-1
src/components/dms/EmojiReactionPicker.tsx
···1import {useMemo, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3import {type ChatBskyConvoDefs} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
67import {useSession} from '#/state/session'
···1import {useMemo, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3import {type ChatBskyConvoDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
67import {useSession} from '#/state/session'
+1-1
src/components/dms/EmojiReactionPicker.web.tsx
···2import {Pressable, View} from 'react-native'
3import {type ChatBskyConvoDefs} from '@atproto/api'
4import EmojiPicker from '@emoji-mart/react'
5-import {msg} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
7import {DropdownMenu} from 'radix-ui'
8
···2import {Pressable, View} from 'react-native'
3import {type ChatBskyConvoDefs} from '@atproto/api'
4import EmojiPicker from '@emoji-mart/react'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7import {DropdownMenu} from 'radix-ui'
8
+1-1
src/components/dms/LeaveConvoPrompt.tsx
···1-import {msg} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
3import {StackActions, useNavigation} from '@react-navigation/native'
4
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3import {StackActions, useNavigation} from '@react-navigation/native'
4
+1-1
src/components/dms/MessageContextMenu.tsx
···2import {LayoutAnimation} from 'react-native'
3import * as Clipboard from 'expo-clipboard'
4import {type ChatBskyConvoDefs, RichText} from '@atproto/api'
5-import {msg} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
78import {useTranslate} from '#/lib/hooks/useTranslate'
···2import {LayoutAnimation} from 'react-native'
3import * as Clipboard from 'expo-clipboard'
4import {type ChatBskyConvoDefs, RichText} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
78import {useTranslate} from '#/lib/hooks/useTranslate'
+1-1
src/components/dms/MessageItem.tsx
···17 RichText as RichTextAPI,
18} from '@atproto/api'
19import {type I18n} from '@lingui/core'
20-import {msg} from '@lingui/macro'
21import {useLingui} from '@lingui/react'
2223import {sanitizeDisplayName} from '#/lib/strings/display-names'
···17 RichText as RichTextAPI,
18} from '@atproto/api'
19import {type I18n} from '@lingui/core'
20+import {msg} from '@lingui/core/macro'
21import {useLingui} from '@lingui/react'
2223import {sanitizeDisplayName} from '#/lib/strings/display-names'
+2-1
src/components/dms/MessageProfileButton.tsx
···1import React from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useNavigation} from '@react-navigation/native'
78import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
···1import React from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useNavigation} from '@react-navigation/native'
89import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
+2-1
src/components/dms/MessagesListBlockedFooter.tsx
···1import React from 'react'
2import {View} from 'react-native'
3import {type ModerationDecision} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {useProfileShadow} from '#/state/cache/profile-shadow'
8import {useProfileBlockMutationQueue} from '#/state/queries/profile'
···1import React from 'react'
2import {View} from 'react-native'
3import {type ModerationDecision} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {useProfileShadow} from '#/state/cache/profile-shadow'
9import {useProfileBlockMutationQueue} from '#/state/queries/profile'
+1-1
src/components/dms/MessagesListHeader.tsx
···5 type ModerationCause,
6 type ModerationDecision,
7} from '@atproto/api'
8-import {msg} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
1011import {makeProfileLink} from '#/lib/routes/links'
···5 type ModerationCause,
6 type ModerationDecision,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
1011import {makeProfileLink} from '#/lib/routes/links'
+1-1
src/components/dms/NewMessagesPill.tsx
···7 withTiming,
8} from 'react-native-reanimated'
9import {useSafeAreaInsets} from 'react-native-safe-area-context'
10-import {Trans} from '@lingui/macro'
1112import {
13 ScaleAndFadeIn,
···7 withTiming,
8} from 'react-native-reanimated'
9import {useSafeAreaInsets} from 'react-native-safe-area-context'
10+import {Trans} from '@lingui/react/macro'
1112import {
13 ScaleAndFadeIn,
+1-1
src/components/dms/ReportConversationPrompt.tsx
···1-import {msg} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
34import {type DialogControlProps} from '#/components/Dialog'
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
34import {type DialogControlProps} from '#/components/Dialog'
+2-1
src/components/dms/dialogs/NewChatDialog.tsx
···1import {useCallback} from 'react'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
6import {logger} from '#/logger'
···1import {useCallback} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
7import {logger} from '#/logger'
+1-1
src/components/dms/dialogs/ShareViaChatDialog.tsx
···1import {useCallback} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {logger} from '#/logger'
···1import {useCallback} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {logger} from '#/logger'
+2-1
src/components/forms/DateField/index.tsx
···1import {useCallback, useImperativeHandle} from 'react'
2import {Keyboard, View} from 'react-native'
3import DatePicker from 'react-native-date-picker'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {atoms as a, useTheme} from '#/alf'
8import {Button, ButtonText} from '#/components/Button'
···1import {useCallback, useImperativeHandle} from 'react'
2import {Keyboard, View} from 'react-native'
3import DatePicker from 'react-native-date-picker'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {atoms as a, useTheme} from '#/alf'
9import {Button, ButtonText} from '#/components/Button'
+2-1
src/components/forms/HostingProvider.tsx
···1import React from 'react'
2import {Keyboard, View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {toNiceDomain} from '#/lib/strings/url-helpers'
7import {atoms as a, tokens, useTheme} from '#/alf'
···1import React from 'react'
2import {Keyboard, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {toNiceDomain} from '#/lib/strings/url-helpers'
8import {atoms as a, tokens, useTheme} from '#/alf'
+1-1
src/components/forms/SearchInput.tsx
···1import React from 'react'
2import {type TextInput, View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {HITSLOP_10} from '#/lib/constants'
···1import React from 'react'
2import {type TextInput, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {HITSLOP_10} from '#/lib/constants'
+1-1
src/components/hooks/useFollowMethods.ts
···1import React from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {logger} from '#/logger'
···1import React from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {logger} from '#/logger'
+1-1
src/components/images/AutoSizedImage.tsx
···7import {Image} from 'expo-image'
8import {type AppBskyEmbedImages} from '@atproto/api'
9import {utils} from '@bsky.app/alf'
10-import {msg} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
1213import {type Dimensions} from '#/lib/media/types'
···7import {Image} from 'expo-image'
8import {type AppBskyEmbedImages} from '@atproto/api'
9import {utils} from '@bsky.app/alf'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
1213import {type Dimensions} from '#/lib/media/types'
+1-1
src/components/images/Gallery.tsx
···3import {Image, type ImageStyle} from 'expo-image'
4import {type AppBskyEmbedImages} from '@atproto/api'
5import {utils} from '@bsky.app/alf'
6-import {msg} from '@lingui/macro'
7import {useLingui} from '@lingui/react'
89import {type Dimensions} from '#/lib/media/types'
···3import {Image, type ImageStyle} from 'expo-image'
4import {type AppBskyEmbedImages} from '@atproto/api'
5import {utils} from '@bsky.app/alf'
6+import {msg} from '@lingui/core/macro'
7import {useLingui} from '@lingui/react'
89import {type Dimensions} from '#/lib/media/types'
···1import {useEffect, useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useAgent, useSession} from '#/state/session'
7import {atoms as a, useBreakpoints, useTheme} from '#/alf'
···1import {useEffect, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useAgent, useSession} from '#/state/session'
8import {atoms as a, useBreakpoints, useTheme} from '#/alf'
+1-1
src/components/interstitials/Trending.tsx
···1import React from 'react'
2import {ScrollView, View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {
···1import React from 'react'
2import {ScrollView, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {
+2-1
src/components/interstitials/TrendingVideos.tsx
···1import {useCallback, useEffect, useMemo} from 'react'
2import {ScrollView, View} from 'react-native'
3import {AppBskyEmbedVideo, AtUri} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useQueryClient} from '@tanstack/react-query'
78import {VIDEO_FEED_URI} from '#/lib/constants'
···1import {useCallback, useEffect, useMemo} from 'react'
2import {ScrollView, View} from 'react-native'
3import {AppBskyEmbedVideo, AtUri} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useQueryClient} from '@tanstack/react-query'
89import {VIDEO_FEED_URI} from '#/lib/constants'
+2-1
src/components/moderation/ContentHider.tsx
···6 type ViewStyle,
7} from 'react-native'
8import {type ModerationUI} from '@atproto/api'
9-import {msg, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
01112import {
13 ADULT_CONTENT_LABELS,
···6 type ViewStyle,
7} from 'react-native'
8import {type ModerationUI} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Trans} from '@lingui/react/macro'
1213import {
14 ADULT_CONTENT_LABELS,
+2-1
src/components/moderation/LabelPreference.tsx
···3 type InterpretedLabelValueDefinition,
4 type LabelPreference,
5} from '@atproto/api'
6-import {msg, Trans} from '@lingui/macro'
7import {useLingui} from '@lingui/react'
089import {useGlobalLabelStrings} from '#/lib/moderation/useGlobalLabelStrings'
10import {useLabelBehaviorDescription} from '#/lib/moderation/useLabelBehaviorDescription'
···3 type InterpretedLabelValueDefinition,
4 type LabelPreference,
5} from '@atproto/api'
6+import {msg} from '@lingui/core/macro'
7import {useLingui} from '@lingui/react'
8+import {Trans} from '@lingui/react/macro'
910import {useGlobalLabelStrings} from '#/lib/moderation/useGlobalLabelStrings'
11import {useLabelBehaviorDescription} from '#/lib/moderation/useLabelBehaviorDescription'
+2-1
src/components/moderation/LabelsOnMe.tsx
···1import {type StyleProp, View, type ViewStyle} from 'react-native'
2import {type AppBskyFeedDefs, type ComAtprotoLabelDefs} from '@atproto/api'
3-import {msg, Plural, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useSession} from '#/state/session'
7import {atoms as a} from '#/alf'
···1import {type StyleProp, View, type ViewStyle} from 'react-native'
2import {type AppBskyFeedDefs, type ComAtprotoLabelDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Plural, Trans} from '@lingui/react/macro'
67import {useSession} from '#/state/session'
8import {atoms as a} from '#/alf'
+2-1
src/components/moderation/LabelsOnMeDialog.tsx
···2import {View} from 'react-native'
3import {type ComAtprotoLabelDefs, ToolsOzoneReportDefs} from '@atproto/api'
4import {XRPCError} from '@atproto/xrpc'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
07import {useMutation} from '@tanstack/react-query'
89import {useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
···2import {View} from 'react-native'
3import {type ComAtprotoLabelDefs, ToolsOzoneReportDefs} from '@atproto/api'
4import {XRPCError} from '@atproto/xrpc'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
8import {useMutation} from '@tanstack/react-query'
910import {useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
···1import {View} from 'react-native'
2import {type ModerationCause} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
7import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
···1import {View} from 'react-native'
2import {type ModerationCause} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
8import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
+2-1
src/components/moderation/PostHider.tsx
···12 type ModerationCause,
13 type ModerationUI,
14} from '@atproto/api'
15-import {msg, Trans} from '@lingui/macro'
16import {useLingui} from '@lingui/react'
017import {useQueryClient} from '@tanstack/react-query'
1819import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
···12 type ModerationCause,
13 type ModerationUI,
14} from '@atproto/api'
15+import {msg} from '@lingui/core/macro'
16import {useLingui} from '@lingui/react'
17+import {Trans} from '@lingui/react/macro'
18import {useQueryClient} from '@tanstack/react-query'
1920import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
+1-1
src/components/moderation/ReportDialog/action.ts
···3 type ChatBskyConvoDefs,
4 type ComAtprotoModerationCreateReport,
5} from '@atproto/api'
6-import {msg} from '@lingui/macro'
7import {useLingui} from '@lingui/react'
8import {useMutation} from '@tanstack/react-query'
9
···3 type ChatBskyConvoDefs,
4 type ComAtprotoModerationCreateReport,
5} from '@atproto/api'
6+import {msg} from '@lingui/core/macro'
7import {useLingui} from '@lingui/react'
8import {useMutation} from '@tanstack/react-query'
9
+1-1
src/components/moderation/ReportDialog/copy.ts
···1import {useMemo} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {type ParsedReportSubject} from './types'
···1import {useMemo} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {type ParsedReportSubject} from './types'
+3-4
src/components/moderation/ReportDialog/index.tsx
···1import React from 'react'
2import {Pressable, type ScrollView, View} from 'react-native'
3import {type AppBskyLabelerDefs, BSKY_LABELER_DID} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {wait} from '#/lib/async/wait'
8import {getLabelingServiceTitle} from '#/lib/moderation'
···168 if (supportedReasonTypes === undefined) return true
169 return (
170 // supports new reason type
171- supportedReasonTypes.includes(state.selectedOption.reason) ||
172- // supports old reason type (backwards compat)
173 supportedReasonTypes.includes(
174 NEW_TO_OLD_REASONS_MAP[state.selectedOption.reason],
175 )
···575 )}
576 </StepOuter>
577 </View>
578-579 <Dialog.Close />
580 </Dialog.ScrollableInner>
581 )
···1import React from 'react'
2import {Pressable, type ScrollView, View} from 'react-native'
3import {type AppBskyLabelerDefs, BSKY_LABELER_DID} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {wait} from '#/lib/async/wait'
9import {getLabelingServiceTitle} from '#/lib/moderation'
···169 if (supportedReasonTypes === undefined) return true
170 return (
171 // supports new reason type
172+ supportedReasonTypes.includes(state.selectedOption.reason) || // supports old reason type (backwards compat)
0173 supportedReasonTypes.includes(
174 NEW_TO_OLD_REASONS_MAP[state.selectedOption.reason],
175 )
···575 )}
576 </StepOuter>
577 </View>
0578 <Dialog.Close />
579 </Dialog.ScrollableInner>
580 )
···1import {useMemo} from 'react'
2import {ToolsOzoneReportDefs as OzoneReportDefs} from '@atproto/api'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56export type ReportCategory =
···247 }
248249 return {
250- categories: Object.values(categories) as ReportCategoryConfig[],
251 getCategory(reasonName: ReportCategory) {
252 return categories[reasonName]
253 },
···1import {useMemo} from 'react'
2import {ToolsOzoneReportDefs as OzoneReportDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56export type ReportCategory =
···247 }
248249 return {
250+ categories: Object.values(categories),
251 getCategory(reasonName: ReportCategory) {
252 return categories[reasonName]
253 },
+2-1
src/components/moderation/ScreenHider.tsx
···6 type ViewStyle,
7} from 'react-native'
8import {type ModerationUI} from '@atproto/api'
9-import {msg, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
011import {useNavigation} from '@react-navigation/native'
1213import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
···6 type ViewStyle,
7} from 'react-native'
8import {type ModerationUI} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Trans} from '@lingui/react/macro'
12import {useNavigation} from '@react-navigation/native'
1314import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
···1import {View} from 'react-native'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {type Shadow} from '#/state/cache/types'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {type Shadow} from '#/state/cache/types'
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {logger} from '#/logger'
7import {useModerationOpts} from '#/state/preferences/moderation-opts'
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {logger} from '#/logger'
8import {useModerationOpts} from '#/state/preferences/moderation-opts'
···1import {useCallback} from 'react'
2import {type AppBskyActorDefs} from '@atproto/api'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {logger} from '#/logger'
···1import {useCallback} from 'react'
2import {type AppBskyActorDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {logger} from '#/logger'
···1import {View} from 'react-native'
2import {type AppBskyActorDefs} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {urls} from '#/lib/constants'
7import {getUserDisplayName} from '#/lib/getUserDisplayName'
···1import {View} from 'react-native'
2import {type AppBskyActorDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {urls} from '#/lib/constants'
8import {getUserDisplayName} from '#/lib/getUserDisplayName'
+2-1
src/components/verification/VerifierDialog.tsx
···1import {Text as RNText, View} from 'react-native'
2import {Image} from 'expo-image'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {urls} from '#/lib/constants'
7import {getUserDisplayName} from '#/lib/getUserDisplayName'
···1import {Text as RNText, View} from 'react-native'
2import {Image} from 'expo-image'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {urls} from '#/lib/constants'
8import {getUserDisplayName} from '#/lib/getUserDisplayName'
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {useTrendingSettings} from '#/state/preferences/trending'
6import {atoms as a, useLayoutBreakpoints} from '#/alf'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {useTrendingSettings} from '#/state/preferences/trending'
7import {atoms as a, useLayoutBreakpoints} from '#/alf'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5-import {msg} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
78import {useCallOnce} from '#/lib/once'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
78import {useCallOnce} from '#/lib/once'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
078import {useCallOnce} from '#/lib/once'
9import {isBskyCustomFeedUrl} from '#/lib/strings/url-helpers'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {LinearGradient} from 'expo-linear-gradient'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
89import {useCallOnce} from '#/lib/once'
10import {isBskyCustomFeedUrl} from '#/lib/strings/url-helpers'
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {useCleanError} from '#/lib/hooks/useCleanError'
6import {atoms as a, web} from '#/alf'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {useCleanError} from '#/lib/hooks/useCleanError'
7import {atoms as a, web} from '#/alf'
···1-import {msg, Trans} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
034import * as SettingsList from '#/screens/Settings/components/SettingsList'
5import * as Toggle from '#/components/forms/Toggle'
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3+import {Trans} from '@lingui/react/macro'
45import * as SettingsList from '#/screens/Settings/components/SettingsList'
6import * as Toggle from '#/components/forms/Toggle'
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {atoms as a} from '#/alf'
6import {Button} from '#/components/Button'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {atoms as a} from '#/alf'
7import {Button} from '#/components/Button'
···5 AppBskyActorStatus,
6 type AppBskyEmbedExternal,
7} from '@atproto/api'
8-import {msg, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
010import {differenceInMinutes} from 'date-fns'
1112import {useDebouncedValue} from '#/lib/hooks/useDebouncedValue'
···5 AppBskyActorStatus,
6 type AppBskyEmbedExternal,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Trans} from '@lingui/react/macro'
11import {differenceInMinutes} from 'date-fns'
1213import {useDebouncedValue} from '#/lib/hooks/useDebouncedValue'
+2-1
src/features/liveNow/components/GoLiveDialog.tsx
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useDebouncedValue} from '#/lib/hooks/useDebouncedValue'
7import {cleanError} from '#/lib/strings/errors'
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useDebouncedValue} from '#/lib/hooks/useDebouncedValue'
8import {cleanError} from '#/lib/strings/errors'
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, ToolsOzoneReportDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useMutation} from '@tanstack/react-query'
78import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, ToolsOzoneReportDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useMutation} from '@tanstack/react-query'
89import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
+1-1
src/features/liveNow/components/LinkPreview.tsx
···1import {useState} from 'react'
2import {View} from 'react-native'
3import {Image} from 'expo-image'
4-import {Trans} from '@lingui/macro'
56import {type LinkMeta} from '#/lib/link-meta/link-meta'
7import {toNiceDomain} from '#/lib/strings/url-helpers'
···1import {useState} from 'react'
2import {View} from 'react-native'
3import {Image} from 'expo-image'
4+import {Trans} from '@lingui/react/macro'
56import {type LinkMeta} from '#/lib/link-meta/link-meta'
7import {toNiceDomain} from '#/lib/strings/url-helpers'
+1-1
src/features/liveNow/components/LiveIndicator.tsx
···1import {type StyleProp, View, type ViewStyle} from 'react-native'
2-import {Trans} from '@lingui/macro'
34import {atoms as a, tokens, useTheme} from '#/alf'
5import {Text} from '#/components/Typography'
···1import {type StyleProp, View, type ViewStyle} from 'react-native'
2+import {Trans} from '@lingui/react/macro'
34import {atoms as a, tokens, useTheme} from '#/alf'
5import {Text} from '#/components/Typography'
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {type AppBskyActorDefs, type AppBskyEmbedExternal} from '@atproto/api'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
07import {useNavigation} from '@react-navigation/native'
8import {useQueryClient} from '@tanstack/react-query'
9
···2import {View} from 'react-native'
3import {Image} from 'expo-image'
4import {type AppBskyActorDefs, type AppBskyEmbedExternal} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
8import {useNavigation} from '@react-navigation/native'
9import {useQueryClient} from '@tanstack/react-query'
10
+1-1
src/features/liveNow/index.tsx
···8 ComAtprotoRepoPutRecord,
9} from '@atproto/api'
10import {retry} from '@atproto/common-web'
11-import {msg} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
13import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
14import {isAfter, parseISO} from 'date-fns'
···8 ComAtprotoRepoPutRecord,
9} from '@atproto/api'
10import {retry} from '@atproto/common-web'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
14import {isAfter, parseISO} from 'date-fns'
+1-1
src/features/liveNow/utils.ts
···1import {type I18n} from '@lingui/core'
2-import {plural} from '@lingui/macro'
3import psl from 'psl'
45export function displayDuration(i18n: I18n, durationInMinutes: number) {
···1import {type I18n} from '@lingui/core'
2+import {plural} from '@lingui/core/macro'
3import psl from 'psl'
45export function displayDuration(i18n: I18n, durationInMinutes: number) {
+1-1
src/lib/api/index.ts
···16} from '@atproto/api'
17import {TID} from '@atproto/common-web'
18import * as dcbor from '@ipld/dag-cbor'
19-import {t} from '@lingui/macro'
20import {type QueryClient} from '@tanstack/react-query'
21import {sha256} from 'js-sha256'
22import {CID} from 'multiformats/cid'
···16} from '@atproto/api'
17import {TID} from '@atproto/common-web'
18import * as dcbor from '@ipld/dag-cbor'
19+import {t} from '@lingui/core/macro'
20import {type QueryClient} from '@tanstack/react-query'
21import {sha256} from 'js-sha256'
22import {CID} from 'multiformats/cid'
+1-1
src/lib/generate-starterpack.ts
···6 type ComAtprotoRepoApplyWrites,
7 type Facet,
8} from '@atproto/api'
9-import {msg} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
11import {useMutation} from '@tanstack/react-query'
12
···6 type ComAtprotoRepoApplyWrites,
7 type Facet,
8} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11import {useMutation} from '@tanstack/react-query'
12
+1-1
src/lib/hooks/useAccountSwitcher.ts
···1import {useCallback, useState} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {logger} from '#/logger'
···1import {useCallback, useState} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {logger} from '#/logger'
+1-1
src/lib/hooks/useCleanError.ts
···1import {useCallback} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45type CleanedError = {
···1import {useCallback} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45type CleanedError = {
+1-1
src/lib/hooks/useCreateSupportLink.ts
···1import {useCallback} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {useSession} from '#/state/session'
···1import {useCallback} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {useSession} from '#/state/session'
+1-1
src/lib/hooks/useNotificationHandler.ts
···1import {useEffect} from 'react'
2import * as Notifications from 'expo-notifications'
3import {AtUri} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {CommonActions, useNavigation} from '@react-navigation/native'
7import {useQueryClient} from '@tanstack/react-query'
···1import {useEffect} from 'react'
2import * as Notifications from 'expo-notifications'
3import {AtUri} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6import {CommonActions, useNavigation} from '@react-navigation/native'
7import {useQueryClient} from '@tanstack/react-query'
+1-1
src/lib/hooks/useOpenComposer.tsx
···1import {useMemo} from 'react'
2-import {Trans} from '@lingui/macro'
34import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
5import {useOpenComposer as useRootOpenComposer} from '#/state/shell/composer'
···1import {useMemo} from 'react'
2+import {Trans} from '@lingui/react/macro'
34import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
5import {useOpenComposer as useRootOpenComposer} from '#/state/shell/composer'
+1-1
src/lib/hooks/useTimeAgo.ts
···1import {useCallback} from 'react'
2import {type I18n} from '@lingui/core'
3-import {defineMessage, msg, plural} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
5import {differenceInSeconds} from 'date-fns'
6
···1import {useCallback} from 'react'
2import {type I18n} from '@lingui/core'
3+import {defineMessage, msg, plural} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5import {differenceInSeconds} from 'date-fns'
6
+1-1
src/lib/interests.ts
···1import {useMemo} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45export const interests = [
···1import {useMemo} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45export const interests = [
+1-1
src/lib/media/picker.shared.ts
···3 launchImageLibraryAsync,
4 UIImagePickerPreferredAssetRepresentationMode,
5} from 'expo-image-picker'
6-import {t} from '@lingui/macro'
78import {type ImageMeta} from '#/state/gallery'
9import * as Toast from '#/view/com/util/Toast'
···3 launchImageLibraryAsync,
4 UIImagePickerPreferredAssetRepresentationMode,
5} from 'expo-image-picker'
6+import {t} from '@lingui/core/macro'
78import {type ImageMeta} from '#/state/gallery'
9import * as Toast from '#/view/com/util/Toast'
+1-1
src/lib/media/picker.tsx
···2import ExpoImageCropTool, {
3 type OpenCropperOptions,
4} from '@bsky.app/expo-image-crop-tool'
5-import {t} from '@lingui/macro'
67export {
8 openPicker,
···2import ExpoImageCropTool, {
3 type OpenCropperOptions,
4} from '@bsky.app/expo-image-crop-tool'
5+import {t} from '@lingui/core/macro'
67export {
8 openPicker,
+1-1
src/lib/media/save-image.ios.ts
···1import {useCallback} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import * as Toast from '#/components/Toast'
···1import {useCallback} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import * as Toast from '#/components/Toast'
+1-1
src/lib/media/save-image.ts
···1import {useCallback} from 'react'
2import * as MediaLibrary from 'expo-media-library'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import * as Toast from '#/components/Toast'
···1import {useCallback} from 'react'
2import * as MediaLibrary from 'expo-media-library'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import * as Toast from '#/components/Toast'
+1-1
src/lib/media/video/upload.shared.ts
···1import {type BskyAgent} from '@atproto/api'
2import {type I18n} from '@lingui/core'
3-import {msg} from '@lingui/macro'
45import {VIDEO_SERVICE_DID} from '#/lib/constants'
6import {UploadLimitError} from '#/lib/media/video/errors'
···1import {type BskyAgent} from '@atproto/api'
2import {type I18n} from '@lingui/core'
3+import {msg} from '@lingui/core/macro'
45import {VIDEO_SERVICE_DID} from '#/lib/constants'
6import {UploadLimitError} from '#/lib/media/video/errors'
+1-1
src/lib/media/video/upload.ts
···1import {createUploadTask, FileSystemUploadType} from 'expo-file-system/legacy'
2import {type AppBskyVideoDefs, type BskyAgent} from '@atproto/api'
3import {type I18n} from '@lingui/core'
4-import {msg} from '@lingui/macro'
5import {nanoid} from 'nanoid/non-secure'
67import {AbortError} from '#/lib/async/cancelable'
···1import {createUploadTask, FileSystemUploadType} from 'expo-file-system/legacy'
2import {type AppBskyVideoDefs, type BskyAgent} from '@atproto/api'
3import {type I18n} from '@lingui/core'
4+import {msg} from '@lingui/core/macro'
5import {nanoid} from 'nanoid/non-secure'
67import {AbortError} from '#/lib/async/cancelable'
+2-3
src/lib/media/video/upload.web.ts
···1-import {type AppBskyVideoDefs} from '@atproto/api'
2-import {type BskyAgent} from '@atproto/api'
3import {type I18n} from '@lingui/core'
4-import {msg} from '@lingui/macro'
5import {nanoid} from 'nanoid/non-secure'
67import {AbortError} from '#/lib/async/cancelable'
···1+import {type AppBskyVideoDefs, type BskyAgent} from '@atproto/api'
02import {type I18n} from '@lingui/core'
3+import {msg} from '@lingui/core/macro'
4import {nanoid} from 'nanoid/non-secure'
56import {AbortError} from '#/lib/async/cancelable'
+1-1
src/lib/moderation/useGlobalLabelStrings.ts
···1import {useMemo} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45export type GlobalLabelStrings = Record<
···1import {useMemo} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45export type GlobalLabelStrings = Record<
+1-1
src/lib/moderation/useLabelBehaviorDescription.ts
···2 type InterpretedLabelValueDefinition,
3 type LabelPreference,
4} from '@atproto/api'
5-import {msg} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
78export function useLabelBehaviorDescription(
···2 type InterpretedLabelValueDefinition,
3 type LabelPreference,
4} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
78export function useLabelBehaviorDescription(
···4 type ModerationCause,
5 type ModerationCauseSource,
6} from '@atproto/api'
7-import {msg} from '@lingui/macro'
8import {useLingui} from '@lingui/react'
910import {sanitizeHandle} from '#/lib/strings/handles'
···4 type ModerationCause,
5 type ModerationCauseSource,
6} from '@atproto/api'
7+import {msg} from '@lingui/core/macro'
8import {useLingui} from '@lingui/react'
910import {sanitizeHandle} from '#/lib/strings/handles'
+1-2
src/lib/sharing.ts
···1import {Share} from 'react-native'
2// import * as Sharing from 'expo-sharing'
3import {setStringAsync} from 'expo-clipboard'
4-// TODO: replace global i18n instance with one returned from useLingui -sfn
5-import {t} from '@lingui/macro'
67import * as Toast from '#/view/com/util/Toast'
8import {IS_ANDROID, IS_IOS} from '#/env'
···1import {Share} from 'react-native'
2// import * as Sharing from 'expo-sharing'
3import {setStringAsync} from 'expo-clipboard'
4+import {t} from '@lingui/core/macro'
056import * as Toast from '#/view/com/util/Toast'
7import {IS_ANDROID, IS_IOS} from '#/env'
+1-1
src/lib/strings/errors.ts
···1import {XRPCError} from '@atproto/xrpc'
2-import {t} from '@lingui/macro'
34export function cleanError(str: any): string {
5 if (!str) {
···1import {XRPCError} from '@atproto/xrpc'
2+import {t} from '@lingui/core/macro'
34export function cleanError(str: any): string {
5 if (!str) {
+1-1
src/lib/strings/time.ts
···1import {type I18n} from '@lingui/core'
2-import {msg} from '@lingui/macro'
34export function niceDate(
5 i18n: I18n,
···1import {type I18n} from '@lingui/core'
2+import {msg} from '@lingui/core/macro'
34export function niceDate(
5 i18n: I18n,
+2-1
src/screens/Bookmarks/components/EmptyState.tsx
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {atoms as a, useTheme} from '#/alf'
6import {ButtonText} from '#/components/Button'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {atoms as a, useTheme} from '#/alf'
7import {ButtonText} from '#/components/Button'
+2-1
src/screens/Bookmarks/index.tsx
···5 type AppBskyBookmarkDefs,
6 AppBskyFeedDefs,
7} from '@atproto/api'
8-import {msg, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
010import {
11 type NavigationProp,
12 useFocusEffect,
···5 type AppBskyBookmarkDefs,
6 AppBskyFeedDefs,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Trans} from '@lingui/react/macro'
11import {
12 type NavigationProp,
13 useFocusEffect,
+2-1
src/screens/Deactivated.tsx
···1import React from 'react'
2import {View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useQueryClient} from '@tanstack/react-query'
78import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher'
···1import React from 'react'
2import {View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useQueryClient} from '@tanstack/react-query'
89import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher'
+2-1
src/screens/Feeds/NoFollowingFeed.tsx
···1import {type GestureResponderEvent, View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {TIMELINE_SAVED_FEED} from '#/lib/constants'
6import {useAddSavedFeedsMutation} from '#/state/queries/preferences'
···1import {type GestureResponderEvent, View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {TIMELINE_SAVED_FEED} from '#/lib/constants'
7import {useAddSavedFeedsMutation} from '#/state/queries/preferences'
+2-1
src/screens/Feeds/NoSavedFeedsOfAnyType.tsx
···1import {View} from 'react-native'
2import {TID} from '@atproto/common-web'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {RECOMMENDED_SAVED_FEEDS} from '#/lib/constants'
7import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences'
···1import {View} from 'react-native'
2import {TID} from '@atproto/common-web'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {RECOMMENDED_SAVED_FEEDS} from '#/lib/constants'
8import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences'
+1-1
src/screens/FindContactsFlowScreen.tsx
···1import {useCallback, useLayoutEffect, useState} from 'react'
2import {LayoutAnimationConfig} from 'react-native-reanimated'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
5import {usePreventRemove} from '@react-navigation/native'
6
···1import {useCallback, useLayoutEffect, useState} from 'react'
2import {LayoutAnimationConfig} from 'react-native-reanimated'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5import {usePreventRemove} from '@react-navigation/native'
6
+3-2
src/screens/Hashtag.tsx
···1import React from 'react'
2import {type ListRenderItemInfo, View} from 'react-native'
3import {type AppBskyFeedDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useFocusEffect} from '@react-navigation/native'
7import {type NativeStackScreenProps} from '@react-navigation/native-stack'
8···64 }, [fullTag, isCashtag])
6566 const sanitizedAuthor = React.useMemo(() => {
67- if (!author) return
68 return sanitizeHandle(author)
69 }, [author])
70
···1import React from 'react'
2import {type ListRenderItemInfo, View} from 'react-native'
3import {type AppBskyFeedDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useFocusEffect} from '@react-navigation/native'
8import {type NativeStackScreenProps} from '@react-navigation/native-stack'
9···65 }, [fullTag, isCashtag])
6667 const sanitizedAuthor = React.useMemo(() => {
68+ if (!author) return ''
69 return sanitizeHandle(author)
70 }, [author])
71
+2-1
src/screens/Home/NoFeedsPinned.tsx
···1import React from 'react'
2import {View} from 'react-native'
3import {TID} from '@atproto/common-web'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants'
8import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences'
···1import React from 'react'
2import {View} from 'react-native'
3import {TID} from '@atproto/common-web'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants'
9import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences'
+7-3
src/screens/List/ListHiddenScreen.tsx
···1import React from 'react'
2import {View} from 'react-native'
3import {AppBskyGraphDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useQueryClient} from '@tanstack/react-query'
78import {useGoBack} from '#/lib/hooks/useGoBack'
9import {sanitizeHandle} from '#/lib/strings/handles'
10import {logger} from '#/logger'
11-import {RQKEY_ROOT as listQueryRoot} from '#/state/queries/list'
12-import {useListBlockMutation, useListMuteMutation} from '#/state/queries/list'
00013import {
14 type UsePreferencesQueryResponse,
15 useRemoveFeedMutation,
···1import React from 'react'
2import {View} from 'react-native'
3import {AppBskyGraphDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useQueryClient} from '@tanstack/react-query'
89import {useGoBack} from '#/lib/hooks/useGoBack'
10import {sanitizeHandle} from '#/lib/strings/handles'
11import {logger} from '#/logger'
12+import {
13+ RQKEY_ROOT as listQueryRoot,
14+ useListBlockMutation,
15+ useListMuteMutation,
16+} from '#/state/queries/list'
17import {
18 type UsePreferencesQueryResponse,
19 useRemoveFeedMutation,
+4-5
src/screens/Log.tsx
···1import {useCallback, useState} from 'react'
2-import {LayoutAnimation, View} from 'react-native'
3-import {Pressable} from 'react-native'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useFocusEffect} from '@react-navigation/native'
78import {useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
···11 type NativeStackScreenProps,
12} from '#/lib/routes/types'
13import {getEntries} from '#/logger/logDump'
14-import {useTickEveryMinute} from '#/state/shell'
15-import {useSetMinimalShellMode} from '#/state/shell'
16import {atoms as a, useTheme} from '#/alf'
17import {
18 ChevronBottom_Stroke2_Corner0_Rounded as ChevronBottomIcon,
···1import {useCallback, useState} from 'react'
2+import {LayoutAnimation, Pressable, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
04import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useFocusEffect} from '@react-navigation/native'
78import {useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
···11 type NativeStackScreenProps,
12} from '#/lib/routes/types'
13import {getEntries} from '#/logger/logDump'
14+import {useSetMinimalShellMode, useTickEveryMinute} from '#/state/shell'
015import {atoms as a, useTheme} from '#/alf'
16import {
17 ChevronBottom_Stroke2_Corner0_Rounded as ChevronBottomIcon,
+2-1
src/screens/Login/ChooseAccountForm.tsx
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {logger} from '#/logger'
7import {type SessionAccount, useSession, useSessionApi} from '#/state/session'
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {logger} from '#/logger'
8import {type SessionAccount, useSession, useSessionApi} from '#/state/session'
+2-1
src/screens/Login/ForgotPasswordForm.tsx
···1import React, {useState} from 'react'
2import {Keyboard, View} from 'react-native'
3import {type ComAtprotoServerDescribeServer} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import * as EmailValidator from 'email-validator'
78import {cleanError, isNetworkError} from '#/lib/strings/errors'
···1import React, {useState} from 'react'
2import {Keyboard, View} from 'react-native'
3import {type ComAtprotoServerDescribeServer} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import * as EmailValidator from 'email-validator'
89import {cleanError, isNetworkError} from '#/lib/strings/errors'
+2-1
src/screens/Login/LoginForm.tsx
···4 ComAtprotoServerCreateSession,
5 type ComAtprotoServerDescribeServer,
6} from '@atproto/api'
7-import {msg, Trans} from '@lingui/macro'
8import {useLingui} from '@lingui/react'
0910import {useRequestNotificationsPermission} from '#/lib/notifications/notifications'
11import {cleanError, isNetworkError} from '#/lib/strings/errors'
···4 ComAtprotoServerCreateSession,
5 type ComAtprotoServerDescribeServer,
6} from '@atproto/api'
7+import {msg} from '@lingui/core/macro'
8import {useLingui} from '@lingui/react'
9+import {Trans} from '@lingui/react/macro'
1011import {useRequestNotificationsPermission} from '#/lib/notifications/notifications'
12import {cleanError, isNetworkError} from '#/lib/strings/errors'
+2-1
src/screens/Login/PasswordUpdatedForm.tsx
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {atoms as a, useBreakpoints, web} from '#/alf'
6import {Button, ButtonText} from '#/components/Button'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {atoms as a, useBreakpoints, web} from '#/alf'
7import {Button, ButtonText} from '#/components/Button'
+2-1
src/screens/Login/SetNewPasswordForm.tsx
···1import {useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {cleanError, isNetworkError} from '#/lib/strings/errors'
7import {checkAndFormatResetCode} from '#/lib/strings/password'
···1import {useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {cleanError, isNetworkError} from '#/lib/strings/errors'
8import {checkAndFormatResetCode} from '#/lib/strings/password'
···1import {useContext} from 'react'
2import {type GestureResponderEvent, View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {HITSLOP_30} from '#/lib/constants'
···1import {useContext} from 'react'
2import {type GestureResponderEvent, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {HITSLOP_30} from '#/lib/constants'
+1-1
src/screens/Login/index.tsx
···1import {useEffect, useRef, useState} from 'react'
2import {KeyboardAvoidingView} from 'react-native'
3import Animated, {FadeIn, LayoutAnimationConfig} from 'react-native-reanimated'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
67import {DEFAULT_SERVICE} from '#/lib/constants'
···1import {useEffect, useRef, useState} from 'react'
2import {KeyboardAvoidingView} from 'react-native'
3import Animated, {FadeIn, LayoutAnimationConfig} from 'react-native-reanimated'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
67import {DEFAULT_SERVICE} from '#/lib/constants'
+7-2
src/screens/Messages/ChatList.tsx
···2import {View} from 'react-native'
3import {useAnimatedRef} from 'react-native-reanimated'
4import {type ChatBskyActorDefs, type ChatBskyConvoDefs} from '@atproto/api'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
07import {useFocusEffect, useIsFocused} from '@react-navigation/native'
8import {type NativeStackScreenProps} from '@react-navigation/native-stack'
9···188 ]
189 : []),
190 ...conversations.map(
191- convo => ({type: 'CONVERSATION', conversation: convo}) as const,
0000192 ),
193 ] satisfies ListItem[]
194 }
···2import {View} from 'react-native'
3import {useAnimatedRef} from 'react-native-reanimated'
4import {type ChatBskyActorDefs, type ChatBskyConvoDefs} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
8import {useFocusEffect, useIsFocused} from '@react-navigation/native'
9import {type NativeStackScreenProps} from '@react-navigation/native-stack'
10···189 ]
190 : []),
191 ...conversations.map(
192+ convo =>
193+ ({
194+ type: 'CONVERSATION',
195+ conversation: convo,
196+ }) as const,
197 ),
198 ] satisfies ListItem[]
199 }
+2-1
src/screens/Messages/Conversation.tsx
···5 moderateProfile,
6 type ModerationDecision,
7} from '@atproto/api'
8-import {msg, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
010import {
11 type RouteProp,
12 useFocusEffect,
···5 moderateProfile,
6 type ModerationDecision,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Trans} from '@lingui/react/macro'
11import {
12 type RouteProp,
13 useFocusEffect,
+2-1
src/screens/Messages/Inbox.tsx
···4 type ChatBskyConvoDefs,
5 type ChatBskyConvoListConvos,
6} from '@atproto/api'
7-import {msg, Trans} from '@lingui/macro'
8import {useLingui} from '@lingui/react'
09import {useFocusEffect, useNavigation} from '@react-navigation/native'
10import {
11 type InfiniteData,
···4 type ChatBskyConvoDefs,
5 type ChatBskyConvoListConvos,
6} from '@atproto/api'
7+import {msg} from '@lingui/core/macro'
8import {useLingui} from '@lingui/react'
9+import {Trans} from '@lingui/react/macro'
10import {useFocusEffect, useNavigation} from '@react-navigation/native'
11import {
12 type InfiniteData,
+2-1
src/screens/Messages/Settings.tsx
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {type NativeStackScreenProps} from '@react-navigation/native-stack'
67import {type CommonNavigatorParams} from '#/lib/routes/types'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {type NativeStackScreenProps} from '@react-navigation/native-stack'
78import {type CommonNavigatorParams} from '#/lib/routes/types'
+2-1
src/screens/Messages/components/ChatDisabled.tsx
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3import {ToolsOzoneReportDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useMutation} from '@tanstack/react-query'
78import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3import {ToolsOzoneReportDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useMutation} from '@tanstack/react-query'
89import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
+1-1
src/screens/Messages/components/ChatListItem.tsx
···6 moderateProfile,
7 type ModerationOpts,
8} from '@atproto/api'
9-import {msg} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
11import {useQueryClient} from '@tanstack/react-query'
12
···6 moderateProfile,
7 type ModerationOpts,
8} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11import {useQueryClient} from '@tanstack/react-query'
12
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {type ActiveConvoStates} from '#/state/messages/convo'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {type ActiveConvoStates} from '#/state/messages/convo'
+2-1
src/screens/Messages/components/InboxPreview.tsx
···1import {View} from 'react-native'
2import {type ChatBskyActorDefs} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {atoms as a, useTheme} from '#/alf'
7import {AvatarStack} from '#/components/AvatarStack'
···1import {View} from 'react-native'
2import {type ChatBskyActorDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {atoms as a, useTheme} from '#/alf'
8import {AvatarStack} from '#/components/AvatarStack'
+1-1
src/screens/Messages/components/MessageInput.tsx
···12 useSharedValue,
13} from 'react-native-reanimated'
14import {useSafeAreaInsets} from 'react-native-safe-area-context'
15-import {msg} from '@lingui/macro'
16import {useLingui} from '@lingui/react'
17import {countGraphemes} from 'unicode-segmenter/grapheme'
18
···12 useSharedValue,
13} from 'react-native-reanimated'
14import {useSafeAreaInsets} from 'react-native-safe-area-context'
15+import {msg} from '@lingui/core/macro'
16import {useLingui} from '@lingui/react'
17import {countGraphemes} from 'unicode-segmenter/grapheme'
18
···1import React from 'react'
2import {Pressable, View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
5import {flushSync} from 'react-dom'
6import TextareaAutosize from 'react-textarea-autosize'
···1import React from 'react'
2import {Pressable, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5import {flushSync} from 'react-dom'
6import TextareaAutosize from 'react-textarea-autosize'
···7 moderatePost,
8 RichText as RichTextAPI,
9} from '@atproto/api'
10-import {msg} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
12import {type RouteProp, useNavigation, useRoute} from '@react-navigation/native'
13
···7 moderatePost,
8 RichText as RichTextAPI,
9} from '@atproto/api'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
12import {type RouteProp, useNavigation, useRoute} from '@react-navigation/native'
13
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {type ConvoItem, ConvoItemError} from '#/state/messages/convo/types'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {type ConvoItem, ConvoItemError} from '#/state/messages/convo/types'
···1import {useCallback} from 'react'
2import {type ChatBskyActorDefs, ChatBskyConvoDefs} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {StackActions, useNavigation} from '@react-navigation/native'
6import {useQueryClient} from '@tanstack/react-query'
7
···1import {useCallback} from 'react'
2import {type ChatBskyActorDefs, ChatBskyConvoDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {StackActions, useNavigation} from '@react-navigation/native'
7import {useQueryClient} from '@tanstack/react-query'
8
···1import {View} from 'react-native'
2import {type ChatBskyConvoDefs} from '@atproto/api'
3-import {Trans} from '@lingui/macro'
45import {useModerationOpts} from '#/state/preferences/moderation-opts'
6import {useSession} from '#/state/session'
···1import {View} from 'react-native'
2import {type ChatBskyConvoDefs} from '@atproto/api'
3+import {Trans} from '@lingui/react/macro'
45import {useModerationOpts} from '#/state/preferences/moderation-opts'
6import {useSession} from '#/state/session'
+2-1
src/screens/Moderation/VerificationSettings.tsx
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {urls} from '#/lib/constants'
6import {
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {urls} from '#/lib/constants'
7import {
+2-1
src/screens/Moderation/index.tsx
···1import {Fragment, useCallback} from 'react'
2import {Linking, View} from 'react-native'
3import {LABELS} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useFocusEffect} from '@react-navigation/native'
78import {getLabelingServiceTitle, isAppLabeler} from '#/lib/moderation'
···1import {Fragment, useCallback} from 'react'
2import {Linking, View} from 'react-native'
3import {LABELS} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useFocusEffect} from '@react-navigation/native'
89import {getLabelingServiceTitle, isAppLabeler} from '#/lib/moderation'
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import deepEqual from 'fast-deep-equal'
67import {logger} from '#/logger'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import deepEqual from 'fast-deep-equal'
78import {logger} from '#/logger'
+2-1
src/screens/Notifications/ActivityList.tsx
···1-import {msg, Trans} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
03import {type NativeStackScreenProps} from '@react-navigation/native-stack'
45import {type AllNavigatorParams} from '#/lib/routes/types'
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3+import {Trans} from '@lingui/react/macro'
4import {type NativeStackScreenProps} from '@react-navigation/native-stack'
56import {type AllNavigatorParams} from '#/lib/routes/types'
+3-3
src/screens/Onboarding/Layout.tsx
···1import {useEffect, useRef, useState} from 'react'
2import {ScrollView, View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {useOnboardingDispatch} from '#/state/shell'
8import {useOnboardingInternalState} from '#/screens/Onboarding/state'
···20import {HEADER_SLOT_SIZE} from '#/components/Layout'
21import {createPortalGroup} from '#/components/Portal'
22import {P, Text} from '#/components/Typography'
23-import {IS_ANDROID, IS_WEB} from '#/env'
24-import {IS_INTERNAL} from '#/env'
2526const ONBOARDING_COL_WIDTH = 420
27
···1import {useEffect, useRef, useState} from 'react'
2import {ScrollView, View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {useOnboardingDispatch} from '#/state/shell'
9import {useOnboardingInternalState} from '#/screens/Onboarding/state'
···21import {HEADER_SLOT_SIZE} from '#/components/Layout'
22import {createPortalGroup} from '#/components/Portal'
23import {P, Text} from '#/components/Typography'
24+import {IS_ANDROID, IS_INTERNAL, IS_WEB} from '#/env'
02526const ONBOARDING_COL_WIDTH = 420
27
···1import {View} from 'react-native'
2import * as Contacts from 'expo-contacts'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useQuery} from '@tanstack/react-query'
67import {urls} from '#/lib/constants'
···1import {View} from 'react-native'
2import * as Contacts from 'expo-contacts'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useQuery} from '@tanstack/react-query'
78import {urls} from '#/lib/constants'
···1import {View} from 'react-native'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {atoms as a, useTheme} from '#/alf'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {atoms as a, useTheme} from '#/alf'
···2import {View} from 'react-native'
3import PagerView from 'react-native-pager-view'
4import {Image} from 'expo-image'
5-import {msg} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
78import {atoms as a, tokens, useTheme} from '#/alf'
···2import {View} from 'react-native'
3import PagerView from 'react-native-pager-view'
4import {Image} from 'expo-image'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
78import {atoms as a, tokens, useTheme} from '#/alf'
···1import {View} from 'react-native'
2import {Image} from 'expo-image'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {atoms as a, useTheme} from '#/alf'
···1import {View} from 'react-native'
2import {Image} from 'expo-image'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {atoms as a, useTheme} from '#/alf'
+2-1
src/screens/Onboarding/StepFinished/index.tsx
···8 type Un$Typed,
9} from '@atproto/api'
10import {TID} from '@atproto/common-web'
11-import {msg, Trans} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
013import {useQueryClient} from '@tanstack/react-query'
1415import {uploadBlob} from '#/lib/api'
···8 type Un$Typed,
9} from '@atproto/api'
10import {TID} from '@atproto/common-web'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13+import {Trans} from '@lingui/react/macro'
14import {useQueryClient} from '@tanstack/react-query'
1516import {uploadBlob} from '#/lib/api'
+2-1
src/screens/Onboarding/StepInterests/index.tsx
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {interests, useInterestsDisplayNames} from '#/lib/interests'
7import {capitalize} from '#/lib/strings/capitalize'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {interests, useInterestsDisplayNames} from '#/lib/interests'
8import {capitalize} from '#/lib/strings/capitalize'
···1import React from 'react'
2import {View} from 'react-native'
3import {Image as ExpoImage} from 'expo-image'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
67import {AvatarCreatorCircle} from '#/screens/Onboarding/StepProfile/AvatarCreatorCircle'
···1import React from 'react'
2import {View} from 'react-native'
3import {Image as ExpoImage} from 'expo-image'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
67import {AvatarCreatorCircle} from '#/screens/Onboarding/StepProfile/AvatarCreatorCircle'
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {type Avatar} from '#/screens/Onboarding/StepProfile/index'
7import {
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {type Avatar} from '#/screens/Onboarding/StepProfile/index'
8import {
+2-1
src/screens/Onboarding/StepProfile/index.tsx
···6 launchImageLibraryAsync,
7 UIImagePickerPreferredAssetRepresentationMode,
8} from 'expo-image-picker'
9-import {msg, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
01112import {usePhotoLibraryPermission} from '#/lib/hooks/usePermissions'
13import {compressIfNeeded} from '#/lib/media/manip'
···6 launchImageLibraryAsync,
7 UIImagePickerPreferredAssetRepresentationMode,
8} from 'expo-image-picker'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Trans} from '@lingui/react/macro'
1213import {usePhotoLibraryPermission} from '#/lib/hooks/usePermissions'
14import {compressIfNeeded} from '#/lib/media/manip'
···1import {useCallback, useEffect, useMemo, useRef, useState} from 'react'
2import {View} from 'react-native'
3import {type ModerationOpts} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useMutation, useQueryClient} from '@tanstack/react-query'
7import * as bcp47Match from 'bcp-47-match'
8
···1import {useCallback, useEffect, useMemo, useRef, useState} from 'react'
2import {View} from 'react-native'
3import {type ModerationOpts} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useMutation, useQueryClient} from '@tanstack/react-query'
8import * as bcp47Match from 'bcp-47-match'
9
···1import {useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useQueryClient} from '@tanstack/react-query'
78import {batchedUpdates} from '#/lib/batchedUpdates'
···1import {useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useQueryClient} from '@tanstack/react-query'
89import {batchedUpdates} from '#/lib/batchedUpdates'
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {useModerationOpts} from '#/state/preferences/moderation-opts'
6import {useOnboardingSuggestedStarterPacksQuery} from '#/state/queries/useOnboardingSuggestedStarterPacksQuery'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {useModerationOpts} from '#/state/preferences/moderation-opts'
7import {useOnboardingSuggestedStarterPacksQuery} from '#/state/queries/useOnboardingSuggestedStarterPacksQuery'
+1-1
src/screens/Post/PostLikedBy.tsx
···1import React from 'react'
2-import {Plural, Trans} from '@lingui/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
···1import React from 'react'
2+import {Plural, Trans} from '@lingui/react/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
+1-1
src/screens/Post/PostQuotes.tsx
···1import React from 'react'
2-import {Plural, Trans} from '@lingui/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
···1import React from 'react'
2+import {Plural, Trans} from '@lingui/react/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
+1-1
src/screens/Post/PostRepostedBy.tsx
···1import React from 'react'
2-import {Plural, Trans} from '@lingui/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
···1import React from 'react'
2+import {Plural, Trans} from '@lingui/react/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
···1-import {msg, Trans} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
034import {HITSLOP_10} from '#/lib/constants'
5import {type ThreadPreferences} from '#/state/queries/preferences/useThreadPreferences'
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3+import {Trans} from '@lingui/react/macro'
45import {HITSLOP_10} from '#/lib/constants'
6import {type ThreadPreferences} from '#/state/queries/preferences/useThreadPreferences'
···1import {type StyleProp, View, type ViewStyle} from 'react-native'
2import {LinearGradient} from 'expo-linear-gradient'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {PressableScale} from '#/lib/custom-animations/PressableScale'
7import {useHaptics} from '#/lib/haptics'
···1import {type StyleProp, View, type ViewStyle} from 'react-native'
2import {LinearGradient} from 'expo-linear-gradient'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {PressableScale} from '#/lib/custom-animations/PressableScale'
8import {useHaptics} from '#/lib/haptics'
+2-1
src/screens/PostThread/components/ThreadError.tsx
···1import {useMemo} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useCleanError} from '#/lib/hooks/useCleanError'
7import {OUTER_SPACE} from '#/screens/PostThread/const'
···1import {useMemo} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useCleanError} from '#/lib/hooks/useCleanError'
8import {OUTER_SPACE} from '#/screens/PostThread/const'
···1import React from 'react'
2import {type AppBskyActorDefs} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useNavigation} from '@react-navigation/native'
67import {logger} from '#/logger'
···1import React from 'react'
2import {type AppBskyActorDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useNavigation} from '@react-navigation/native'
78import {logger} from '#/logger'
···1import {View} from 'react-native'
2-import {Trans} from '@lingui/macro'
34import {atoms as a, useTheme} from '#/alf'
5import {Lock_Stroke2_Corner0_Rounded as LockIcon} from '#/components/icons/Lock'
···1import {View} from 'react-native'
2+import {Trans} from '@lingui/react/macro'
34import {atoms as a, useTheme} from '#/alf'
5import {Lock_Stroke2_Corner0_Rounded as LockIcon} from '#/components/icons/Lock'
···6 AtUri,
7 RichText as RichTextAPI,
8} from '@atproto/api'
9-import {Trans} from '@lingui/macro'
1011import {MAX_POST_LINES} from '#/lib/constants'
12import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
···6 AtUri,
7 RichText as RichTextAPI,
8} from '@atproto/api'
9+import {Trans} from '@lingui/react/macro'
1011import {MAX_POST_LINES} from '#/lib/constants'
12import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
···1import {View} from 'react-native'
2-import {Trans} from '@lingui/macro'
34import {type ThreadItem} from '#/state/queries/usePostThread/types'
5import {
···1import {View} from 'react-native'
2+import {Trans} from '@lingui/react/macro'
34import {type ThreadItem} from '#/state/queries/usePostThread/types'
5import {
···1import {useMemo} from 'react'
2import {View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {LINEAR_AVI_WIDTH, OUTER_SPACE} from '#/screens/PostThread/const'
···1import {useMemo} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {LINEAR_AVI_WIDTH, OUTER_SPACE} from '#/screens/PostThread/const'
···1import {memo} from 'react'
2import {View} from 'react-native'
3-import {msg, Plural, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {
7 type PostThreadParams,
···1import {memo} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Plural, Trans} from '@lingui/react/macro'
67import {
8 type PostThreadParams,
···1import {memo} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {type ThreadItem} from '#/state/queries/usePostThread'
7import {
···1import {memo} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {type ThreadItem} from '#/state/queries/usePostThread'
8import {
···1import {View} from 'react-native'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {atoms as a, useTheme} from '#/alf'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {atoms as a, useTheme} from '#/alf'
···6 AtUri,
7 RichText as RichTextAPI,
8} from '@atproto/api'
9-import {Trans} from '@lingui/macro'
1011import {MAX_POST_LINES} from '#/lib/constants'
12import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
···6 AtUri,
7 RichText as RichTextAPI,
8} from '@atproto/api'
9+import {Trans} from '@lingui/react/macro'
1011import {MAX_POST_LINES} from '#/lib/constants'
12import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
+1-1
src/screens/PostThread/index.tsx
···1import {useCallback, useEffect, useMemo, useRef, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3import Animated, {useAnimatedStyle} from 'react-native-reanimated'
4-import {Trans} from '@lingui/macro'
56import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
7import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
···1import {useCallback, useEffect, useMemo, useRef, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3import Animated, {useAnimatedStyle} from 'react-native-reanimated'
4+import {Trans} from '@lingui/react/macro'
56import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
7import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
+2-1
src/screens/Profile/ErrorState.tsx
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useNavigation} from '@react-navigation/native'
67import {type NavigationProp} from '#/lib/routes/types'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useNavigation} from '@react-navigation/native'
78import {type NavigationProp} from '#/lib/routes/types'
+2-1
src/screens/Profile/Header/EditProfileDialog.tsx
···1import {useCallback, useEffect, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3import {type AppBskyActorDefs} from '@atproto/api'
4-import {msg, Plural, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {urls} from '#/lib/constants'
8import {cleanError} from '#/lib/strings/errors'
···1import {useCallback, useEffect, useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3import {type AppBskyActorDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Plural, Trans} from '@lingui/react/macro'
78import {urls} from '#/lib/constants'
9import {cleanError} from '#/lib/strings/errors'
+2-1
src/screens/Profile/Header/Handle.tsx
···1import {View} from 'react-native'
2import {type AppBskyActorDefs} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {isInvalidHandle, sanitizeHandle} from '#/lib/strings/handles'
7import {type Shadow} from '#/state/cache/types'
···1import {View} from 'react-native'
2import {type AppBskyActorDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {isInvalidHandle, sanitizeHandle} from '#/lib/strings/handles'
8import {type Shadow} from '#/state/cache/types'
+1-1
src/screens/Profile/Header/Metrics.tsx
···1import {View} from 'react-native'
2import {type AppBskyActorDefs} from '@atproto/api'
3-import {msg, plural} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {makeProfileLink} from '#/lib/routes/links'
···1import {View} from 'react-native'
2import {type AppBskyActorDefs} from '@atproto/api'
3+import {msg, plural} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {makeProfileLink} from '#/lib/routes/links'
···7 type ModerationOpts,
8 type RichText as RichTextAPI,
9} from '@atproto/api'
10-import {msg, Trans} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
01213import {useHaptics} from '#/lib/haptics'
14import {sanitizeDisplayName} from '#/lib/strings/display-names'
···7 type ModerationOpts,
8 type RichText as RichTextAPI,
9} from '@atproto/api'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
12+import {Trans} from '@lingui/react/macro'
1314import {useHaptics} from '#/lib/haptics'
15import {sanitizeDisplayName} from '#/lib/strings/display-names'
+1-1
src/screens/Profile/Header/Shell.tsx
···10import {useSafeAreaInsets} from 'react-native-safe-area-context'
11import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api'
12import {utils} from '@bsky.app/alf'
13-import {msg} from '@lingui/macro'
14import {useLingui} from '@lingui/react'
15import {useNavigation} from '@react-navigation/native'
16
···10import {useSafeAreaInsets} from 'react-native-safe-area-context'
11import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api'
12import {utils} from '@bsky.app/alf'
13+import {msg} from '@lingui/core/macro'
14import {useLingui} from '@lingui/react'
15import {useNavigation} from '@react-navigation/native'
16
+1-1
src/screens/Profile/KnownFollowers.tsx
···1import React from 'react'
2import {type AppBskyActorDefs} from '@atproto/api'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
5import {useFocusEffect} from '@react-navigation/native'
6
···1import React from 'react'
2import {type AppBskyActorDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5import {useFocusEffect} from '@react-navigation/native'
6
+1-1
src/screens/Profile/ProfileFeed/index.tsx
···1import {useCallback, useEffect, useMemo, useState} from 'react'
2import {useAnimatedRef} from 'react-native-reanimated'
3import {AppBskyFeedDefs} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {useIsFocused} from '@react-navigation/native'
7import {type NativeStackScreenProps} from '@react-navigation/native-stack'
···1import {useCallback, useEffect, useMemo, useState} from 'react'
2import {useAnimatedRef} from 'react-native-reanimated'
3import {AppBskyFeedDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6import {useIsFocused} from '@react-navigation/native'
7import {type NativeStackScreenProps} from '@react-navigation/native-stack'
+1-1
src/screens/Profile/ProfileFollowers.tsx
···1import React from 'react'
2-import {Plural} from '@lingui/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
···1import React from 'react'
2+import {Plural} from '@lingui/react/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
+1-1
src/screens/Profile/ProfileFollows.tsx
···1import React from 'react'
2-import {Plural} from '@lingui/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
···1import React from 'react'
2+import {Plural} from '@lingui/react/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
+1-1
src/screens/Profile/ProfileLabelerLikedBy.tsx
···1import React from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
4import {useFocusEffect} from '@react-navigation/native'
5
···1import React from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4import {useFocusEffect} from '@react-navigation/native'
5
+1-1
src/screens/Profile/ProfileSearch.tsx
···1import {useMemo} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {
···1import {useMemo} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {
+2-1
src/screens/Profile/Sections/Feed.tsx
···1import {useCallback, useEffect, useImperativeHandle, useState} from 'react'
2import {findNodeHandle, View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useQueryClient} from '@tanstack/react-query'
67import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
···1import {useCallback, useEffect, useImperativeHandle, useState} from 'react'
2import {findNodeHandle, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useQueryClient} from '@tanstack/react-query'
78import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
+2-1
src/screens/Profile/Sections/Labels.tsx
···6 interpretLabelValueDefinitions,
7 type ModerationOpts,
8} from '@atproto/api'
9-import {msg, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
01112import {isLabelerSubscribed, lookupLabelValueDefinition} from '#/lib/moderation'
13import {List, type ListRef} from '#/view/com/util/List'
···6 interpretLabelValueDefinitions,
7 type ModerationOpts,
8} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Trans} from '@lingui/react/macro'
1213import {isLabelerSubscribed, lookupLabelValueDefinition} from '#/lib/moderation'
14import {List, type ListRef} from '#/view/com/util/List'
+2-1
src/screens/Profile/components/GermButton.tsx
···5 type AppBskyActorGetProfile,
6 type AtpAgent,
7} from '@atproto/api'
8-import {msg, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
010import {useMutation, useQueryClient} from '@tanstack/react-query'
1112import {until} from '#/lib/async/until'
···5 type AppBskyActorGetProfile,
6 type AtpAgent,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Trans} from '@lingui/react/macro'
11import {useMutation, useQueryClient} from '@tanstack/react-query'
1213import {until} from '#/lib/async/until'
···1import React from 'react'
2import {View} from 'react-native'
3import {AtUri} from '@atproto/api'
4-import {msg, Plural, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {useHaptics} from '#/lib/haptics'
8import {makeCustomFeedLink, makeProfileLink} from '#/lib/routes/links'
···1import React from 'react'
2import {View} from 'react-native'
3import {AtUri} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Plural, Trans} from '@lingui/react/macro'
78import {useHaptics} from '#/lib/haptics'
9import {makeCustomFeedLink, makeProfileLink} from '#/lib/routes/links'
+2-1
src/screens/ProfileList/AboutSection.tsx
···1import {useCallback, useImperativeHandle, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyGraphDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {useSession} from '#/state/session'
8import {ListMembers} from '#/view/com/lists/ListMembers'
···1import {useCallback, useImperativeHandle, useState} from 'react'
2import {View} from 'react-native'
3import {type AppBskyGraphDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {useSession} from '#/state/session'
9import {ListMembers} from '#/view/com/lists/ListMembers'
+2-1
src/screens/ProfileList/FeedSection.tsx
···1import {useCallback, useEffect, useImperativeHandle, useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useIsFocused} from '@react-navigation/native'
6import {useQueryClient} from '@tanstack/react-query'
7
···1import {useCallback, useEffect, useImperativeHandle, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useIsFocused} from '@react-navigation/native'
7import {useQueryClient} from '@tanstack/react-query'
8
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
04import {useNavigation} from '@react-navigation/native'
56import {type NavigationProp} from '#/lib/routes/types'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
5import {useNavigation} from '@react-navigation/native'
67import {type NavigationProp} from '#/lib/routes/types'
+2-1
src/screens/ProfileList/components/Header.tsx
···1import {useMemo} from 'react'
2import {View} from 'react-native'
3import {AppBskyGraphDefs, RichText as RichTextAPI} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {useHaptics} from '#/lib/haptics'
8import {makeListLink} from '#/lib/routes/links'
···1import {useMemo} from 'react'
2import {View} from 'react-native'
3import {AppBskyGraphDefs, RichText as RichTextAPI} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {useHaptics} from '#/lib/haptics'
9import {makeListLink} from '#/lib/routes/links'
···1import {type AppBskyActorDefs, AppBskyGraphDefs, AtUri} from '@atproto/api'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
04import {useNavigation} from '@react-navigation/native'
56import {type NavigationProp} from '#/lib/routes/types'
···1import {type AppBskyActorDefs, AppBskyGraphDefs, AtUri} from '@atproto/api'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
5import {useNavigation} from '@react-navigation/native'
67import {type NavigationProp} from '#/lib/routes/types'
···1import {type AppBskyGraphDefs} from '@atproto/api'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {useListBlockMutation, useListMuteMutation} from '#/state/queries/list'
6import {atoms as a} from '#/alf'
···1import {type AppBskyGraphDefs} from '@atproto/api'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {useListBlockMutation, useListMuteMutation} from '#/state/queries/list'
7import {atoms as a} from '#/alf'
+2-1
src/screens/ProfileList/index.tsx
···7 moderateUserList,
8 type ModerationOpts,
9} from '@atproto/api'
10-import {msg, Trans} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
012import {useFocusEffect, useIsFocused} from '@react-navigation/native'
13import {useQueryClient} from '@tanstack/react-query'
14
···7 moderateUserList,
8 type ModerationOpts,
9} from '@atproto/api'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
12+import {Trans} from '@lingui/react/macro'
13import {useFocusEffect, useIsFocused} from '@react-navigation/native'
14import {useQueryClient} from '@tanstack/react-query'
15
+3-3
src/screens/SavedFeeds.tsx
···3import Animated, {LinearTransition} from 'react-native-reanimated'
4import {type AppBskyActorDefs} from '@atproto/api'
5import {TID} from '@atproto/common-web'
6-import {msg, Trans} from '@lingui/macro'
7import {useLingui} from '@lingui/react'
8-import {useFocusEffect} from '@react-navigation/native'
9-import {useNavigation} from '@react-navigation/native'
10import {type NativeStackScreenProps} from '@react-navigation/native-stack'
1112import {RECOMMENDED_SAVED_FEEDS, TIMELINE_SAVED_FEED} from '#/lib/constants'
···3import Animated, {LinearTransition} from 'react-native-reanimated'
4import {type AppBskyActorDefs} from '@atproto/api'
5import {TID} from '@atproto/common-web'
6+import {msg} from '@lingui/core/macro'
7import {useLingui} from '@lingui/react'
8+import {Trans} from '@lingui/react/macro'
9+import {useFocusEffect, useNavigation} from '@react-navigation/native'
10import {type NativeStackScreenProps} from '@react-navigation/native-stack'
1112import {RECOMMENDED_SAVED_FEEDS, TIMELINE_SAVED_FEED} from '#/lib/constants'
+12-3
src/screens/Search/Explore.tsx
···5 type AppBskyFeedDefs,
6 type AppBskyGraphDefs,
7} from '@atproto/api'
8-import {msg, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
010import {useQueryClient} from '@tanstack/react-query'
11import * as bcp47Match from 'bcp-47-match'
12···350 ])
351352 const topBorder = useMemo(
353- () => ({type: 'topBorder', key: 'top-border'}) as const,
0000354 [],
355 )
356 const trendingTopicsModule = useMemo(
357- () => ({type: 'trendingTopics', key: 'trending-topics'}) as const,
0000358 [],
359 )
360 const suggestedFollowsModule = useMemo(() => {
···5 type AppBskyFeedDefs,
6 type AppBskyGraphDefs,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Trans} from '@lingui/react/macro'
11import {useQueryClient} from '@tanstack/react-query'
12import * as bcp47Match from 'bcp-47-match'
13···351 ])
352353 const topBorder = useMemo(
354+ () =>
355+ ({
356+ type: 'topBorder',
357+ key: 'top-border',
358+ }) as const,
359 [],
360 )
361 const trendingTopicsModule = useMemo(
362+ () =>
363+ ({
364+ type: 'trendingTopics',
365+ key: 'trending-topics',
366+ }) as const,
367 [],
368 )
369 const suggestedFollowsModule = useMemo(() => {
+2-1
src/screens/Search/SearchResults.tsx
···1import {memo, useCallback, useMemo, useState} from 'react'
2import {ActivityIndicator, View} from 'react-native'
3import {type AppBskyFeedDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {urls} from '#/lib/constants'
8import {usePostViewTracking} from '#/lib/hooks/usePostViewTracking'
···1import {memo, useCallback, useMemo, useState} from 'react'
2import {ActivityIndicator, View} from 'react-native'
3import {type AppBskyFeedDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {urls} from '#/lib/constants'
9import {usePostViewTracking} from '#/lib/hooks/usePostViewTracking'
+3-3
src/screens/Search/Shell.tsx
···12 View,
13 type ViewStyle,
14} from 'react-native'
15-import {msg, Trans} from '@lingui/macro'
16import {useLingui} from '@lingui/react'
017import {useFocusEffect, useNavigation, useRoute} from '@react-navigation/native'
18import {useQueryClient} from '@tanstack/react-query'
1920-import {HITSLOP_20} from '#/lib/constants'
21-import {HITSLOP_10} from '#/lib/constants'
22import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
23import {MagnifyingGlassIcon} from '#/lib/icons'
24import {type NavigationProp} from '#/lib/routes/types'
···12 View,
13 type ViewStyle,
14} from 'react-native'
15+import {msg} from '@lingui/core/macro'
16import {useLingui} from '@lingui/react'
17+import {Trans} from '@lingui/react/macro'
18import {useFocusEffect, useNavigation, useRoute} from '@react-navigation/native'
19import {useQueryClient} from '@tanstack/react-query'
2021+import {HITSLOP_10, HITSLOP_20} from '#/lib/constants'
022import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
23import {MagnifyingGlassIcon} from '#/lib/icons'
24import {type NavigationProp} from '#/lib/routes/types'
···1import {memo} from 'react'
2import {ActivityIndicator, View} from 'react-native'
3import {type AppBskyActorDefs} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
67import {useModerationOpts} from '#/state/preferences/moderation-opts'
···1import {memo} from 'react'
2import {ActivityIndicator, View} from 'react-native'
3import {type AppBskyActorDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
67import {useModerationOpts} from '#/state/preferences/moderation-opts'
+2-1
src/screens/Search/components/SearchHistory.tsx
···1import {Pressable, ScrollView, View} from 'react-native'
2import {moderateProfile, type ModerationOpts} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {createHitslop, HITSLOP_10} from '#/lib/constants'
7import {makeProfileLink} from '#/lib/routes/links'
···1import {Pressable, ScrollView, View} from 'react-native'
2import {moderateProfile, type ModerationOpts} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {createHitslop, HITSLOP_10} from '#/lib/constants'
8import {makeProfileLink} from '#/lib/routes/links'
···1import {useMemo} from 'react'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {languageName} from '#/locale/helpers'
6import {APP_LANGUAGES, LANGUAGES} from '#/locale/languages'
···1import {useMemo} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {languageName} from '#/locale/helpers'
7import {APP_LANGUAGES, LANGUAGES} from '#/locale/languages'
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, type ModerationOpts} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {useQueryClient} from '@tanstack/react-query'
7
···1import {useCallback} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorDefs, type ModerationOpts} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6import {useQueryClient} from '@tanstack/react-query'
7
+2-1
src/screens/Search/components/StarterPackCard.tsx
···5 AppBskyGraphStarterpack,
6 moderateProfile,
7} from '@atproto/api'
8-import {msg, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
01011import {sanitizeHandle} from '#/lib/strings/handles'
12import {useModerationOpts} from '#/state/preferences/moderation-opts'
···5 AppBskyGraphStarterpack,
6 moderateProfile,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Trans} from '@lingui/react/macro'
1112import {sanitizeHandle} from '#/lib/strings/handles'
13import {useModerationOpts} from '#/state/preferences/moderation-opts'
···1import {useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useInterestsDisplayNames} from '#/lib/interests'
7import {Nux, useSaveNux} from '#/state/queries/nuxs'
···1import {useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useInterestsDisplayNames} from '#/lib/interests'
8import {Nux, useSaveNux} from '#/state/queries/nuxs'
···1import {View} from 'react-native'
2import {type AppBskyUnspeccedDefs} from '@atproto/api'
3-import {Trans} from '@lingui/macro'
45import {
6 DEFAULT_LIMIT as RECOMMENDATIONS_COUNT,
···1import {View} from 'react-native'
2import {type AppBskyUnspeccedDefs} from '@atproto/api'
3+import {Trans} from '@lingui/react/macro'
45import {
6 DEFAULT_LIMIT as RECOMMENDATIONS_COUNT,
···1import {memo, useEffect} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorSearchActors, type ModerationOpts} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {type InfiniteData} from '@tanstack/react-query'
7
···1import {memo, useEffect} from 'react'
2import {View} from 'react-native'
3import {type AppBskyActorSearchActors, type ModerationOpts} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6import {type InfiniteData} from '@tanstack/react-query'
7
···1import {useMemo} from 'react'
2import {Pressable, View} from 'react-native'
3import {type AppBskyUnspeccedDefs, moderateProfile} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {useModerationOpts} from '#/state/preferences/moderation-opts'
8import {useTrendingSettings} from '#/state/preferences/trending'
···1import {useMemo} from 'react'
2import {Pressable, View} from 'react-native'
3import {type AppBskyUnspeccedDefs, moderateProfile} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {useModerationOpts} from '#/state/preferences/moderation-opts'
9import {useTrendingSettings} from '#/state/preferences/trending'
···1import {useMemo} from 'react'
2import {ScrollView, View} from 'react-native'
3import {AppBskyEmbedVideo, AtUri} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useFocusEffect} from '@react-navigation/native'
7import {useQueryClient} from '@tanstack/react-query'
8
···1import {useMemo} from 'react'
2import {ScrollView, View} from 'react-native'
3import {AppBskyEmbedVideo, AtUri} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useFocusEffect} from '@react-navigation/native'
8import {useQueryClient} from '@tanstack/react-query'
9
+2-1
src/screens/Settings/AboutSettings.tsx
···2import {setStringAsync} from 'expo-clipboard'
3import * as FileSystem from 'expo-file-system/legacy'
4import {Image} from 'expo-image'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
07import {type NativeStackScreenProps} from '@react-navigation/native-stack'
8import {useMutation} from '@tanstack/react-query'
9
···2import {setStringAsync} from 'expo-clipboard'
3import * as FileSystem from 'expo-file-system/legacy'
4import {Image} from 'expo-image'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
8import {type NativeStackScreenProps} from '@react-navigation/native-stack'
9import {useMutation} from '@tanstack/react-query'
10
+2-1
src/screens/Settings/AccessibilitySettings.tsx
···1-import {msg, Trans} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
03import {type NativeStackScreenProps} from '@react-navigation/native-stack'
45import {type CommonNavigatorParams} from '#/lib/routes/types'
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3+import {Trans} from '@lingui/react/macro'
4import {type NativeStackScreenProps} from '@react-navigation/native-stack'
56import {type CommonNavigatorParams} from '#/lib/routes/types'
+2-1
src/screens/Settings/AccountSettings.tsx
···1-import {msg, Trans} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
03import {type NativeStackScreenProps} from '@react-navigation/native-stack'
45import {type CommonNavigatorParams} from '#/lib/routes/types'
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3+import {Trans} from '@lingui/react/macro'
4import {type NativeStackScreenProps} from '@react-navigation/native-stack'
56import {type CommonNavigatorParams} from '#/lib/routes/types'
+2-1
src/screens/Settings/ActivityPrivacySettings.tsx
···1import {View} from 'react-native'
2import {type AppBskyNotificationDeclaration} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {
7 type AllNavigatorParams,
···1import {View} from 'react-native'
2import {type AppBskyNotificationDeclaration} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {
8 type AllNavigatorParams,
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {AppIconImage} from '#/screens/Settings/AppIconSettings/AppIconImage'
6import {useCurrentAppIcon} from '#/screens/Settings/AppIconSettings/useCurrentAppIcon'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {AppIconImage} from '#/screens/Settings/AppIconSettings/AppIconImage'
7import {useCurrentAppIcon} from '#/screens/Settings/AppIconSettings/useCurrentAppIcon'
+4-3
src/screens/Settings/AppIconSettings/index.tsx
···1import {useState} from 'react'
2import {Alert, View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import * as DynamicAppIcon from '@mozzius/expo-dynamic-app-icon'
6import {type NativeStackScreenProps} from '@react-navigation/native-stack'
7···128 if (!icon || icon === 'DEFAULT') {
129 return 'default_light'
130 } else {
131- return icon as DynamicAppIcon.IconName
132 }
133}
134···150 values={[value]}
151 maxSelections={1}
152 onChange={vals => {
153- if (vals[0]) onChange(vals[0] as DynamicAppIcon.IconName)
154 }}>
155 <View style={[a.flex_1, a.rounded_md, a.overflow_hidden]}>
156 {children}
···1import {useState} from 'react'
2import {Alert, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import * as DynamicAppIcon from '@mozzius/expo-dynamic-app-icon'
7import {type NativeStackScreenProps} from '@react-navigation/native-stack'
8···129 if (!icon || icon === 'DEFAULT') {
130 return 'default_light'
131 } else {
132+ return icon
133 }
134}
135···151 values={[value]}
152 maxSelections={1}
153 onChange={vals => {
154+ if (vals[0]) onChange(vals[0])
155 }}>
156 <View style={[a.flex_1, a.rounded_md, a.overflow_hidden]}>
157 {children}
···1import {useMemo} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {type AppIconSet} from '#/screens/Settings/AppIconSettings/types'
···1import {useMemo} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {type AppIconSet} from '#/screens/Settings/AppIconSettings/types'
+2-1
src/screens/Settings/AppPasswords.tsx
···7 LinearTransition,
8} from 'react-native-reanimated'
9import {type ComAtprotoServerListAppPasswords} from '@atproto/api'
10-import {msg, Trans} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
012import {type NativeStackScreenProps} from '@react-navigation/native-stack'
1314import {type CommonNavigatorParams} from '#/lib/routes/types'
···7 LinearTransition,
8} from 'react-native-reanimated'
9import {type ComAtprotoServerListAppPasswords} from '@atproto/api'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
12+import {Trans} from '@lingui/react/macro'
13import {type NativeStackScreenProps} from '@react-navigation/native-stack'
1415import {type CommonNavigatorParams} from '#/lib/routes/types'
+3-3
src/screens/Settings/AppearanceSettings.tsx
···5 LayoutAnimationConfig,
6 LinearTransition,
7} from 'react-native-reanimated'
8-import {msg, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
01011import {
12 type CommonNavigatorParams,
···23import {TitleCase_Stroke2_Corner0_Rounded as Aa} from '#/components/icons/TitleCase'
24import * as Layout from '#/components/Layout'
25import {Text} from '#/components/Typography'
26-import {IS_NATIVE} from '#/env'
27-import {IS_INTERNAL} from '#/env'
28import * as SettingsList from './components/SettingsList'
2930type Props = NativeStackScreenProps<CommonNavigatorParams, 'AppearanceSettings'>
···5 LayoutAnimationConfig,
6 LinearTransition,
7} from 'react-native-reanimated'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Trans} from '@lingui/react/macro'
1112import {
13 type CommonNavigatorParams,
···24import {TitleCase_Stroke2_Corner0_Rounded as Aa} from '#/components/icons/TitleCase'
25import * as Layout from '#/components/Layout'
26import {Text} from '#/components/Typography'
27+import {IS_INTERNAL, IS_NATIVE} from '#/env'
028import * as SettingsList from './components/SettingsList'
2930type Props = NativeStackScreenProps<CommonNavigatorParams, 'AppearanceSettings'>
+2-1
src/screens/Settings/ContentAndMediaSettings.tsx
···1-import {msg, Trans} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
03import {type NativeStackScreenProps} from '@react-navigation/native-stack'
45import {type CommonNavigatorParams} from '#/lib/routes/types'
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3+import {Trans} from '@lingui/react/macro'
4import {type NativeStackScreenProps} from '@react-navigation/native-stack'
56import {type CommonNavigatorParams} from '#/lib/routes/types'
+1-1
src/screens/Settings/ExternalMediaPreferences.tsx
···1import {Fragment} from 'react'
2import {View} from 'react-native'
3-import {Trans} from '@lingui/macro'
45import {
6 type CommonNavigatorParams,
···1import {Fragment} from 'react'
2import {View} from 'react-native'
3+import {Trans} from '@lingui/react/macro'
45import {
6 type CommonNavigatorParams,
+2-1
src/screens/Settings/FindContactsSettings.tsx
···6 type AppBskyContactGetSyncStatus,
7 type ModerationOpts,
8} from '@atproto/api'
9-import {msg, Plural, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
011import {useIsFocused} from '@react-navigation/native'
12import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
13
···6 type AppBskyContactGetSyncStatus,
7 type ModerationOpts,
8} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Plural, Trans} from '@lingui/react/macro'
12import {useIsFocused} from '@react-navigation/native'
13import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
14
+2-1
src/screens/Settings/FollowingFeedPreferences.tsx
···1-import {msg, Trans} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
034import {
5 type CommonNavigatorParams,
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3+import {Trans} from '@lingui/react/macro'
45import {
6 type CommonNavigatorParams,
+2-1
src/screens/Settings/InterestsSettings.tsx
···1import {useMemo, useState} from 'react'
2import {type TextStyle, View, type ViewStyle} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {type NativeStackScreenProps} from '@react-navigation/native-stack'
6import {useQueryClient} from '@tanstack/react-query'
7import debounce from 'lodash.debounce'
···1import {useMemo, useState} from 'react'
2import {type TextStyle, View, type ViewStyle} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {type NativeStackScreenProps} from '@react-navigation/native-stack'
7import {useQueryClient} from '@tanstack/react-query'
8import debounce from 'lodash.debounce'
+2-1
src/screens/Settings/LanguageSettings.tsx
···1import {useCallback, useMemo, useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {
7 type CommonNavigatorParams,
···1import {useCallback, useMemo, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {
8 type CommonNavigatorParams,
···1import {useCallback, useMemo} from 'react'
2import {type ListRenderItemInfo, Text as RNText, View} from 'react-native'
3import {type ModerationOpts} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
8import {
···21import * as Admonition from '#/components/Admonition'
22import {Button, ButtonText} from '#/components/Button'
23import {useDialogControl} from '#/components/Dialog'
24-import {BellRinging_Filled_Corner0_Rounded as BellRingingFilledIcon} from '#/components/icons/BellRinging'
25-import {BellRinging_Stroke2_Corner0_Rounded as BellRingingIcon} from '#/components/icons/BellRinging'
0026import * as Layout from '#/components/Layout'
27import {InlineLinkText} from '#/components/Link'
28import {ListFooter} from '#/components/Lists'
···1import {useCallback, useMemo} from 'react'
2import {type ListRenderItemInfo, Text as RNText, View} from 'react-native'
3import {type ModerationOpts} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
9import {
···22import * as Admonition from '#/components/Admonition'
23import {Button, ButtonText} from '#/components/Button'
24import {useDialogControl} from '#/components/Dialog'
25+import {
26+ BellRinging_Filled_Corner0_Rounded as BellRingingFilledIcon,
27+ BellRinging_Stroke2_Corner0_Rounded as BellRingingIcon,
28+} from '#/components/icons/BellRinging'
29import * as Layout from '#/components/Layout'
30import {InlineLinkText} from '#/components/Link'
31import {ListFooter} from '#/components/Lists'
···1import {useMemo} from 'react'
2import {View} from 'react-native'
3import {type AppBskyNotificationDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {useNotificationSettingsUpdateMutation} from '#/state/queries/notifications/settings'
8import {atoms as a, platform, useTheme} from '#/alf'
···1import {useMemo} from 'react'
2import {View} from 'react-native'
3import {type AppBskyNotificationDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {useNotificationSettingsUpdateMutation} from '#/state/queries/notifications/settings'
9import {atoms as a, platform, useTheme} from '#/alf'
···2import {Linking, View} from 'react-native'
3import * as Notification from 'expo-notifications'
4import {type AppBskyNotificationDefs} from '@atproto/api'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
07import {useQuery, useQueryClient} from '@tanstack/react-query'
89import {useAppState} from '#/lib/appState'
···2import {Linking, View} from 'react-native'
3import * as Notification from 'expo-notifications'
4import {type AppBskyNotificationDefs} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
8import {useQuery, useQueryClient} from '@tanstack/react-query'
910import {useAppState} from '#/lib/appState'
···1import {type AppBskyNotificationDeclaration} from '@atproto/api'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
04import {type NativeStackScreenProps} from '@react-navigation/native-stack'
56import {type CommonNavigatorParams} from '#/lib/routes/types'
···1import {type AppBskyNotificationDeclaration} from '@atproto/api'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
5import {type NativeStackScreenProps} from '@react-navigation/native-stack'
67import {type CommonNavigatorParams} from '#/lib/routes/types'
+2-1
src/screens/Settings/Settings.tsx
···2import {Alert, LayoutAnimation, Linking, Pressable, View} from 'react-native'
3import {useReducedMotion} from 'react-native-reanimated'
4import {type AppBskyActorDefs, moderateProfile} from '@atproto/api'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
07import {useNavigation} from '@react-navigation/native'
8import {type NativeStackScreenProps} from '@react-navigation/native-stack'
9
···2import {Alert, LayoutAnimation, Linking, Pressable, View} from 'react-native'
3import {useReducedMotion} from 'react-native-reanimated'
4import {type AppBskyActorDefs, moderateProfile} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
8import {useNavigation} from '@react-navigation/native'
9import {type NativeStackScreenProps} from '@react-navigation/native-stack'
10
+2-1
src/screens/Settings/ThreadPreferences.tsx
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {
6 type CommonNavigatorParams,
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {
7 type CommonNavigatorParams,
···9 SlideOutLeft,
10} from 'react-native-reanimated'
11import {type ComAtprotoServerCreateAppPassword} from '@atproto/api'
12-import {msg, Trans} from '@lingui/macro'
13import {useLingui} from '@lingui/react'
014import {useMutation} from '@tanstack/react-query'
1516import {useAppPasswordCreateMutation} from '#/state/queries/app-passwords'
···9 SlideOutLeft,
10} from 'react-native-reanimated'
11import {type ComAtprotoServerCreateAppPassword} from '@atproto/api'
12+import {msg} from '@lingui/core/macro'
13import {useLingui} from '@lingui/react'
14+import {Trans} from '@lingui/react/macro'
15import {useMutation} from '@tanstack/react-query'
1617import {useAppPasswordCreateMutation} from '#/state/queries/app-passwords'
···11 SlideOutRight,
12} from 'react-native-reanimated'
13import {type ComAtprotoServerDescribeServer} from '@atproto/api'
14-import {msg, Trans} from '@lingui/macro'
15import {useLingui} from '@lingui/react'
016import {useMutation, useQueryClient} from '@tanstack/react-query'
1718import {HITSLOP_10, urls} from '#/lib/constants'
19import {cleanError} from '#/lib/strings/errors'
20-import {createFullHandle, validateServiceHandle} from '#/lib/strings/handles'
21-import {sanitizeHandle} from '#/lib/strings/handles'
00022import {useFetchDid, useUpdateHandleMutation} from '#/state/queries/handle'
23import {RQKEY as RQKEY_PROFILE} from '#/state/queries/profile'
24import {useServiceQuery} from '#/state/queries/service'
···11 SlideOutRight,
12} from 'react-native-reanimated'
13import {type ComAtprotoServerDescribeServer} from '@atproto/api'
14+import {msg} from '@lingui/core/macro'
15import {useLingui} from '@lingui/react'
16+import {Trans} from '@lingui/react/macro'
17import {useMutation, useQueryClient} from '@tanstack/react-query'
1819import {HITSLOP_10, urls} from '#/lib/constants'
20import {cleanError} from '#/lib/strings/errors'
21+import {
22+ createFullHandle,
23+ sanitizeHandle,
24+ validateServiceHandle,
25+} from '#/lib/strings/handles'
26import {useFetchDid, useUpdateHandleMutation} from '#/state/queries/handle'
27import {RQKEY as RQKEY_PROFILE} from '#/state/queries/profile'
28import {useServiceQuery} from '#/state/queries/service'
···1import {useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import * as EmailValidator from 'email-validator'
67import {cleanError, isNetworkError} from '#/lib/strings/errors'
···1import {useState} from 'react'
2import {useWindowDimensions, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import * as EmailValidator from 'email-validator'
78import {cleanError, isNetworkError} from '#/lib/strings/errors'
+1-1
src/screens/Settings/components/CopyButton.tsx
···6 ZoomIn,
7} from 'react-native-reanimated'
8import * as Clipboard from 'expo-clipboard'
9-import {Trans} from '@lingui/macro'
1011import {atoms as a, useTheme} from '#/alf'
12import {Button, type ButtonProps} from '#/components/Button'
···6 ZoomIn,
7} from 'react-native-reanimated'
8import * as Clipboard from 'expo-clipboard'
9+import {Trans} from '@lingui/react/macro'
1011import {atoms as a, useTheme} from '#/alf'
12import {Button, type ButtonProps} from '#/components/Button'
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {logger} from '#/logger'
7import {useAgent, useSessionApi} from '#/state/session'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {logger} from '#/logger'
8import {useAgent, useSessionApi} from '#/state/session'
···1import {useCallback, useRef, useState} from 'react'
2import {type TextInput, View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {DM_SERVICE_HEADERS} from '#/lib/constants'
7import {useCleanError} from '#/lib/hooks/useCleanError'
···1import {useCallback, useRef, useState} from 'react'
2import {type TextInput, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {DM_SERVICE_HEADERS} from '#/lib/constants'
8import {useCleanError} from '#/lib/hooks/useCleanError'
···1import React from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {useSession} from '#/state/session'
···1import React from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {useSession} from '#/state/session'
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {DM_SERVICE_HEADERS} from '#/lib/constants'
7import {saveBytesToDisk} from '#/lib/media/manip'
···1import {useCallback, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {DM_SERVICE_HEADERS} from '#/lib/constants'
8import {saveBytesToDisk} from '#/lib/media/manip'
+2-1
src/screens/Settings/components/OTAInfo.tsx
···1import * as Updates from 'expo-updates'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
04import {useMutation, useQuery} from '@tanstack/react-query'
56import * as Toast from '#/view/com/util/Toast'
···1import * as Updates from 'expo-updates'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
5import {useMutation, useQuery} from '@tanstack/react-query'
67import * as Toast from '#/view/com/util/Toast'
+2-1
src/screens/Settings/components/PwiOptOut.tsx
···1import React from 'react'
2import {View} from 'react-native'
3import {type $Typed, ComAtprotoLabelDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {
8 useProfileQuery,
···1import React from 'react'
2import {View} from 'react-native'
3import {type $Typed, ComAtprotoLabelDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {
9 useProfileQuery,
+2-1
src/screens/Signup/BackNextButtons.tsx
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {atoms as a} from '#/alf'
6import {Button, ButtonIcon, ButtonText} from '#/components/Button'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {atoms as a} from '#/alf'
7import {Button, ButtonIcon, ButtonText} from '#/components/Button'
+1-1
src/screens/Signup/StepCaptcha/index.tsx
···1import React, {useEffect, useState} from 'react'
2import {ActivityIndicator, Platform, View} from 'react-native'
3import ReactNativeDeviceAttest from 'react-native-device-attest'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {nanoid} from 'nanoid/non-secure'
7
···1import React, {useEffect, useState} from 'react'
2import {ActivityIndicator, Platform, View} from 'react-native'
3import ReactNativeDeviceAttest from 'react-native-device-attest'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6import {nanoid} from 'nanoid/non-secure'
7
···1import Animated, {Easing, FadeInDown, FadeOut} from 'react-native-reanimated'
2import {type ComAtprotoTempCheckHandleAvailability} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {atoms as a, native, useTheme} from '#/alf'
7import {borderRadius} from '#/alf/tokens'
···1import Animated, {Easing, FadeInDown, FadeOut} from 'react-native-reanimated'
2import {type ComAtprotoTempCheckHandleAvailability} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {atoms as a, native, useTheme} from '#/alf'
8import {borderRadius} from '#/alf/tokens'
+2-1
src/screens/Signup/StepHandle/index.tsx
···6 LayoutAnimationConfig,
7 LinearTransition,
8} from 'react-native-reanimated'
9-import {msg, Plural, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
01112import {
13 createFullHandle,
···6 LayoutAnimationConfig,
7 LinearTransition,
8} from 'react-native-reanimated'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Plural, Trans} from '@lingui/react/macro'
1213import {
14 createFullHandle,
+2-1
src/screens/Signup/StepInfo/Policies.tsx
···1import {type ReactElement} from 'react'
2import {View} from 'react-native'
3import {type ComAtprotoServerDescribeServer} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {atoms as a, useTheme} from '#/alf'
8import {Admonition} from '#/components/Admonition'
···1import {type ReactElement} from 'react'
2import {View} from 'react-native'
3import {type ComAtprotoServerDescribeServer} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {atoms as a, useTheme} from '#/alf'
9import {Admonition} from '#/components/Admonition'
+2-1
src/screens/Signup/StepInfo/index.tsx
···1import React, {useRef} from 'react'
2import {type TextInput, View} from 'react-native'
3-import {msg, Plural, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import * as EmailValidator from 'email-validator'
6import type tldts from 'tldts'
7
···1import React, {useRef} from 'react'
2import {type TextInput, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Plural, Trans} from '@lingui/react/macro'
6import * as EmailValidator from 'email-validator'
7import type tldts from 'tldts'
8
+2-1
src/screens/Signup/index.tsx
···3import ReactNativeDeviceAttest from 'react-native-device-attest'
4import Animated, {FadeIn, LayoutAnimationConfig} from 'react-native-reanimated'
5import {AppBskyGraphStarterpack} from '@atproto/api'
6-import {msg, Trans} from '@lingui/macro'
7import {useLingui} from '@lingui/react'
089import {FEEDBACK_FORM_URL} from '#/lib/constants'
10import {logger} from '#/logger'
···3import ReactNativeDeviceAttest from 'react-native-device-attest'
4import Animated, {FadeIn, LayoutAnimationConfig} from 'react-native-reanimated'
5import {AppBskyGraphStarterpack} from '@atproto/api'
6+import {msg} from '@lingui/core/macro'
7import {useLingui} from '@lingui/react'
8+import {Trans} from '@lingui/react/macro'
910import {FEEDBACK_FORM_URL} from '#/lib/constants'
11import {logger} from '#/logger'
+1-1
src/screens/Signup/state.ts
···4 ComAtprotoServerCreateAccount,
5 type ComAtprotoServerDescribeServer,
6} from '@atproto/api'
7-import {msg} from '@lingui/macro'
8import {useLingui} from '@lingui/react'
9import * as EmailValidator from 'email-validator'
10
···4 ComAtprotoServerCreateAccount,
5 type ComAtprotoServerDescribeServer,
6} from '@atproto/api'
7+import {msg} from '@lingui/core/macro'
8import {useLingui} from '@lingui/react'
9import * as EmailValidator from 'email-validator'
10
+2-1
src/screens/SignupQueued.tsx
···2import {Modal, ScrollView, View} from 'react-native'
3import {SystemBars} from 'react-native-edge-to-edge'
4import {useSafeAreaInsets} from 'react-native-safe-area-context'
5-import {msg, plural, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
078import {logger} from '#/logger'
9import {isSignupQueued, useAgent, useSessionApi} from '#/state/session'
···2import {Modal, ScrollView, View} from 'react-native'
3import {SystemBars} from 'react-native-edge-to-edge'
4import {useSafeAreaInsets} from 'react-native-safe-area-context'
5+import {msg, plural} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
89import {logger} from '#/logger'
10import {isSignupQueued, useAgent, useSessionApi} from '#/state/session'
···8 type ModerationOpts,
9} from '@atproto/api'
10import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
11-import {msg, Trans} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
01314import {JOINED_THIS_WEEK} from '#/lib/constants'
15import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
···8 type ModerationOpts,
9} from '@atproto/api'
10import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13+import {Trans} from '@lingui/react/macro'
1415import {JOINED_THIS_WEEK} from '#/lib/constants'
16import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
+2-1
src/screens/StarterPack/StarterPackScreen.tsx
···9 RichText as RichTextAPI,
10} from '@atproto/api'
11import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
12-import {msg, Plural, Trans} from '@lingui/macro'
13import {useLingui} from '@lingui/react'
014import {useNavigation} from '@react-navigation/native'
15import {type NativeStackScreenProps} from '@react-navigation/native-stack'
16import {useQueryClient} from '@tanstack/react-query'
···9 RichText as RichTextAPI,
10} from '@atproto/api'
11import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
12+import {msg} from '@lingui/core/macro'
13import {useLingui} from '@lingui/react'
14+import {Plural, Trans} from '@lingui/react/macro'
15import {useNavigation} from '@react-navigation/native'
16import {type NativeStackScreenProps} from '@react-navigation/native-stack'
17import {useQueryClient} from '@tanstack/react-query'
+1-1
src/screens/StarterPack/Wizard/State.tsx
···4 type AppBskyGraphDefs,
5 AppBskyGraphStarterpack,
6} from '@atproto/api'
7-import {msg, plural} from '@lingui/macro'
89import {STARTER_PACK_MAX_SIZE} from '#/lib/constants'
10import * as Toast from '#/view/com/util/Toast'
···4 type AppBskyGraphDefs,
5 AppBskyGraphStarterpack,
6} from '@atproto/api'
7+import {msg, plural} from '@lingui/core/macro'
89import {STARTER_PACK_MAX_SIZE} from '#/lib/constants'
10import * as Toast from '#/view/com/util/Toast'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {useProfileQuery} from '#/state/queries/profile'
7import {useSession} from '#/state/session'
···20 const {currentAccount} = useSession()
21 const {data: currentProfile} = useProfileQuery({
22 did: currentAccount?.did,
23+ staleTime: Infinity,
24 })
25+26+ const name = currentProfile?.displayName || currentProfile?.handle
2728 return (
29 <ScreenTransition direction={state.transitionDirection} enabledWeb>
···45 </TextField.LabelText>
46 <TextField.Root>
47 <TextField.Input
48+ label={
49+ name ? _(msg`${name}'s starter pack`) : _(msg`My starter pack`)
50+ }
0051 value={state.name}
52 onChangeText={text => dispatch({type: 'SetName', name: text})}
53 />
···71 </TextField.LabelText>
72 <TextField.Root>
73 <TextField.Input
74+ label={
75+ name
76+ ? _(msg`${name}'s favorite feeds and people - join me!`)
77+ : _(msg`My favorite feeds and people - join me!`)
78+ }
79 value={state.description}
80 onChangeText={text =>
81 dispatch({type: 'SetDescription', description: text})
+1-1
src/screens/StarterPack/Wizard/StepFeeds.tsx
···2import {type ListRenderItemInfo, View} from 'react-native'
3import {KeyboardAwareScrollView} from 'react-native-keyboard-controller'
4import {type AppBskyFeedDefs, type ModerationOpts} from '@atproto/api'
5-import {Trans} from '@lingui/macro'
67import {DISCOVER_FEED_URI} from '#/lib/constants'
8import {useA11y} from '#/state/a11y'
···2import {type ListRenderItemInfo, View} from 'react-native'
3import {KeyboardAwareScrollView} from 'react-native-keyboard-controller'
4import {type AppBskyFeedDefs, type ModerationOpts} from '@atproto/api'
5+import {Trans} from '@lingui/react/macro'
67import {DISCOVER_FEED_URI} from '#/lib/constants'
8import {useA11y} from '#/state/a11y'
+1-1
src/screens/StarterPack/Wizard/StepProfiles.tsx
···2import {type ListRenderItemInfo, View} from 'react-native'
3import {KeyboardAwareScrollView} from 'react-native-keyboard-controller'
4import {type AppBskyActorDefs, type ModerationOpts} from '@atproto/api'
5-import {Trans} from '@lingui/macro'
67import {useA11y} from '#/state/a11y'
8import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete'
···2import {type ListRenderItemInfo, View} from 'react-native'
3import {KeyboardAwareScrollView} from 'react-native-keyboard-controller'
4import {type AppBskyActorDefs, type ModerationOpts} from '@atproto/api'
5+import {Trans} from '@lingui/react/macro'
67import {useA11y} from '#/state/a11y'
8import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete'
+2-1
src/screens/StarterPack/Wizard/index.tsx
···10 AtUri,
11 type ModerationOpts,
12} from '@atproto/api'
13-import {msg, Plural, Trans} from '@lingui/macro'
14import {useLingui} from '@lingui/react'
015import {useFocusEffect, useNavigation} from '@react-navigation/native'
16import {type NativeStackScreenProps} from '@react-navigation/native-stack'
17
···10 AtUri,
11 type ModerationOpts,
12} from '@atproto/api'
13+import {msg} from '@lingui/core/macro'
14import {useLingui} from '@lingui/react'
15+import {Plural, Trans} from '@lingui/react/macro'
16import {useFocusEffect, useNavigation} from '@react-navigation/native'
17import {type NativeStackScreenProps} from '@react-navigation/native-stack'
18
+2-1
src/screens/Takendown.tsx
···3import {KeyboardAwareScrollView} from 'react-native-keyboard-controller'
4import {useSafeAreaInsets} from 'react-native-safe-area-context'
5import {type ComAtprotoAdminDefs, ToolsOzoneReportDefs} from '@atproto/api'
6-import {msg, Trans} from '@lingui/macro'
7import {useLingui} from '@lingui/react'
08import {useMutation} from '@tanstack/react-query'
9import {countGraphemes} from 'unicode-segmenter/grapheme'
10
···3import {KeyboardAwareScrollView} from 'react-native-keyboard-controller'
4import {useSafeAreaInsets} from 'react-native-safe-area-context'
5import {type ComAtprotoAdminDefs, ToolsOzoneReportDefs} from '@atproto/api'
6+import {msg} from '@lingui/core/macro'
7import {useLingui} from '@lingui/react'
8+import {Trans} from '@lingui/react/macro'
9import {useMutation} from '@tanstack/react-query'
10import {countGraphemes} from 'unicode-segmenter/grapheme'
11
+1-1
src/screens/Topic.tsx
···1import React from 'react'
2import {type ListRenderItemInfo, View} from 'react-native'
3import {type AppBskyFeedDefs} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {useFocusEffect} from '@react-navigation/native'
7import {type NativeStackScreenProps} from '@react-navigation/native-stack'
···1import React from 'react'
2import {type ListRenderItemInfo, View} from 'react-native'
3import {type AppBskyFeedDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6import {useFocusEffect} from '@react-navigation/native'
7import {type NativeStackScreenProps} from '@react-navigation/native-stack'
+1-1
src/screens/VideoFeed/components/Header.tsx
···1import {useCallback} from 'react'
2import {type GestureResponderEvent, View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
5import {useNavigation} from '@react-navigation/native'
6
···1import {useCallback} from 'react'
2import {type GestureResponderEvent, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5import {useNavigation} from '@react-navigation/native'
6
+2-1
src/screens/VideoFeed/index.tsx
···33 type ModerationDecision,
34 RichText as RichTextAPI,
35} from '@atproto/api'
36-import {msg, Trans} from '@lingui/macro'
37import {useLingui} from '@lingui/react'
038import {
39 type RouteProp,
40 useFocusEffect,
···33 type ModerationDecision,
34 RichText as RichTextAPI,
35} from '@atproto/api'
36+import {msg} from '@lingui/core/macro'
37import {useLingui} from '@lingui/react'
38+import {Trans} from '@lingui/react/macro'
39import {
40 type RouteProp,
41 useFocusEffect,
+1-1
src/state/queries/activity-subscriptions.ts
···3 type AppBskyNotificationDeclaration,
4 type AppBskyNotificationListActivitySubscriptions,
5} from '@atproto/api'
6-import {t} from '@lingui/macro'
7import {
8 type InfiniteData,
9 type QueryClient,
···3 type AppBskyNotificationDeclaration,
4 type AppBskyNotificationListActivitySubscriptions,
5} from '@atproto/api'
6+import {t} from '@lingui/core/macro'
7import {
8 type InfiniteData,
9 type QueryClient,
+1-1
src/state/queries/explore-feed-previews.tsx
···5 AtUri,
6 moderatePost,
7} from '@atproto/api'
8-import {msg} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
10import {
11 type InfiniteData,
···5 AtUri,
6 moderatePost,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10import {
11 type InfiniteData,
+1-1
src/state/queries/feed.ts
···8 moderateFeedGenerator,
9 RichText,
10} from '@atproto/api'
11-import {t} from '@lingui/macro'
12import {
13 type InfiniteData,
14 keepPreviousData,
···8 moderateFeedGenerator,
9 RichText,
10} from '@atproto/api'
11+import {t} from '@lingui/core/macro'
12import {
13 type InfiniteData,
14 keepPreviousData,
+1-1
src/state/queries/notifications/settings.ts
···1import {type AppBskyNotificationDefs} from '@atproto/api'
2-import {t} from '@lingui/macro'
3import {
4 type QueryClient,
5 useMutation,
···1import {type AppBskyNotificationDefs} from '@atproto/api'
2+import {t} from '@lingui/core/macro'
3import {
4 type QueryClient,
5 useMutation,
+1-1
src/state/queries/pinned-post.ts
···1-import {msg} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
3import {useMutation, useQueryClient} from '@tanstack/react-query'
4
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3import {useMutation, useQueryClient} from '@tanstack/react-query'
4
···5 type AppBskyUnspeccedGetPostThreadV2,
6 type ModerationDecision,
7} from '@atproto/api'
8-import {msg} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
10import {useQueryClient} from '@tanstack/react-query'
11
···5 type AppBskyUnspeccedGetPostThreadV2,
6 type ModerationDecision,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10import {useQueryClient} from '@tanstack/react-query'
11
+1-1
src/state/shell/progress-guide.tsx
···1import React, {useMemo} from 'react'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {
···1import React, {useMemo} from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {
+1-1
src/view/com/auth/LoggedOut.tsx
···1import {useCallback, useEffect, useState} from 'react'
2import {View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {useQueryClient} from '@tanstack/react-query'
7
···1import {useCallback, useEffect, useState} from 'react'
2import {View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6import {useQueryClient} from '@tanstack/react-query'
7
+2-1
src/view/com/auth/SplashScreen.tsx
···2import {Image as RNImage, View} from 'react-native'
3import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
4import {Image} from 'expo-image'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
078import {useHaptics} from '#/lib/haptics'
9import {Logo} from '#/view/icons/Logo'
···2import {Image as RNImage, View} from 'react-native'
3import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
4import {Image} from 'expo-image'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
89import {useHaptics} from '#/lib/haptics'
10import {Logo} from '#/view/icons/Logo'
+2-1
src/view/com/auth/SplashScreen.web.tsx
···1import React from 'react'
2import {Pressable, View} from 'react-native'
3import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
8import {useKawaiiMode} from '#/state/preferences/kawaii'
···1import React from 'react'
2import {Pressable, View} from 'react-native'
3import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
78import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
9import {useKawaiiMode} from '#/state/preferences/kawaii'
+2-1
src/view/com/composer/Composer.tsx
···52 type BskyAgent,
53 type RichText,
54} from '@atproto/api'
55-import {msg, plural, Trans} from '@lingui/macro'
56import {useLingui} from '@lingui/react'
057import {useNavigation} from '@react-navigation/native'
58import {useQueryClient} from '@tanstack/react-query'
59
···52 type BskyAgent,
53 type RichText,
54} from '@atproto/api'
55+import {msg, plural} from '@lingui/core/macro'
56import {useLingui} from '@lingui/react'
57+import {Trans} from '@lingui/react/macro'
58import {useNavigation} from '@react-navigation/native'
59import {useQueryClient} from '@tanstack/react-query'
60
+1-1
src/view/com/composer/ComposerReplyTo.tsx
···7 AppBskyEmbedRecordWithMedia,
8 AppBskyFeedPost,
9} from '@atproto/api'
10-import {msg} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
1213import {sanitizeDisplayName} from '#/lib/strings/display-names'
···7 AppBskyEmbedRecordWithMedia,
8 AppBskyFeedPost,
9} from '@atproto/api'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
1213import {sanitizeDisplayName} from '#/lib/strings/display-names'
+1-1
src/view/com/composer/ExternalEmbedRemoveBtn.tsx
···1import {View} from 'react-native'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
45import {atoms as a, useTheme, type ViewStyleProp} from '#/alf'
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
45import {atoms as a, useTheme, type ViewStyleProp} from '#/alf'
+2-1
src/view/com/composer/GifAltText.tsx
···1import {useState} from 'react'
2import {TouchableOpacity, View} from 'react-native'
3-import {msg, Plural, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {HITSLOP_10, MAX_ALT_TEXT} from '#/lib/constants'
7import {parseAltFromGIFDescription} from '#/lib/gif-alt-text'
···1import {useState} from 'react'
2import {TouchableOpacity, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Plural, Trans} from '@lingui/react/macro'
67import {HITSLOP_10, MAX_ALT_TEXT} from '#/lib/constants'
8import {parseAltFromGIFDescription} from '#/lib/gif-alt-text'
+1-1
src/view/com/composer/SelectMediaButton.tsx
···2import {Keyboard} from 'react-native'
3import {File} from 'expo-file-system'
4import {type ImagePickerAsset} from 'expo-image-picker'
5-import {msg, plural} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
78import {VIDEO_MAX_DURATION_MS, VIDEO_MAX_SIZE} from '#/lib/constants'
···2import {Keyboard} from 'react-native'
3import {File} from 'expo-file-system'
4import {type ImagePickerAsset} from 'expo-image-picker'
5+import {msg, plural} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
78import {VIDEO_MAX_DURATION_MS, VIDEO_MAX_SIZE} from '#/lib/constants'
+1-1
src/view/com/composer/drafts/DraftItem.tsx
···1import {useCallback, useEffect, useMemo, useState} from 'react'
2import {Pressable, View} from 'react-native'
3import * as VideoThumbnails from 'expo-video-thumbnails'
4-import {msg, plural} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
67import * as device from '#/lib/deviceName'
···1import {useCallback, useEffect, useMemo, useState} from 'react'
2import {Pressable, View} from 'react-native'
3import * as VideoThumbnails from 'expo-video-thumbnails'
4+import {msg, plural} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
67import * as device from '#/lib/deviceName'
+2-1
src/view/com/composer/drafts/DraftsButton.tsx
···1-import {msg, Trans} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
034import {atoms as a} from '#/alf'
5import {Button, ButtonText} from '#/components/Button'
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3+import {Trans} from '@lingui/react/macro'
45import {atoms as a} from '#/alf'
6import {Button, ButtonText} from '#/components/Button'
+2-1
src/view/com/composer/drafts/DraftsListDialog.tsx
···1import {useCallback, useEffect, useMemo} from 'react'
2import {Keyboard, View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useCallOnce} from '#/lib/once'
7import {EmptyState} from '#/view/com/util/EmptyState'
···1import {useCallback, useEffect, useMemo} from 'react'
2import {Keyboard, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useCallOnce} from '#/lib/once'
8import {EmptyState} from '#/view/com/util/EmptyState'
+4-7
src/view/com/composer/labels/LabelsBtn.tsx
···1import {Keyboard, View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {
6 ADULT_CONTENT_LABELS,
···36 const filtered = labels.filter(
37 l => !ADULT_CONTENT_LABELS.includes(l as AdultSelfLabel),
38 )
39- onChange([
40- ...new Set([...filtered, newLabel].filter(Boolean) as SelfLabel[]),
41- ])
42 }
4344 const updateOtherLabels = (newLabels: OtherSelfLabel[]) => {
···46 const filtered = labels.filter(
47 l => !OTHER_SELF_LABELS.includes(l as OtherSelfLabel),
48 )
49- onChange([
50- ...new Set([...filtered, newLabel].filter(Boolean) as SelfLabel[]),
51- ])
52 }
5354 return (
···1import {Keyboard, View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {
7 ADULT_CONTENT_LABELS,
···37 const filtered = labels.filter(
38 l => !ADULT_CONTENT_LABELS.includes(l as AdultSelfLabel),
39 )
40+ onChange([...new Set([...filtered, newLabel].filter(Boolean))])
0041 }
4243 const updateOtherLabels = (newLabels: OtherSelfLabel[]) => {
···45 const filtered = labels.filter(
46 l => !OTHER_SELF_LABELS.includes(l as OtherSelfLabel),
47 )
48+ onChange([...new Set([...filtered, newLabel].filter(Boolean))])
0049 }
5051 return (
···23import {useCallback, useImperativeHandle, useRef, useState} from 'react'
4import {View} from 'react-native'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
07import ReactCrop, {type PercentCrop} from 'react-image-crop'
89import {
···23import {useCallback, useImperativeHandle, useRef, useState} from 'react'
4import {View} from 'react-native'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
8import ReactCrop, {type PercentCrop} from 'react-image-crop'
910import {
+2-1
src/view/com/composer/photos/Gallery.tsx
···10} from 'react-native'
11import {Image} from 'expo-image'
12import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
13-import {msg, Trans} from '@lingui/macro'
14import {useLingui} from '@lingui/react'
01516import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
17import {type Dimensions} from '#/lib/media/types'
···10} from 'react-native'
11import {Image} from 'expo-image'
12import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
13+import {msg} from '@lingui/core/macro'
14import {useLingui} from '@lingui/react'
15+import {Trans} from '@lingui/react/macro'
1617import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
18import {type Dimensions} from '#/lib/media/types'
···1import React from 'react'
2import {type ImageStyle, useWindowDimensions, View} from 'react-native'
3import {Image} from 'expo-image'
4-import {msg, Plural, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
067import {MAX_ALT_TEXT} from '#/lib/constants'
8import {useIsKeyboardVisible} from '#/lib/hooks/useIsKeyboardVisible'
···1import React from 'react'
2import {type ImageStyle, useWindowDimensions, View} from 'react-native'
3import {Image} from 'expo-image'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Plural, Trans} from '@lingui/react/macro'
78import {MAX_ALT_TEXT} from '#/lib/constants'
9import {useIsKeyboardVisible} from '#/lib/hooks/useIsKeyboardVisible'
+1-1
src/view/com/composer/photos/OpenCameraBtn.tsx
···1import {useCallback} from 'react'
2import * as MediaLibrary from 'expo-media-library'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {POST_IMG_MAX} from '#/lib/constants'
···1import {useCallback} from 'react'
2import * as MediaLibrary from 'expo-media-library'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {POST_IMG_MAX} from '#/lib/constants'
+1-1
src/view/com/composer/photos/SelectGifBtn.tsx
···1import {useCallback, useRef} from 'react'
2import {Keyboard} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {type Gif} from '#/state/queries/tenor'
···1import {useCallback, useRef} from 'react'
2import {Keyboard} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {type Gif} from '#/state/queries/tenor'
···1-import {msg, Trans} from '@lingui/macro'
2import {useLingui} from '@lingui/react'
034import {LANG_DROPDOWN_HITSLOP} from '#/lib/constants'
5import {codeToLanguageName} from '#/locale/helpers'
···1+import {msg} from '@lingui/core/macro'
2import {useLingui} from '@lingui/react'
3+import {Trans} from '@lingui/react/macro'
45import {LANG_DROPDOWN_HITSLOP} from '#/lib/constants'
6import {codeToLanguageName} from '#/locale/helpers'
···1import {useEffect, useState} from 'react'
2import {Text as RNText, View} from 'react-native'
3import {parseLanguage} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import lande from 'lande'
78import {code3ToCode2Strict, codeToLanguageName} from '#/locale/helpers'
···13import {Text} from '#/components/Typography'
1415// fallbacks for safari
16-const onIdle = globalThis.requestIdleCallback || (cb => setTimeout(cb, 1))
017const cancelIdle = globalThis.cancelIdleCallback || clearTimeout
1819export function SuggestedLanguage({
···1import {useEffect, useState} from 'react'
2import {Text as RNText, View} from 'react-native'
3import {parseLanguage} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import lande from 'lande'
89import {code3ToCode2Strict, codeToLanguageName} from '#/locale/helpers'
···14import {Text} from '#/components/Typography'
1516// fallbacks for safari
17+const onIdle =
18+ globalThis.requestIdleCallback || ((cb: () => void) => setTimeout(cb, 1))
19const cancelIdle = globalThis.cancelIdleCallback || clearTimeout
2021export function SuggestedLanguage({
+1-1
src/view/com/composer/state/video.ts
···1import {type ImagePickerAsset} from 'expo-image-picker'
2import {type AppBskyVideoDefs, type BlobRef, type BskyAgent} from '@atproto/api'
3import {type I18n} from '@lingui/core'
4-import {msg} from '@lingui/macro'
56import {AbortError} from '#/lib/async/cancelable'
7import {compressVideo} from '#/lib/media/video/compress'
···1import {type ImagePickerAsset} from 'expo-image-picker'
2import {type AppBskyVideoDefs, type BlobRef, type BskyAgent} from '@atproto/api'
3import {type I18n} from '@lingui/core'
4+import {msg} from '@lingui/core/macro'
56import {AbortError} from '#/lib/async/cancelable'
7import {compressVideo} from '#/lib/media/video/compress'
···9import {StyleSheet, View} from 'react-native'
10import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
11import {AppBskyRichtextFacet, RichText} from '@atproto/api'
12-import {Trans} from '@lingui/macro'
13import {Document} from '@tiptap/extension-document'
14import Hardbreak from '@tiptap/extension-hard-break'
15import History from '@tiptap/extension-history'
···9import {StyleSheet, View} from 'react-native'
10import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
11import {AppBskyRichtextFacet, RichText} from '@atproto/api'
12+import {Trans} from '@lingui/react/macro'
13import {Document} from '@tiptap/extension-document'
14import Hardbreak from '@tiptap/extension-hard-break'
15import History from '@tiptap/extension-history'
···1import {View} from 'react-native'
2import Animated, {FadeInDown, FadeOut} from 'react-native-reanimated'
3import {type AppBskyActorDefs} from '@atproto/api'
4-import {Trans} from '@lingui/macro'
56import {PressableScale} from '#/lib/custom-animations/PressableScale'
7import {sanitizeDisplayName} from '#/lib/strings/display-names'
···1import {View} from 'react-native'
2import Animated, {FadeInDown, FadeOut} from 'react-native-reanimated'
3import {type AppBskyActorDefs} from '@atproto/api'
4+import {Trans} from '@lingui/react/macro'
56import {PressableScale} from '#/lib/custom-animations/PressableScale'
7import {sanitizeDisplayName} from '#/lib/strings/display-names'
···1import {forwardRef, useEffect, useImperativeHandle, useState} from 'react'
2import {Pressable, View} from 'react-native'
3import {type AppBskyActorDefs, type ModerationOpts} from '@atproto/api'
4-import {Trans} from '@lingui/macro'
5import {ReactRenderer} from '@tiptap/react'
6import {
7 type SuggestionKeyDownProps,
···1import {forwardRef, useEffect, useImperativeHandle, useState} from 'react'
2import {Pressable, View} from 'react-native'
3import {type AppBskyActorDefs, type ModerationOpts} from '@atproto/api'
4+import {Trans} from '@lingui/react/macro'
5import {ReactRenderer} from '@tiptap/react'
6import {
7 type SuggestionKeyDownProps,
···1import React from 'react'
2import {Pressable, useWindowDimensions, View} from 'react-native'
3import Picker from '@emoji-mart/react'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {DismissableLayer, FocusScope} from 'radix-ui/internal'
7
···1import React from 'react'
2import {Pressable, useWindowDimensions, View} from 'react-native'
3import Picker from '@emoji-mart/react'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6import {DismissableLayer, FocusScope} from 'radix-ui/internal'
7
···2import {Keyboard, type StyleProp, type ViewStyle} from 'react-native'
3import {type AnimatedStyle} from 'react-native-reanimated'
4import {type AppBskyFeedPostgate} from '@atproto/api'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
07import deepEqual from 'fast-deep-equal'
89import {isNetworkError} from '#/lib/strings/errors'
···2import {Keyboard, type StyleProp, type ViewStyle} from 'react-native'
3import {type AnimatedStyle} from 'react-native-reanimated'
4import {type AppBskyFeedPostgate} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
8import deepEqual from 'fast-deep-equal'
910import {isNetworkError} from '#/lib/strings/errors'
+2-1
src/view/com/composer/videos/SubtitleDialog.tsx
···1import {useCallback, useState} from 'react'
2import {Keyboard, type StyleProp, View, type ViewStyle} from 'react-native'
3-import {msg, Plural, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {MAX_ALT_TEXT} from '#/lib/constants'
7import {isOverMaxGraphemeCount} from '#/lib/strings/helpers'
···1import {useCallback, useState} from 'react'
2import {Keyboard, type StyleProp, View, type ViewStyle} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Plural, Trans} from '@lingui/react/macro'
67import {MAX_ALT_TEXT} from '#/lib/constants'
8import {isOverMaxGraphemeCount} from '#/lib/strings/helpers'
···1import {useRef} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import type React from 'react'
67import {logger} from '#/logger'
···1import {useRef} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import type React from 'react'
78import {logger} from '#/logger'
+1-1
src/view/com/composer/videos/VideoPreview.web.tsx
···1import {View} from 'react-native'
2import {type ImagePickerAsset} from 'expo-image-picker'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {type CompressedVideo} from '#/lib/media/video/types'
···1import {View} from 'react-native'
2import {type ImagePickerAsset} from 'expo-image-picker'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {type CompressedVideo} from '#/lib/media/video/types'
+2-1
src/view/com/feeds/ComposerPrompt.tsx
···1import {useCallback, useState} from 'react'
2import {Keyboard, Pressable, View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
7import {
···1import {useCallback, useState} from 'react'
2import {Keyboard, Pressable, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
8import {
+1-1
src/view/com/feeds/FeedPage.tsx
···8} from 'react'
9import {View} from 'react-native'
10import {type AppBskyActorDefs, AppBskyFeedDefs} from '@atproto/api'
11-import {msg} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
13import {type NavigationProp, useNavigation} from '@react-navigation/native'
14import {useQueryClient} from '@tanstack/react-query'
···8} from 'react'
9import {View} from 'react-native'
10import {type AppBskyActorDefs, AppBskyFeedDefs} from '@atproto/api'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13import {type NavigationProp, useNavigation} from '@react-navigation/native'
14import {useQueryClient} from '@tanstack/react-query'
+2-1
src/view/com/feeds/FeedSourceCard.tsx
···5 type AppBskyGraphDefs,
6 AtUri,
7} from '@atproto/api'
8-import {msg, Plural, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
01011import {sanitizeHandle} from '#/lib/strings/handles'
12import {
···5 type AppBskyGraphDefs,
6 AtUri,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Plural, Trans} from '@lingui/react/macro'
1112import {sanitizeHandle} from '#/lib/strings/handles'
13import {
+2-1
src/view/com/feeds/MissingFeed.tsx
···1import {type StyleProp, View, type ViewStyle} from 'react-native'
2import {AtUri} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {cleanError} from '#/lib/strings/errors'
7import {useModerationOpts} from '#/state/preferences/moderation-opts'
···1import {type StyleProp, View, type ViewStyle} from 'react-native'
2import {AtUri} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {cleanError} from '#/lib/strings/errors'
8import {useModerationOpts} from '#/state/preferences/moderation-opts'
+1-1
src/view/com/feeds/ProfileFeedgens.tsx
···13 View,
14 type ViewStyle,
15} from 'react-native'
16-import {msg} from '@lingui/macro'
17import {useLingui} from '@lingui/react'
18import {useNavigation} from '@react-navigation/native'
19import {useQueryClient} from '@tanstack/react-query'
···13 View,
14 type ViewStyle,
15} from 'react-native'
16+import {msg} from '@lingui/core/macro'
17import {useLingui} from '@lingui/react'
18import {useNavigation} from '@react-navigation/native'
19import {useQueryClient} from '@tanstack/react-query'
+1-1
src/view/com/home/HomeHeaderLayout.web.tsx
···1import {type JSX} from 'react'
2import {View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
5import type React from 'react'
6
···1import {type JSX} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5import type React from 'react'
6
+1-1
src/view/com/home/HomeHeaderLayoutMobile.tsx
···1import {type JSX} from 'react'
2import {View} from 'react-native'
3import Animated from 'react-native-reanimated'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
67import {HITSLOP_10} from '#/lib/constants'
···1import {type JSX} from 'react'
2import {View} from 'react-native'
3import Animated from 'react-native-reanimated'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
67import {HITSLOP_10} from '#/lib/constants'
···8import {StyleSheet, TouchableOpacity, type ViewStyle} from 'react-native'
9import {SafeAreaView} from 'react-native-safe-area-context'
10import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
11-import {msg} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
1314import {createHitslop} from '#/lib/constants'
···8import {StyleSheet, TouchableOpacity, type ViewStyle} from 'react-native'
9import {SafeAreaView} from 'react-native-safe-area-context'
10import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
1314import {createHitslop} from '#/lib/constants'
+1-2
src/view/com/lightbox/ImageViewing/index.tsx
···7 */
8// Original code copied and simplified from the link below as the codebase is currently not maintained:
9// https://github.com/jobtoday/react-native-image-viewing
10-11import React, {useCallback, useEffect, useMemo, useState} from 'react'
12import {
13 LayoutAnimation,
···39import {SafeAreaView} from 'react-native-safe-area-context'
40import * as ScreenOrientation from 'expo-screen-orientation'
41import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
42-import {Trans} from '@lingui/macro'
4344import {type Dimensions} from '#/lib/media/types'
45import {colors, s} from '#/lib/styles'
···7 */
8// Original code copied and simplified from the link below as the codebase is currently not maintained:
9// https://github.com/jobtoday/react-native-image-viewing
010import React, {useCallback, useEffect, useMemo, useState} from 'react'
11import {
12 LayoutAnimation,
···38import {SafeAreaView} from 'react-native-safe-area-context'
39import * as ScreenOrientation from 'expo-screen-orientation'
40import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
41+import {Trans} from '@lingui/react/macro'
4243import {type Dimensions} from '#/lib/media/types'
44import {colors, s} from '#/lib/styles'
+1-1
src/view/com/lightbox/Lightbox.web.tsx
···1import {useCallback, useEffect, useRef, useState} from 'react'
2import {Pressable, StyleSheet, View} from 'react-native'
3import {Image} from 'expo-image'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {FocusGuards, FocusScope} from 'radix-ui/internal'
7import {RemoveScrollBar} from 'react-remove-scroll-bar'
···1import {useCallback, useEffect, useRef, useState} from 'react'
2import {Pressable, StyleSheet, View} from 'react-native'
3import {Image} from 'expo-image'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6import {FocusGuards, FocusScope} from 'radix-ui/internal'
7import {RemoveScrollBar} from 'react-remove-scroll-bar'
+2-1
src/view/com/lists/ListMembers.tsx
···7 type ViewStyle,
8} from 'react-native'
9import {type AppBskyGraphDefs} from '@atproto/api'
10-import {msg, Trans} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
01213import {cleanError} from '#/lib/strings/errors'
14import {logger} from '#/logger'
···7 type ViewStyle,
8} from 'react-native'
9import {type AppBskyGraphDefs} from '@atproto/api'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
12+import {Trans} from '@lingui/react/macro'
1314import {cleanError} from '#/lib/strings/errors'
15import {logger} from '#/logger'
+1-1
src/view/com/lists/MyLists.tsx
···8 type ViewStyle,
9} from 'react-native'
10import {type AppBskyGraphDefs as GraphDefs} from '@atproto/api'
11-import {msg} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
1314import {usePalette} from '#/lib/hooks/usePalette'
···8 type ViewStyle,
9} from 'react-native'
10import {type AppBskyGraphDefs as GraphDefs} from '@atproto/api'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
1314import {usePalette} from '#/lib/hooks/usePalette'
+1-1
src/view/com/lists/ProfileLists.tsx
···13 View,
14 type ViewStyle,
15} from 'react-native'
16-import {msg} from '@lingui/macro'
17import {useLingui} from '@lingui/react'
18import {useNavigation} from '@react-navigation/native'
19import {useQueryClient} from '@tanstack/react-query'
···13 View,
14 type ViewStyle,
15} from 'react-native'
16+import {msg} from '@lingui/core/macro'
17import {useLingui} from '@lingui/react'
18import {useNavigation} from '@react-navigation/native'
19import {useQueryClient} from '@tanstack/react-query'
+2-1
src/view/com/modals/UserAddRemoveLists.tsx
···6 View,
7} from 'react-native'
8import {type AppBskyGraphDefs as GraphDefs} from '@atproto/api'
9-import {msg, Trans} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
01112import {usePalette} from '#/lib/hooks/usePalette'
13import {sanitizeDisplayName} from '#/lib/strings/display-names'
···6 View,
7} from 'react-native'
8import {type AppBskyGraphDefs as GraphDefs} from '@atproto/api'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11+import {Trans} from '@lingui/react/macro'
1213import {usePalette} from '#/lib/hooks/usePalette'
14import {sanitizeDisplayName} from '#/lib/strings/display-names'
+1-1
src/view/com/notifications/NotificationFeed.tsx
···5 StyleSheet,
6 View,
7} from 'react-native'
8-import {msg} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
1011import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
···5 StyleSheet,
6 View,
7} from 'react-native'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
1011import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
···18} from '@atproto/api'
19import {AtUri} from '@atproto/api'
20import {TID} from '@atproto/common-web'
21-import {msg, Plural, plural, Trans} from '@lingui/macro'
22import {useLingui} from '@lingui/react'
023import {useNavigation} from '@react-navigation/native'
24import {useQueryClient} from '@tanstack/react-query'
2526-import {MAX_POST_LINES} from '#/lib/constants'
27-import {DM_SERVICE_HEADERS} from '#/lib/constants'
28import {useAnimatedValue} from '#/lib/hooks/useAnimatedValue'
29import {usePalette} from '#/lib/hooks/usePalette'
30import {makeProfileLink} from '#/lib/routes/links'
···880 setIsLoading(true)
881 const res = await agent.api.chat.bsky.convo.getConvoForMembers(
882 {
883- members: [profile.did, agent.session!.did!],
884 },
885 {headers: DM_SERVICE_HEADERS},
886 )
···18} from '@atproto/api'
19import {AtUri} from '@atproto/api'
20import {TID} from '@atproto/common-web'
21+import {msg, plural} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
23+import {Plural, Trans} from '@lingui/react/macro'
24import {useNavigation} from '@react-navigation/native'
25import {useQueryClient} from '@tanstack/react-query'
2627+import {DM_SERVICE_HEADERS, MAX_POST_LINES} from '#/lib/constants'
028import {useAnimatedValue} from '#/lib/hooks/useAnimatedValue'
29import {usePalette} from '#/lib/hooks/usePalette'
30import {makeProfileLink} from '#/lib/routes/links'
···880 setIsLoading(true)
881 const res = await agent.api.chat.bsky.convo.getConvoForMembers(
882 {
883+ members: [profile.did, agent.session!.did],
884 },
885 {headers: DM_SERVICE_HEADERS},
886 )
+1-1
src/view/com/post-thread/PostLikedBy.tsx
···1import {useCallback, useMemo, useState} from 'react'
2import {type AppBskyFeedGetLikes as GetLikes} from '@atproto/api'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
···1import {useCallback, useMemo, useState} from 'react'
2import {type AppBskyFeedGetLikes as GetLikes} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
+1-1
src/view/com/post-thread/PostQuotes.tsx
···5 moderatePost,
6 type ModerationDecision,
7} from '@atproto/api'
8-import {msg} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
1011import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
···5 moderatePost,
6 type ModerationDecision,
7} from '@atproto/api'
8+import {msg} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
1011import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
+1-1
src/view/com/post-thread/PostRepostedBy.tsx
···1import {useCallback, useMemo, useState} from 'react'
2import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
···1import {useCallback, useMemo, useState} from 'react'
2import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
+1-1
src/view/com/posts/CustomFeedEmptyState.tsx
···4 FontAwesomeIcon,
5 type FontAwesomeIconStyle,
6} from '@fortawesome/react-native-fontawesome'
7-import {Trans} from '@lingui/macro'
8import {useNavigation} from '@react-navigation/native'
910import {DISCOVER_FEED_URI} from '#/lib/constants'
···4 FontAwesomeIcon,
5 type FontAwesomeIconStyle,
6} from '@fortawesome/react-native-fontawesome'
7+import {Trans} from '@lingui/react/macro'
8import {useNavigation} from '@react-navigation/native'
910import {DISCOVER_FEED_URI} from '#/lib/constants'
+1-1
src/view/com/posts/DiscoverFallbackHeader.tsx
···1import {View} from 'react-native'
2-import {Trans} from '@lingui/macro'
34import {usePalette} from '#/lib/hooks/usePalette'
5import {InfoCircleIcon} from '#/lib/icons'
···1import {View} from 'react-native'
2+import {Trans} from '@lingui/react/macro'
34import {usePalette} from '#/lib/hooks/usePalette'
5import {InfoCircleIcon} from '#/lib/icons'
+2-1
src/view/com/posts/FeedShutdownMsg.tsx
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {PROD_DEFAULT_FEED} from '#/lib/constants'
7import {logger} from '#/logger'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {PROD_DEFAULT_FEED} from '#/lib/constants'
8import {logger} from '#/logger'
+1-1
src/view/com/posts/FollowingEmptyState.tsx
···4 FontAwesomeIcon,
5 type FontAwesomeIconStyle,
6} from '@fortawesome/react-native-fontawesome'
7-import {Trans} from '@lingui/macro'
8import {useNavigation} from '@react-navigation/native'
910import {usePalette} from '#/lib/hooks/usePalette'
···4 FontAwesomeIcon,
5 type FontAwesomeIconStyle,
6} from '@fortawesome/react-native-fontawesome'
7+import {Trans} from '@lingui/react/macro'
8import {useNavigation} from '@react-navigation/native'
910import {usePalette} from '#/lib/hooks/usePalette'
+1-1
src/view/com/posts/FollowingEndOfFeed.tsx
···4 FontAwesomeIcon,
5 type FontAwesomeIconStyle,
6} from '@fortawesome/react-native-fontawesome'
7-import {Trans} from '@lingui/macro'
8import {useNavigation} from '@react-navigation/native'
910import {usePalette} from '#/lib/hooks/usePalette'
···4 FontAwesomeIcon,
5 type FontAwesomeIconStyle,
6} from '@fortawesome/react-native-fontawesome'
7+import {Trans} from '@lingui/react/macro'
8import {useNavigation} from '@react-navigation/native'
910import {usePalette} from '#/lib/hooks/usePalette'
+1-1
src/view/com/posts/PostFeed.tsx
···15 AppBskyEmbedVideo,
16 type AppBskyFeedDefs,
17} from '@atproto/api'
18-import {msg} from '@lingui/macro'
19import {useLingui} from '@lingui/react'
20import {useQueryClient} from '@tanstack/react-query'
21
···15 AppBskyEmbedVideo,
16 type AppBskyFeedDefs,
17} from '@atproto/api'
18+import {msg} from '@lingui/core/macro'
19import {useLingui} from '@lingui/react'
20import {useQueryClient} from '@tanstack/react-query'
21
+2-1
src/view/com/posts/PostFeedErrorMessage.tsx
···5 AppBskyFeedGetAuthorFeed,
6 AtUri,
7} from '@atproto/api'
8-import {msg as msgLingui, Trans} from '@lingui/macro'
9import {useLingui} from '@lingui/react'
010import {useNavigation} from '@react-navigation/native'
1112import {usePalette} from '#/lib/hooks/usePalette'
···5 AppBskyFeedGetAuthorFeed,
6 AtUri,
7} from '@atproto/api'
8+import {msg as msgLingui} from '@lingui/core/macro'
9import {useLingui} from '@lingui/react'
10+import {Trans} from '@lingui/react/macro'
11import {useNavigation} from '@react-navigation/native'
1213import {usePalette} from '#/lib/hooks/usePalette'
+2-1
src/view/com/posts/PostFeedReason.tsx
···1import {StyleSheet, View} from 'react-native'
2import {AppBskyFeedDefs, type ModerationDecision} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {isReasonFeedSource, type ReasonFeedSource} from '#/lib/api/feed/types'
7import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
···1import {StyleSheet, View} from 'react-native'
2import {AppBskyFeedDefs, type ModerationDecision} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {isReasonFeedSource, type ReasonFeedSource} from '#/lib/api/feed/types'
8import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
+1-1
src/view/com/posts/ShowLessFollowup.tsx
···1import {View} from 'react-native'
2-import {Trans} from '@lingui/macro'
34import {atoms as a, useTheme} from '#/alf'
5import {CircleCheck_Stroke2_Corner0_Rounded} from '#/components/icons/CircleCheck'
···1import {View} from 'react-native'
2+import {Trans} from '@lingui/react/macro'
34import {atoms as a, useTheme} from '#/alf'
5import {CircleCheck_Stroke2_Corner0_Rounded} from '#/components/icons/CircleCheck'
+1-1
src/view/com/posts/ViewFullThread.tsx
···2import {StyleSheet, View} from 'react-native'
3import Svg, {Circle, Line} from 'react-native-svg'
4import {AtUri} from '@atproto/api'
5-import {msg} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
78import {usePalette} from '#/lib/hooks/usePalette'
···2import {StyleSheet, View} from 'react-native'
3import Svg, {Circle, Line} from 'react-native-svg'
4import {AtUri} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
78import {usePalette} from '#/lib/hooks/usePalette'
+1-1
src/view/com/profile/ProfileFollowers.tsx
···1import React from 'react'
2import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
5import {useNavigation} from '@react-navigation/native'
6
···1import React from 'react'
2import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5import {useNavigation} from '@react-navigation/native'
6
+1-1
src/view/com/profile/ProfileFollows.tsx
···1import React from 'react'
2import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
5import {useNavigation} from '@react-navigation/native'
6
···1import React from 'react'
2import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5import {useNavigation} from '@react-navigation/native'
6
+2-1
src/view/com/profile/ProfileMenu.tsx
···1import React, {memo} from 'react'
2import {type AppBskyActorDefs} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useNavigation} from '@react-navigation/native'
6import {useQueryClient} from '@tanstack/react-query'
7
···1import React, {memo} from 'react'
2import {type AppBskyActorDefs} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useNavigation} from '@react-navigation/native'
7import {useQueryClient} from '@tanstack/react-query'
8
+2-1
src/view/com/profile/ProfileSubpageHeader.tsx
···8 useAnimatedRef,
9} from 'react-native-reanimated'
10import {type AppBskyGraphDefs} from '@atproto/api'
11-import {msg, Trans} from '@lingui/macro'
12import {useLingui} from '@lingui/react'
013import {useNavigation} from '@react-navigation/native'
1415import {usePalette} from '#/lib/hooks/usePalette'
···8 useAnimatedRef,
9} from 'react-native-reanimated'
10import {type AppBskyGraphDefs} from '@atproto/api'
11+import {msg} from '@lingui/core/macro'
12import {useLingui} from '@lingui/react'
13+import {Trans} from '@lingui/react/macro'
14import {useNavigation} from '@react-navigation/native'
1516import {usePalette} from '#/lib/hooks/usePalette'
+2-2
src/view/com/util/BottomSheetCustomBackdrop.tsx
···6 useAnimatedStyle,
7} from 'react-native-reanimated'
8import {type BottomSheetBackdropProps} from '@discord/bottom-sheet/src'
9-import {msg} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
11import type React from 'react'
1213export function createCustomBackdrop(
14- onClose?: (() => void) | undefined,
15): React.FC<BottomSheetBackdropProps> {
16 const CustomBackdrop = ({animatedIndex, style}: BottomSheetBackdropProps) => {
17 const {_} = useLingui()
···6 useAnimatedStyle,
7} from 'react-native-reanimated'
8import {type BottomSheetBackdropProps} from '@discord/bottom-sheet/src'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11import type React from 'react'
1213export function createCustomBackdrop(
14+ onClose?: () => void,
15): React.FC<BottomSheetBackdropProps> {
16 const CustomBackdrop = ({animatedIndex, style}: BottomSheetBackdropProps) => {
17 const {_} = useLingui()
+1-1
src/view/com/util/ErrorBoundary.tsx
···1import {Component, type ErrorInfo, type ReactNode} from 'react'
2import {type StyleProp, type ViewStyle} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {logger} from '#/logger'
···1import {Component, type ErrorInfo, type ReactNode} from 'react'
2import {type StyleProp, type ViewStyle} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {logger} from '#/logger'
+1-1
src/view/com/util/PostMeta.tsx
···1import {memo, useCallback} from 'react'
2import {type StyleProp, View, type ViewStyle} from 'react-native'
3import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api'
4-import {msg} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
6import {useQueryClient} from '@tanstack/react-query'
7
···1import {memo, useCallback} from 'react'
2import {type StyleProp, View, type ViewStyle} from 'react-native'
3import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6import {useQueryClient} from '@tanstack/react-query'
7
+2-1
src/view/com/util/UserAvatar.tsx
···11import {Image as ExpoImage} from 'expo-image'
12import {type ModerationUI} from '@atproto/api'
13import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
14-import {msg, Trans} from '@lingui/macro'
15import {useLingui} from '@lingui/react'
016import {useQueryClient} from '@tanstack/react-query'
1718import {useHaptics} from '#/lib/haptics'
···11import {Image as ExpoImage} from 'expo-image'
12import {type ModerationUI} from '@atproto/api'
13import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
14+import {msg} from '@lingui/core/macro'
15import {useLingui} from '@lingui/react'
16+import {Trans} from '@lingui/react/macro'
17import {useQueryClient} from '@tanstack/react-query'
1819import {useHaptics} from '#/lib/haptics'
+2-1
src/view/com/util/UserBanner.tsx
···2import {Pressable, StyleSheet, View} from 'react-native'
3import {Image} from 'expo-image'
4import {type ModerationUI} from '@atproto/api'
5-import {msg, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
078import {
9 useCameraPermission,
···2import {Pressable, StyleSheet, View} from 'react-native'
3import {Image} from 'expo-image'
4import {type ModerationUI} from '@atproto/api'
5+import {msg} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
89import {
10 useCameraPermission,
+1-1
src/view/com/util/error/ErrorMessage.tsx
···9 FontAwesomeIcon,
10 type FontAwesomeIconStyle,
11} from '@fortawesome/react-native-fontawesome'
12-import {msg} from '@lingui/macro'
13import {useLingui} from '@lingui/react'
1415import {usePalette} from '#/lib/hooks/usePalette'
···9 FontAwesomeIcon,
10 type FontAwesomeIconStyle,
11} from '@fortawesome/react-native-fontawesome'
12+import {msg} from '@lingui/core/macro'
13import {useLingui} from '@lingui/react'
1415import {usePalette} from '#/lib/hooks/usePalette'
+2-1
src/view/com/util/error/ErrorScreen.tsx
···3 FontAwesomeIcon,
4 type FontAwesomeIconStyle,
5} from '@fortawesome/react-native-fontawesome'
6-import {msg, Trans} from '@lingui/macro'
7import {useLingui} from '@lingui/react'
089import {usePalette} from '#/lib/hooks/usePalette'
10import {atoms as a, useTheme} from '#/alf'
···3 FontAwesomeIcon,
4 type FontAwesomeIconStyle,
5} from '@fortawesome/react-native-fontawesome'
6+import {msg} from '@lingui/core/macro'
7import {useLingui} from '@lingui/react'
8+import {Trans} from '@lingui/react/macro'
910import {usePalette} from '#/lib/hooks/usePalette'
11import {atoms as a, useTheme} from '#/alf'
+2-1
src/view/screens/CommunityGuidelines.tsx
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect} from '@react-navigation/native'
67import {usePalette} from '#/lib/hooks/usePalette'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useFocusEffect} from '@react-navigation/native'
78import {usePalette} from '#/lib/hooks/usePalette'
+2-1
src/view/screens/CopyrightPolicy.tsx
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect} from '@react-navigation/native'
67import {usePalette} from '#/lib/hooks/usePalette'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useFocusEffect} from '@react-navigation/native'
78import {usePalette} from '#/lib/hooks/usePalette'
+1-1
src/view/screens/Debug.tsx
···1import React from 'react'
2import {ScrollView, View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
56import {usePalette} from '#/lib/hooks/usePalette'
···1import React from 'react'
2import {ScrollView, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
56import {usePalette} from '#/lib/hooks/usePalette'
+5-3
src/view/screens/DebugMod.tsx
···16 type ModerationOpts,
17 RichText,
18} from '@atproto/api'
19-import {msg} from '@lingui/macro'
20import {useLingui} from '@lingui/react'
2122import {useGlobalLabelStrings} from '#/lib/moderation/useGlobalLabelStrings'
···24 type CommonNavigatorParams,
25 type NativeStackScreenProps,
26} from '#/lib/routes/types'
27-import {useModerationOpts} from '#/state/preferences/moderation-opts'
28-import {moderationOptsOverrideContext} from '#/state/preferences/moderation-opts'
0029import {type FeedNotification} from '#/state/queries/notifications/types'
30import {
31 groupNotifications,
···16 type ModerationOpts,
17 RichText,
18} from '@atproto/api'
19+import {msg} from '@lingui/core/macro'
20import {useLingui} from '@lingui/react'
2122import {useGlobalLabelStrings} from '#/lib/moderation/useGlobalLabelStrings'
···24 type CommonNavigatorParams,
25 type NativeStackScreenProps,
26} from '#/lib/routes/types'
27+import {
28+ moderationOptsOverrideContext,
29+ useModerationOpts,
30+} from '#/state/preferences/moderation-opts'
31import {type FeedNotification} from '#/state/queries/notifications/types'
32import {
33 groupNotifications,
+2-1
src/view/screens/Feeds.tsx
···1import React from 'react'
2import {ActivityIndicator, StyleSheet, View} from 'react-native'
3import {type AppBskyFeedDefs} from '@atproto/api'
4-import {msg, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useFocusEffect} from '@react-navigation/native'
7import debounce from 'lodash.debounce'
8
···1import React from 'react'
2import {ActivityIndicator, StyleSheet, View} from 'react-native'
3import {type AppBskyFeedDefs} from '@atproto/api'
4+import {msg} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useFocusEffect} from '@react-navigation/native'
8import debounce from 'lodash.debounce'
9
+3-2
src/view/screens/Lists.tsx
···1import {useCallback} from 'react'
2import {AtUri} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect, useNavigation} from '@react-navigation/native'
67import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
8import {
9 type CommonNavigatorParams,
10 type NativeStackScreenProps,
011} from '#/lib/routes/types'
12-import {type NavigationProp} from '#/lib/routes/types'
13import {useSetMinimalShellMode} from '#/state/shell'
14import {MyLists} from '#/view/com/lists/MyLists'
15import {atoms as a} from '#/alf'
···1import {useCallback} from 'react'
2import {AtUri} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useFocusEffect, useNavigation} from '@react-navigation/native'
78import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
9import {
10 type CommonNavigatorParams,
11 type NativeStackScreenProps,
12+ type NavigationProp,
13} from '#/lib/routes/types'
014import {useSetMinimalShellMode} from '#/state/shell'
15import {MyLists} from '#/view/com/lists/MyLists'
16import {atoms as a} from '#/alf'
+1-1
src/view/screens/ModerationBlockedAccounts.tsx
···1import {useCallback, useMemo, useState} from 'react'
2import {type StyleProp, View, type ViewStyle} from 'react-native'
3import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
4-import {Trans} from '@lingui/macro'
5import {useFocusEffect} from '@react-navigation/native'
6import {type NativeStackScreenProps} from '@react-navigation/native-stack'
7
···1import {useCallback, useMemo, useState} from 'react'
2import {type StyleProp, View, type ViewStyle} from 'react-native'
3import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
4+import {Trans} from '@lingui/react/macro'
5import {useFocusEffect} from '@react-navigation/native'
6import {type NativeStackScreenProps} from '@react-navigation/native-stack'
7
+3-2
src/view/screens/ModerationModlists.tsx
···1import {useCallback} from 'react'
2import {AtUri} from '@atproto/api'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect, useNavigation} from '@react-navigation/native'
67import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
8import {
9 type CommonNavigatorParams,
10 type NativeStackScreenProps,
011} from '#/lib/routes/types'
12-import {type NavigationProp} from '#/lib/routes/types'
13import {useSetMinimalShellMode} from '#/state/shell'
14import {MyLists} from '#/view/com/lists/MyLists'
15import {atoms as a} from '#/alf'
···1import {useCallback} from 'react'
2import {AtUri} from '@atproto/api'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useFocusEffect, useNavigation} from '@react-navigation/native'
78import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
9import {
10 type CommonNavigatorParams,
11 type NativeStackScreenProps,
12+ type NavigationProp,
13} from '#/lib/routes/types'
014import {useSetMinimalShellMode} from '#/state/shell'
15import {MyLists} from '#/view/com/lists/MyLists'
16import {atoms as a} from '#/alf'
+1-1
src/view/screens/ModerationMutedAccounts.tsx
···1import {useCallback, useMemo, useState} from 'react'
2import {type StyleProp, View, type ViewStyle} from 'react-native'
3import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
4-import {Trans} from '@lingui/macro'
5import {useFocusEffect} from '@react-navigation/native'
6import {type NativeStackScreenProps} from '@react-navigation/native-stack'
7
···1import {useCallback, useMemo, useState} from 'react'
2import {type StyleProp, View, type ViewStyle} from 'react-native'
3import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
4+import {Trans} from '@lingui/react/macro'
5import {useFocusEffect} from '@react-navigation/native'
6import {type NativeStackScreenProps} from '@react-navigation/native-stack'
7
+2-1
src/view/screens/NotFound.tsx
···1import React from 'react'
2import {StyleSheet, View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {
6 StackActions,
7 useFocusEffect,
···1import React from 'react'
2import {StyleSheet, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {
7 StackActions,
8 useFocusEffect,
+2-1
src/view/screens/Notifications.tsx
···1import {useCallback, useEffect, useMemo, useRef, useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect, useIsFocused} from '@react-navigation/native'
6import {useQueryClient} from '@tanstack/react-query'
7
···1import {useCallback, useEffect, useMemo, useRef, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useFocusEffect, useIsFocused} from '@react-navigation/native'
7import {useQueryClient} from '@tanstack/react-query'
8
+2-1
src/view/screens/PrivacyPolicy.tsx
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect} from '@react-navigation/native'
67import {usePalette} from '#/lib/hooks/usePalette'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useFocusEffect} from '@react-navigation/native'
78import {usePalette} from '#/lib/hooks/usePalette'
+2-1
src/view/screens/Profile.tsx
···7 type ModerationOpts,
8 RichText as RichTextAPI,
9} from '@atproto/api'
10-import {msg, Trans} from '@lingui/macro'
11import {useLingui} from '@lingui/react'
012import {useFocusEffect, useNavigation} from '@react-navigation/native'
13import {useQueryClient} from '@tanstack/react-query'
14
···7 type ModerationOpts,
8 RichText as RichTextAPI,
9} from '@atproto/api'
10+import {msg} from '@lingui/core/macro'
11import {useLingui} from '@lingui/react'
12+import {Trans} from '@lingui/react/macro'
13import {useFocusEffect, useNavigation} from '@react-navigation/native'
14import {useQueryClient} from '@tanstack/react-query'
15
+1-1
src/view/screens/ProfileFeedLikedBy.tsx
···1import {useCallback} from 'react'
2-import {Trans} from '@lingui/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
···1import {useCallback} from 'react'
2+import {Trans} from '@lingui/react/macro'
3import {useFocusEffect} from '@react-navigation/native'
45import {
+2-1
src/view/screens/Storybook/Admonitions.tsx
···1import {Text as RNText, View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {atoms as a, useTheme} from '#/alf'
6import {
···1import {Text as RNText, View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {atoms as a, useTheme} from '#/alf'
7import {
+2-1
src/view/screens/Support.tsx
···1import React from 'react'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
04import {useFocusEffect} from '@react-navigation/native'
56import {HELP_DESK_URL} from '#/lib/constants'
···1import React from 'react'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
5import {useFocusEffect} from '@react-navigation/native'
67import {HELP_DESK_URL} from '#/lib/constants'
+2-1
src/view/screens/TermsOfService.tsx
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useFocusEffect} from '@react-navigation/native'
67import {usePalette} from '#/lib/hooks/usePalette'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useFocusEffect} from '@react-navigation/native'
78import {usePalette} from '#/lib/hooks/usePalette'
+2-1
src/view/shell/Drawer.tsx
···1import React, {type ComponentProps, type JSX} from 'react'
2import {Linking, ScrollView, TouchableOpacity, View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4-import {msg, Plural, plural, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {StackActions, useNavigation} from '@react-navigation/native'
78import {FEEDBACK_FORM_URL, HELP_DESK_URL} from '#/lib/constants'
···1import React, {type ComponentProps, type JSX} from 'react'
2import {Linking, ScrollView, TouchableOpacity, View} from 'react-native'
3import {useSafeAreaInsets} from 'react-native-safe-area-context'
4+import {msg, plural} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Plural, Trans} from '@lingui/react/macro'
7import {StackActions, useNavigation} from '@react-navigation/native'
89import {FEEDBACK_FORM_URL, HELP_DESK_URL} from '#/lib/constants'
+2-1
src/view/shell/NavSignupCard.tsx
···1import React from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
056import {useLoggedOutViewControls} from '#/state/shell/logged-out'
7import {useCloseAllActiveElements} from '#/state/util'
···1import React from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
67import {useLoggedOutViewControls} from '#/state/shell/logged-out'
8import {useCloseAllActiveElements} from '#/state/util'
+2-1
src/view/shell/bottom-bar/BottomBar.tsx
···2import {type GestureResponderEvent, View} from 'react-native'
3import Animated from 'react-native-reanimated'
4import {useSafeAreaInsets} from 'react-native-safe-area-context'
5-import {msg, plural, Trans} from '@lingui/macro'
6import {useLingui} from '@lingui/react'
07import {type BottomTabBarProps} from '@react-navigation/bottom-tabs'
8import {StackActions} from '@react-navigation/native'
9
···2import {type GestureResponderEvent, View} from 'react-native'
3import Animated from 'react-native-reanimated'
4import {useSafeAreaInsets} from 'react-native-safe-area-context'
5+import {msg, plural} from '@lingui/core/macro'
6import {useLingui} from '@lingui/react'
7+import {Trans} from '@lingui/react/macro'
8import {type BottomTabBarProps} from '@react-navigation/bottom-tabs'
9import {StackActions} from '@react-navigation/native'
10
+2-1
src/view/shell/bottom-bar/BottomBarWeb.tsx
···1import React from 'react'
2import {View} from 'react-native'
3import Animated from 'react-native-reanimated'
4-import {msg, plural, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useNavigationState} from '@react-navigation/native'
78import {useHideBottomBarBorder} from '#/lib/hooks/useHideBottomBarBorder'
···1import React from 'react'
2import {View} from 'react-native'
3import Animated from 'react-native-reanimated'
4+import {msg, plural} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useNavigationState} from '@react-navigation/native'
89import {useHideBottomBarBorder} from '#/lib/hooks/useHideBottomBarBorder'
+1-1
src/view/shell/desktop/Feeds.tsx
···1import {Pressable, View} from 'react-native'
2-import {msg} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
4import {useNavigation, useNavigationState} from '@react-navigation/native'
5
···1import {Pressable, View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4import {useNavigation, useNavigationState} from '@react-navigation/native'
5
+2-1
src/view/shell/desktop/LeftNav.tsx
···1import {type JSX, useCallback, useMemo, useState} from 'react'
2import {StyleSheet, View} from 'react-native'
3import {type AppBskyActorDefs} from '@atproto/api'
4-import {msg, plural, Trans} from '@lingui/macro'
5import {useLingui} from '@lingui/react'
06import {useNavigation, useNavigationState} from '@react-navigation/native'
78import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher'
···1import {type JSX, useCallback, useMemo, useState} from 'react'
2import {StyleSheet, View} from 'react-native'
3import {type AppBskyActorDefs} from '@atproto/api'
4+import {msg, plural} from '@lingui/core/macro'
5import {useLingui} from '@lingui/react'
6+import {Trans} from '@lingui/react/macro'
7import {useNavigation, useNavigationState} from '@react-navigation/native'
89import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher'
+2-1
src/view/shell/desktop/RightNav.tsx
···1import {useEffect, useState} from 'react'
2import {View} from 'react-native'
3-import {msg, Trans} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
05import {useNavigation} from '@react-navigation/core'
67import {FEEDBACK_FORM_URL, HELP_DESK_URL} from '#/lib/constants'
···1import {useEffect, useState} from 'react'
2import {View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5+import {Trans} from '@lingui/react/macro'
6import {useNavigation} from '@react-navigation/core'
78import {FEEDBACK_FORM_URL, HELP_DESK_URL} from '#/lib/constants'
+1-1
src/view/shell/desktop/Search.tsx
···6 View,
7 type ViewStyle,
8} from 'react-native'
9-import {msg} from '@lingui/macro'
10import {useLingui} from '@lingui/react'
11import {StackActions, useNavigation} from '@react-navigation/native'
12
···6 View,
7 type ViewStyle,
8} from 'react-native'
9+import {msg} from '@lingui/core/macro'
10import {useLingui} from '@lingui/react'
11import {StackActions, useNavigation} from '@react-navigation/native'
12
+2-1
src/view/shell/desktop/SidebarTrendingTopics.tsx
···1import {View} from 'react-native'
2-import {msg, Trans} from '@lingui/macro'
3import {useLingui} from '@lingui/react'
045import {
6 useTrendingSettings,
···1import {View} from 'react-native'
2+import {msg} from '@lingui/core/macro'
3import {useLingui} from '@lingui/react'
4+import {Trans} from '@lingui/react/macro'
56import {
7 useTrendingSettings,
+1-1
src/view/shell/index.web.tsx
···1import {useCallback, useEffect, useLayoutEffect, useState} from 'react'
2import {StyleSheet, TouchableWithoutFeedback, View} from 'react-native'
3-import {msg} from '@lingui/macro'
4import {useLingui} from '@lingui/react'
5import {useNavigation} from '@react-navigation/native'
6import {RemoveScrollBar} from 'react-remove-scroll-bar'
···1import {useCallback, useEffect, useLayoutEffect, useState} from 'react'
2import {StyleSheet, TouchableWithoutFeedback, View} from 'react-native'
3+import {msg} from '@lingui/core/macro'
4import {useLingui} from '@lingui/react'
5import {useNavigation} from '@react-navigation/native'
6import {RemoveScrollBar} from 'react-remove-scroll-bar'