···271271All user-facing strings must be wrapped for translation using Lingui.
272272273273```tsx
274274-import {msg, Trans, plural} from '@lingui/macro'
274274+import {msg, plural} from '@lingui/core/macro'
275275+import {Trans} from '@lingui/react/macro'
275276import {useLingui} from '@lingui/react'
276277277278function MyComponent() {
+6
__tests__/lib/string.test.ts
···11import {RichText} from '@atproto/api'
22+import {i18n} from '@lingui/core'
2334import {parseEmbedPlayerFromUrl} from '#/lib/strings/embed-player'
45import {
···67 createStarterPackLinkFromAndroidReferrer,
78 parseStarterPackUri,
89} from '#/lib/strings/starter-pack'
1010+import {messages} from '#/locale/locales/en/messages'
911import {tenorUrlToBskyGifUrl} from '#/state/queries/tenor'
1012import {cleanError} from '../../src/lib/strings/errors'
1113import {createFullHandle, makeValidHandle} from '../../src/lib/strings/handles'
···202204})
203205204206describe('cleanError', () => {
207207+ // cleanError uses lingui
208208+ i18n.loadAndActivate({locale: 'en', messages})
209209+205210 const inputs = [
206211 'TypeError: Network request failed',
207212 'Error: Aborted',
···327332 expect(outputRT.text).toEqual(outputs[i][0])
328333 expect(outputRT.facets?.length).toEqual(outputs[i][1].length)
329334 for (let j = 0; j < outputs[i][1].length; j++) {
335335+ // @ts-expect-error whatever
330336 expect(outputRT.facets![j].features[0].uri).toEqual(outputs[i][1][j])
331337 }
332338 }
···7373```jsx
7474// After
7575import { Text } from "react-native";
7676-import { Trans } from "@lingui/macro";
7676+import { Trans } from "@lingui/react/macro";
77777878<Text><Trans>Hello World</Trans></Text>
7979```
···9090```
9191In this case, you can use the `useLingui()` hook:
9292```jsx
9393-import { msg } from "@lingui/macro";
9393+import { msg } from "@lingui/core/macro";
9494import { useLingui } from "@lingui/react";
95959696const { _ } = useLingui();
9797return <Text accessibilityLabel={_(msg`Label is here`)}>{text}</Text>
9898```
9999100100-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):
100100+NEW: the latest Lingui version introduced a new macro version of the `useLingui` hook which lets you do this:
101101+102102+```jsx
103103+import { useLingui } from "@lingui/react/macro";
104104+105105+const { t } = useLingui();
106106+return <Text accessibilityLabel={t`Label is here`}>{text}</Text>
107107+```
108108+109109+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):
101110```jsx
102102-import { t } from "@lingui/macro";
111111+import { t } from "@lingui/core/macro";
103112113113+// not ideal - t only gets called once at module evaluation time
104114const text = t`Hello World`;
115115+116116+// however, this is suitable for strings that are ephemeral:
117117+function sayHello() {
118118+ Toast.show(t`Hello World`); // Each time the toast shows, the current locale at that moment is used
119119+}
105120```
106121107122We 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.
···121136These pitfalls are memoization pitfalls that will cause the components to not re-render when the locale is changed -- causing stale translations to be shown.
122137123138```jsx
124124-import { msg } from "@lingui/macro";
139139+import { msg } from "@lingui/core/macro";
125140import { i18n } from "@lingui/core";
126141127142const welcomeMessage = msg`Welcome!`;
···11-diff --git a/node_modules/@lingui/core/dist/index.mjs b/node_modules/@lingui/core/dist/index.mjs
22-index 9759736..881f67b 100644
33---- a/node_modules/@lingui/core/dist/index.mjs
44-+++ b/node_modules/@lingui/core/dist/index.mjs
55-@@ -1,4 +1,4 @@
66--import unraw from 'unraw';
77-+import { unraw } from 'unraw';
88- import { compileMessage } from '@lingui/message-utils/compileMessage';
99-1010- const isString = (s) => typeof s === "string";
+1-1
src/App.native.tsx
···1111import * as ScreenOrientation from 'expo-screen-orientation'
1212import * as SplashScreen from 'expo-splash-screen'
1313import * as SystemUI from 'expo-system-ui'
1414-import {msg} from '@lingui/macro'
1414+import {msg} from '@lingui/core/macro'
1515import {useLingui} from '@lingui/react'
1616import * as Sentry from '@sentry/react-native'
1717
+1-1
src/App.web.tsx
···4455import {Fragment, useEffect, useState} from 'react'
66import {SafeAreaProvider} from 'react-native-safe-area-context'
77-import {msg} from '@lingui/macro'
77+import {msg} from '@lingui/core/macro'
88import {useLingui} from '@lingui/react'
99import * as Sentry from '@sentry/react-native'
1010
+1-1
src/Navigation.tsx
···22import * as Linking from 'expo-linking'
33import * as Notifications from 'expo-notifications'
44import {i18n, type MessageDescriptor} from '@lingui/core'
55-import {msg} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {
77 type BottomTabBarProps,
88 createBottomTabNavigator,
+2-1
src/ageAssurance/components/NoAccessScreen.tsx
···11import {useCallback, useEffect} from 'react'
22import {ScrollView, View} from 'react-native'
33import {useSafeAreaInsets} from 'react-native-safe-area-context'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {
89 SupportCode,
+2-1
src/ageAssurance/components/RedirectOverlay.tsx
···99} from 'react'
1010import {Dimensions, View} from 'react-native'
1111import * as Linking from 'expo-linking'
1212-import {msg, Trans} from '@lingui/macro'
1212+import {msg} from '@lingui/core/macro'
1313import {useLingui} from '@lingui/react'
1414+import {Trans} from '@lingui/react/macro'
14151516import {retry} from '#/lib/async/retry'
1617import {wait} from '#/lib/async/wait'
+2-1
src/components/AccountList.tsx
···11import React, {useCallback} from 'react'
22import {View} from 'react-native'
33import {type AppBskyActorDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {isJwtExpired} from '#/lib/jwt'
89import {sanitizeDisplayName} from '#/lib/strings/display-names'
+1-1
src/components/AppLanguageDropdown.tsx
···11import React from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44import {useQueryClient} from '@tanstack/react-query'
55
+1-1
src/components/ContextMenu/Backdrop.ios.tsx
···77 useAnimatedStyle,
88} from 'react-native-reanimated'
99import {BlurView} from 'expo-blur'
1010-import {msg} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
12121313import {atoms as a, useTheme} from '#/alf'
+1-1
src/components/ContextMenu/Backdrop.tsx
···55 type SharedValue,
66 useAnimatedStyle,
77} from 'react-native-reanimated'
88-import {msg} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
10101111import {atoms as a, useTheme} from '#/alf'
+1-1
src/components/ContextMenu/index.tsx
···4040} from 'react-native-safe-area-context'
4141import {captureRef} from 'react-native-view-shot'
4242import {Image, type ImageErrorEventData} from 'expo-image'
4343-import {msg} from '@lingui/macro'
4343+import {msg} from '@lingui/core/macro'
4444import {useLingui} from '@lingui/react'
4545import {useIsFocused} from '@react-navigation/native'
4646import flattenReactChildren from 'react-keyed-flatten-children'
+1-1
src/components/Dialog/index.tsx
···2121 useAnimatedStyle,
2222} from 'react-native-reanimated'
2323import {useSafeAreaInsets} from 'react-native-safe-area-context'
2424-import {msg} from '@lingui/macro'
2424+import {msg} from '@lingui/core/macro'
2525import {useLingui} from '@lingui/react'
26262727import {ScrollProvider} from '#/lib/ScrollContext'
+1-1
src/components/Dialog/index.web.tsx
···88 View,
99 type ViewStyle,
1010} from 'react-native'
1111-import {msg} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313import {DismissableLayer, FocusGuards, FocusScope} from 'radix-ui/internal'
1414import {RemoveScrollBar} from 'react-remove-scroll-bar'
+2-1
src/components/Error.tsx
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {useGoBack} from '#/lib/hooks/useGoBack'
67import {CenteredView} from '#/view/com/util/Views'
+2-1
src/components/FeedCard.tsx
···66 AtUri,
77 RichText as RichTextApi,
88} from '@atproto/api'
99-import {msg, Plural, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Plural, Trans} from '@lingui/react/macro'
1112import {useQueryClient} from '@tanstack/react-query'
12131314import {sanitizeHandle} from '#/lib/strings/handles'
+2-1
src/components/FeedInterstitials.tsx
···88 LinearTransition,
99} from 'react-native-reanimated'
1010import {type AppBskyFeedDefs, AtUri} from '@atproto/api'
1111-import {msg, Trans} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313+import {Trans} from '@lingui/react/macro'
1314import {useNavigation} from '@react-navigation/native'
14151516import {type NavigationProp} from '#/lib/routes/types'
+1-1
src/components/FocusScope/index.tsx
···1414 Text,
1515 View,
1616} from 'react-native'
1717-import {msg} from '@lingui/macro'
1717+import {msg} from '@lingui/core/macro'
1818import {useLingui} from '@lingui/react'
19192020import {useA11y} from '#/state/a11y'
+1-1
src/components/InterestTabs.tsx
···55 View,
66 type ViewStyle,
77} from 'react-native'
88-import {msg} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
10101111import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
+1-1
src/components/InternationalPhoneCodeSelect.tsx
···11import {Fragment, useMemo} from 'react'
22import {Text as RNText} from 'react-native'
33import {Image} from 'expo-image'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
6677import {
+3-3
src/components/KnownFollowers.tsx
···55 moderateProfile,
66 type ModerationOpts,
77} from '@atproto/api'
88-import {msg, Plural, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Plural, Trans} from '@lingui/react/macro'
10111112import {makeProfileLink} from '#/lib/routes/links'
1213import {sanitizeDisplayName} from '#/lib/strings/display-names'
···205206 one="# other"
206207 other="# others"
207208 />
208208- </Trans>
209209+ </Trans> // only 2
209210 ) : (
210210- // only 2
211211 <Trans>
212212 Followed by{' '}
213213 <Text emoji key={slice[0].profile.did} style={textStyle}>
+2-1
src/components/LabelingServiceCard/index.tsx
···11import {View} from 'react-native'
22import {type AppBskyLabelerDefs} from '@atproto/api'
33-import {msg, Plural, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Plural, Trans} from '@lingui/react/macro'
56import type React from 'react'
6778import {getLabelingServiceTitle} from '#/lib/moderation'
+1-1
src/components/LanguageSelect.tsx
···11import React from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {sanitizeAppLanguageSetting} from '#/locale/helpers'
+1-1
src/components/Layout/Header/index.tsx
···11import {createContext, useCallback, useContext} from 'react'
22import {type GestureResponderEvent, Keyboard, View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55import {useNavigation} from '@react-navigation/native'
66
+1-1
src/components/LikedByList.tsx
···11import React from 'react'
22import {type AppBskyFeedGetLikes as GetLikes} from '@atproto/api'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
+2-1
src/components/ListCard.tsx
···66 moderateUserList,
77 type ModerationUI,
88} from '@atproto/api'
99-import {msg, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Trans} from '@lingui/react/macro'
1112import {useQueryClient} from '@tanstack/react-query'
12131314import {sanitizeHandle} from '#/lib/strings/handles'
+2-1
src/components/Lists.tsx
···11import {memo} from 'react'
22import {type StyleProp, View, type ViewStyle} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {cleanError} from '#/lib/strings/errors'
78import {
+1-1
src/components/MediaPreview.tsx
···11import {type StyleProp, StyleSheet, View, type ViewStyle} from 'react-native'
22import {Image} from 'expo-image'
33import {type AppBskyFeedDefs} from '@atproto/api'
44-import {Trans} from '@lingui/macro'
44+import {Trans} from '@lingui/react/macro'
5566import {isTenorGifUri} from '#/lib/strings/embed-player'
77import {atoms as a, useTheme} from '#/alf'
+2-1
src/components/Menu/index.tsx
···66 View,
77 type ViewStyle,
88} from 'react-native'
99-import {msg, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Trans} from '@lingui/react/macro'
1112import flattenReactChildren from 'react-keyed-flatten-children'
12131314import {atoms as a, useTheme} from '#/alf'
+1-1
src/components/Menu/index.web.tsx
···66 View,
77 type ViewStyle,
88} from 'react-native'
99-import {msg} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111import {DropdownMenu} from 'radix-ui'
1212
+3-2
src/components/NewskieDialog.tsx
···11import {useMemo, useState} from 'react'
22import {View} from 'react-native'
33import {type AppBskyActorDefs, moderateProfile} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {differenceInSeconds} from 'date-fns'
7889import {HITSLOP_10} from '#/lib/constants'
···2930 const {_} = useLingui()
3031 const control = useDialogControl()
31323232- const createdAt = profile.createdAt as string | undefined
3333+ const createdAt = profile.createdAt
33343435 const [now] = useState(() => Date.now())
3536 const daysOld = useMemo(() => {
+1-1
src/components/Pills.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {BSKY_LABELER_DID, type ModerationCause} from '@atproto/api'
44-import {Trans} from '@lingui/macro'
44+import {Trans} from '@lingui/react/macro'
5566import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
77import {UserAvatar} from '#/view/com/util/UserAvatar'
+1-1
src/components/PolicyUpdateOverlay/Badge.tsx
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {Logo} from '#/view/icons/Logo'
55import {atoms as a, useTheme} from '#/alf'
···11import {useCallback} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useA11y} from '#/state/a11y'
78import {atoms as a, useTheme} from '#/alf'
···1717import {WebView} from 'react-native-webview'
1818import {Image} from 'expo-image'
1919import {type AppBskyEmbedExternal} from '@atproto/api'
2020-import {msg} from '@lingui/macro'
2020+import {msg} from '@lingui/core/macro'
2121import {useLingui} from '@lingui/react'
2222import {useNavigation} from '@react-navigation/native'
2323
+1-1
src/components/Post/Embed/ExternalEmbed/Gif.tsx
···11import {useRef, useState} from 'react'
22import {type StyleProp, View, type ViewStyle} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {clamp} from '#/lib/numbers'
+1-1
src/components/Post/Embed/ExternalEmbed/index.tsx
···22import {type StyleProp, View, type ViewStyle} from 'react-native'
33import {Image} from 'expo-image'
44import {type AppBskyEmbedExternal} from '@atproto/api'
55-import {msg} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
7788import {parseAltFromGIFDescription} from '#/lib/gif-alt-text'
···44 TouchableOpacity,
55 View,
66} from 'react-native'
77-import {msg, Trans} from '@lingui/macro'
77+import {msg} from '@lingui/core/macro'
88import {useLingui} from '@lingui/react'
99+import {Trans} from '@lingui/react/macro'
9101011import {HITSLOP_20} from '#/lib/constants'
1112import {atoms as a, useTheme} from '#/alf'
···11import {type StyleProp, type ViewStyle} from 'react-native'
22import {View} from 'react-native'
33-import {msg, plural} from '@lingui/macro'
33+import {msg, plural} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {atoms as a, useTheme} from '#/alf'
···22import {Pressable, type StyleProp, View, type ViewStyle} from 'react-native'
33import {type AppBskyEmbedVideo} from '@atproto/api'
44import {BlueskyVideoView} from '@haileyok/bluesky-video'
55-import {msg} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
7788import {HITSLOP_30} from '#/lib/constants'
···11import {useEffect, useId, useRef, useState} from 'react'
22import {View} from 'react-native'
33import {type AppBskyEmbedVideo} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66import type * as HlsTypes from 'hls.js'
77
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {atoms as a, useTheme} from '#/alf'
67import {Button, ButtonIcon, ButtonText} from '#/components/Button'
···11import {useCallback, useEffect, useRef, useState} from 'react'
22import {View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {clamp} from '#/lib/numbers'
···11import {useCallback, useEffect, useRef, useState} from 'react'
22import {Pressable, View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import type Hls from 'hls.js'
6778import {clamp} from '#/lib/numbers'
···11import {useCallback} from 'react'
22import {View} from 'react-native'
33import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
6677import {atoms as a} from '#/alf'
+2-1
src/components/Post/Embed/VideoEmbed/index.tsx
···22import {ActivityIndicator, View} from 'react-native'
33import {ImageBackground} from 'expo-image'
44import {type AppBskyEmbedVideo} from '@atproto/api'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
7889import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
910import {atoms as a, platform} from '#/alf'
···88} from 'react'
99import {View} from 'react-native'
1010import {type AppBskyEmbedVideo} from '@atproto/api'
1111-import {msg} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
13131414import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
+1-1
src/components/Post/Embed/index.tsx
···88 moderatePost,
99 RichText as RichTextAPI,
1010} from '@atproto/api'
1111-import {Trans} from '@lingui/macro'
1111+import {Trans} from '@lingui/react/macro'
1212import {useQueryClient} from '@tanstack/react-query'
13131414import {makeProfileLink} from '#/lib/routes/links'
+1-1
src/components/Post/PostRepliedTo.tsx
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {useSession} from '#/state/session'
55import {UserInfoText} from '#/view/com/util/UserInfoText'
+2-1
src/components/Post/ShowMoreTextButton.tsx
···11import {useCallback, useMemo} from 'react'
22import {LayoutAnimation, type TextStyle} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {HITSLOP_10} from '#/lib/constants'
78import {atoms as a, flatten, type TextStyleProp, useTheme} from '#/alf'
+2-1
src/components/PostControls/BookmarkButton.tsx
···11import {memo} from 'react'
22import {type Insets} from 'react-native'
33import {type AppBskyFeedDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import type React from 'react'
7889import {useCleanError} from '#/lib/hooks/useCleanError'
+1-1
src/components/PostControls/DiscoverDebug.tsx
···11import {Pressable} from 'react-native'
22import * as Clipboard from 'expo-clipboard'
33-import {t} from '@lingui/macro'
33+import {t} from '@lingui/core/macro'
4455import {DISCOVER_DEBUG_DIDS} from '#/lib/constants'
66import {useSession} from '#/state/session'
···1313 AtUri,
1414 type RichText as RichTextAPI,
1515} from '@atproto/api'
1616-import {msg, plural} from '@lingui/macro'
1616+import {msg, plural} from '@lingui/core/macro'
1717import {useLingui} from '@lingui/react'
1818import {useNavigation} from '@react-navigation/native'
1919
+1-1
src/components/PostControls/PostMenu/index.tsx
···66 type AppBskyFeedThreadgate,
77 type RichText as RichTextAPI,
88} from '@atproto/api'
99-import {msg} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
11111212import {type Shadow} from '#/state/cache/post-shadow'
+2-1
src/components/PostControls/RepostButton.tsx
···11import {memo, useCallback} from 'react'
22import {View} from 'react-native'
33-import {msg, plural, Trans} from '@lingui/macro'
33+import {msg, plural} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useHaptics} from '#/lib/haptics'
78import {useRequireAuth} from '#/state/session'
+2-3
src/components/PostControls/RepostButton.web.tsx
···11-import {msg} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
3344-import {useRequireAuth} from '#/state/session'
55-import {useSession} from '#/state/session'
44+import {useRequireAuth, useSession} from '#/state/session'
65import {EventStopper} from '#/view/com/util/EventStopper'
76import {useTheme} from '#/alf'
87import {CloseQuote_Stroke2_Corner1_Rounded as Quote} from '#/components/icons/Quote'
···11import {ScrollView, View} from 'react-native'
22import {moderateProfile, type ModerationOpts} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useNavigation} from '@react-navigation/native'
6778import {isBlockedOrBlocking, isMuted} from '#/lib/moderation/blocked-and-muted'
···11import {memo, useMemo} from 'react'
22import * as ExpoClipboard from 'expo-clipboard'
33import {AtUri} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useNavigation} from '@react-navigation/native'
7889import {makeProfileLink} from '#/lib/routes/links'
···11import {memo, useMemo} from 'react'
22import {AtUri} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useNavigation} from '@react-navigation/native'
6778import {makeProfileLink} from '#/lib/routes/links'
+1-1
src/components/PostControls/ShareMenu/index.tsx
···77 AtUri,
88 type RichText as RichTextAPI,
99} from '@atproto/api'
1010-import {msg} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
12121313import {makeProfileLink} from '#/lib/routes/links'
+1-1
src/components/PostControls/index.tsx
···66 type AppBskyFeedThreadgate,
77 type RichText as RichTextAPI,
88} from '@atproto/api'
99-import {msg, plural} from '@lingui/macro'
99+import {msg, plural} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
11111212import {CountWheel} from '#/lib/custom-animations/CountWheel'
+1-1
src/components/ProfileCard.tsx
···1111 type ModerationOpts,
1212 RichText as RichTextApi,
1313} from '@atproto/api'
1414-import {msg} from '@lingui/macro'
1414+import {msg} from '@lingui/core/macro'
1515import {useLingui} from '@lingui/react'
16161717import {getModerationCauseKey} from '#/lib/moderation'
+1-1
src/components/ProfileHoverCard/index.web.tsx
···66 type ModerationOpts,
77} from '@atproto/api'
88import {flip, offset, shift, size, useFloating} from '@floating-ui/react-dom'
99-import {msg, plural} from '@lingui/macro'
99+import {msg, plural} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111import {useNavigation} from '@react-navigation/native'
1212
+2-1
src/components/ProgressGuide/FollowDialog.tsx
···66 type ViewToken,
77} from 'react-native'
88import {type ModerationOpts} from '@atproto/api'
99-import {msg, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Trans} from '@lingui/react/macro'
11121213import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
1314import {popularInterests, useInterestsDisplayNames} from '#/lib/interests'
+2-1
src/components/ProgressGuide/List.tsx
···55 View,
66 type ViewStyle,
77} from 'react-native'
88-import {msg, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Trans} from '@lingui/react/macro'
10111112import {useProfileFollowsQuery} from '#/state/queries/profile-follows'
1213import {useSession} from '#/state/session'
+1-1
src/components/ProgressGuide/Toast.tsx
···88 withTiming,
99} from 'react-native-reanimated'
1010import {useSafeAreaInsets} from 'react-native-safe-area-context'
1111-import {msg} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
13131414import {atoms as a, useTheme} from '#/alf'
+1-1
src/components/Prompt.tsx
···11import {createContext, useCallback, useContext, useId, useMemo} from 'react'
22import {type GestureResponderEvent, View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {atoms as a, useTheme, type ViewStyleProp, web} from '#/alf'
+2-1
src/components/RichTextTag.tsx
···11import React from 'react'
22import {type StyleProp, Text as RNText, type TextStyle} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useNavigation} from '@react-navigation/native'
6778import {type NavigationProp} from '#/lib/routes/types'
+2-3
src/components/Select/index.tsx
···77 useState,
88} from 'react'
99import {View} from 'react-native'
1010-import {msg} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
12121313-import {useTheme} from '#/alf'
1414-import {atoms as a} from '#/alf'
1313+import {atoms as a, useTheme} from '#/alf'
1514import {Button, ButtonIcon, ButtonText} from '#/components/Button'
1615import * as Dialog from '#/components/Dialog'
1716import {useInteractionState} from '#/components/hooks/useInteractionState'
+1-1
src/components/StarterPack/Main/PostsList.tsx
···11import React, {useCallback} from 'react'
22import {View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {type FeedDescriptor} from '#/state/queries/post-feed'
···88 type ViewStyle,
99} from 'react-native'
1010import {type AppBskyGraphDefs} from '@atproto/api'
1111-import {msg, Trans} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313+import {Trans} from '@lingui/react/macro'
1314import {useNavigation} from '@react-navigation/native'
14151516import {useGenerateStarterPackMutation} from '#/lib/generate-starterpack'
+2-3
src/components/StarterPack/QrCode.tsx
···44import QRCode from 'react-native-qrcode-styled'
55import type ViewShot from 'react-native-view-shot'
66import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api'
77-import {Trans} from '@lingui/macro'
77+import {Trans} from '@lingui/react/macro'
8899import {Logo} from '#/view/icons/Logo'
1010import {Logotype} from '#/view/icons/Logotype'
1111-import {useTheme} from '#/alf'
1212-import {atoms as a} from '#/alf'
1111+import {atoms as a, useTheme} from '#/alf'
1312import {LinearGradientBackground} from '#/components/LinearGradientBackground'
1413import {Text} from '#/components/Typography'
1514import {IS_WEB} from '#/env'
+2-1
src/components/StarterPack/QrCodeDialog.tsx
···55import {createAssetAsync} from 'expo-media-library'
66import * as Sharing from 'expo-sharing'
77import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api'
88-import {msg, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Trans} from '@lingui/react/macro'
10111112import {logger} from '#/logger'
1213import {atoms as a, useBreakpoints} from '#/alf'
+2-1
src/components/StarterPack/ShareDialog.tsx
···11import {View} from 'react-native'
22import {Image} from 'expo-image'
33import {type AppBskyGraphDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {useSaveImageToMediaLibrary} from '#/lib/media/save-image'
89import {shareUrl} from '#/lib/sharing'
+12-3
src/components/StarterPack/StarterPackCard.tsx
···22import {View} from 'react-native'
33import {Image} from 'expo-image'
44import {AppBskyGraphStarterpack, AtUri} from '@atproto/api'
55-import {msg, Plural, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Plural, Trans} from '@lingui/react/macro'
78import {useQueryClient} from '@tanstack/react-query'
89910import {sanitizeHandle} from '#/lib/strings/handles'
···126127127128 return {
128129 to: `/starter-pack/${handleOrDid}/${rkey}`,
129129- label: AppBskyGraphStarterpack.isRecord(view.record)
130130+ label: bsky.dangerousIsType<AppBskyGraphStarterpack.Record>(
131131+ view.record,
132132+ AppBskyGraphStarterpack.isRecord,
133133+ )
130134 ? _(msg`Navigate to ${view.record.name}`)
131135 : _(msg`Navigate to starter pack`),
132136 precache,
···150154 return {rkey, handleOrDid: creator.handle || creator.did}
151155 }, [starterPack])
152156153153- if (!AppBskyGraphStarterpack.isRecord(record)) {
157157+ if (
158158+ !bsky.dangerousIsType<AppBskyGraphStarterpack.Record>(
159159+ record,
160160+ AppBskyGraphStarterpack.isRecord,
161161+ )
162162+ ) {
154163 return null
155164 }
156165
···66 type AppBskyFeedDefs,
77 type ModerationOpts,
88} from '@atproto/api'
99-import {msg, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Trans} from '@lingui/react/macro'
11121213import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
1314import {type ListMethods} from '#/view/com/util/List'
···77 type ModerationOpts,
88 type ModerationUI,
99} from '@atproto/api'
1010-import {msg, Trans} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
1212+import {Trans} from '@lingui/react/macro'
12131314import {DISCOVER_FEED_URI, STARTER_PACK_MAX_SIZE} from '#/lib/constants'
1415import {sanitizeDisplayName} from '#/lib/strings/display-names'
+1-1
src/components/TrendingTopics.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {type AtUri} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
6677import {PressableScale} from '#/lib/custom-animations/PressableScale'
+1-1
src/components/VideoPostCard.tsx
···99 AppBskyFeedPost,
1010 type ModerationDecision,
1111} from '@atproto/api'
1212-import {msg} from '@lingui/macro'
1212+import {msg} from '@lingui/core/macro'
1313import {useLingui} from '@lingui/react'
14141515import {sanitizeHandle} from '#/lib/strings/handles'
+2-1
src/components/WelcomeModal.tsx
···11import {useEffect, useState} from 'react'
22import {Pressable, View} from 'react-native'
33import {ImageBackground} from 'expo-image'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {FocusGuards, FocusScope} from 'radix-ui/internal'
7889import {useLoggedOutViewControls} from '#/state/shell/logged-out'
+2-1
src/components/WhoCanReply.tsx
···1212 type AppBskyGraphDefs,
1313 AtUri,
1414} from '@atproto/api'
1515-import {msg, Trans} from '@lingui/macro'
1515+import {msg} from '@lingui/core/macro'
1616import {useLingui} from '@lingui/react'
1717+import {Trans} from '@lingui/react/macro'
17181819import {HITSLOP_10} from '#/lib/constants'
1920import {makeListLink, makeProfileLink} from '#/lib/routes/links'
···11import {useCallback, useEffect, useState} from 'react'
22import {type ModerationOpts} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
78import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
···66 type ModerationOpts,
77 type Un$Typed,
88} from '@atproto/api'
99-import {msg, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Trans} from '@lingui/react/macro'
1112import {
1213 type InfiniteData,
1314 useMutation,
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {dateDiff, useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
67import {atoms as a, useBreakpoints, useTheme, type ViewStyleProp} from '#/alf'
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {atoms as a, select, useTheme, type ViewStyleProp} from '#/alf'
67import {AgeAssuranceConfigUnavailableError} from '#/components/ageAssurance/AgeAssuranceErrors'
···11import React from 'react'
22import {View} from 'react-native'
33import {ToolsOzoneReportDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useMutation} from '@tanstack/react-query'
7889import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
+1-1
src/components/ageAssurance/AgeAssuranceBadge.tsx
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {atoms as a, select, useTheme} from '#/alf'
55import {ShieldCheck_Stroke2_Corner0_Rounded as Shield} from '#/components/icons/Shield'
···11import {useMemo} from 'react'
22import {View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {Nux, useNux, useSaveNux} from '#/state/queries/nuxs'
···11import {View} from 'react-native'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {Nux, useNux, useSaveNux} from '#/state/queries/nuxs'
···11-import {msg, Trans} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33+import {Trans} from '@lingui/react/macro'
3445import {type ViewStyleProp} from '#/alf'
56import * as Admonition from '#/components/Admonition'
···11import {useState} from 'react'
22import {View} from 'react-native'
33import {XRPCError} from '@atproto/xrpc'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {validate as validateEmail} from 'email-validator'
7889import {useCleanError} from '#/lib/hooks/useCleanError'
···11import {useEffect, useRef, useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {retry} from '#/lib/async/retry'
78import {wait} from '#/lib/async/wait'
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {atoms as a} from '#/alf'
67import {Admonition} from '#/components/Admonition'
···11import {useMemo} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {useAgeAssurance} from '#/ageAssurance'
+2-1
src/components/contacts/FindContactsBannerNUX.tsx
···22import {View} from 'react-native'
33import {Image} from 'expo-image'
44import {LinearGradient} from 'expo-linear-gradient'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
7889import {HITSLOP_10} from '#/lib/constants'
910import {Nux, useNux, useSaveNux} from '#/state/queries/nuxs'
+1-1
src/components/contacts/components/HeroImage.tsx
···11import {View} from 'react-native'
22import {Image} from 'expo-image'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {atoms as a, useTheme} from '#/alf'
+2-1
src/components/contacts/components/InviteInfo.tsx
···11import {type StyleProp, type TextStyle} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {HITSLOP_20} from '#/lib/constants'
67import {android, atoms as a} from '#/alf'
+1-1
src/components/contacts/components/OTPInput.tsx
···55 type TextInputSelectionChangeEvent,
66 View,
77} from 'react-native'
88-import {msg} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
10101111import {mergeRefs} from '#/lib/merge-refs'
+1-1
src/components/contacts/phone-number.ts
···11-import {t} from '@lingui/macro'
11+import {t} from '@lingui/core/macro'
22import {
33 isSupportedCountry,
44 ParseError,
+2-1
src/components/contacts/screens/GetContacts.tsx
···88 AppBskyContactImportContacts,
99 type Un$Typed,
1010} from '@atproto/api'
1111-import {msg, t, Trans} from '@lingui/macro'
1111+import {msg, t} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313+import {Trans} from '@lingui/react/macro'
1314import {useMutation, useQueryClient} from '@tanstack/react-query'
14151516import {uploadBlob} from '#/lib/api'
+2-1
src/components/contacts/screens/PhoneInput.tsx
···33import {KeyboardAvoidingView} from 'react-native-keyboard-controller'
44import {useSafeAreaInsets} from 'react-native-safe-area-context'
55import {AppBskyContactStartPhoneVerification} from '@atproto/api'
66-import {msg, Trans} from '@lingui/macro'
66+import {msg} from '@lingui/core/macro'
77import {useLingui} from '@lingui/react'
88+import {Trans} from '@lingui/react/macro'
89import {useMutation} from '@tanstack/react-query'
9101011import {urls} from '#/lib/constants'
+2-1
src/components/contacts/screens/VerifyNumber.tsx
···44 AppBskyContactStartPhoneVerification,
55 AppBskyContactVerifyPhone,
66} from '@atproto/api'
77-import {msg, Trans} from '@lingui/macro'
77+import {msg} from '@lingui/core/macro'
88import {useLingui} from '@lingui/react'
99+import {Trans} from '@lingui/react/macro'
910import {useMutation} from '@tanstack/react-query'
10111112import {clamp} from '#/lib/numbers'
+2-1
src/components/contacts/screens/ViewMatches.tsx
···33import {useSafeAreaInsets} from 'react-native-safe-area-context'
44import * as SMS from 'expo-sms'
55import {type ModerationOpts} from '@atproto/api'
66-import {msg, Plural, Trans} from '@lingui/macro'
66+import {msg} from '@lingui/core/macro'
77import {useLingui} from '@lingui/react'
88+import {Plural, Trans} from '@lingui/react/macro'
89import {useMutation, useQueryClient} from '@tanstack/react-query'
9101011import {wait} from '#/lib/async/wait'
+2-1
src/components/dialogs/BirthDateSettings.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useCleanError} from '#/lib/hooks/useCleanError'
78import {isAppPassword} from '#/lib/jwt'
···11import {useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {wait} from '#/lib/async/wait'
78import {isNetworkError, useCleanError} from '#/lib/hooks/useCleanError'
···11import {useState} from 'react'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {wait} from '#/lib/async/wait'
67import {atoms as a, type TextStyleProp, useTheme} from '#/alf'
···11import {type TextInputProps, View} from 'react-native'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import * as TextField from '#/components/forms/TextField'
+1-1
src/components/dialogs/EmailDialog/index.tsx
···11import {useCallback, useState} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {web} from '#/alf'
···11import {useReducer, useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {wait} from '#/lib/async/wait'
78import {useCleanError} from '#/lib/hooks/useCleanError'
···11import {useReducer} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {wait} from '#/lib/async/wait'
78import {useCleanError} from '#/lib/hooks/useCleanError'
···11import {useEffect, useState} from 'react'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {useAccountEmailState} from '#/components/dialogs/EmailDialog/data/useAccountEmailState'
55import {Disable} from '#/components/dialogs/EmailDialog/screens/Manage2FA/Disable'
···11import {useReducer} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {validate as validateEmail} from 'email-validator'
6778import {wait} from '#/lib/async/wait'
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {atoms as a, platform, tokens, useBreakpoints, useTheme} from '#/alf'
67import {Button, ButtonText} from '#/components/Button'
···11import {useReducer} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {wait} from '#/lib/async/wait'
78import {useCleanError} from '#/lib/hooks/useCleanError'
+2-1
src/components/dialogs/Embed.tsx
···11import {memo, useEffect, useMemo, useState} from 'react'
22import {View} from 'react-native'
33import {type AppBskyActorDefs, type AppBskyFeedPost, AtUri} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {EMBED_SCRIPT} from '#/lib/constants'
89import {niceDate} from '#/lib/strings/time'
+2-1
src/components/dialogs/EmbedConsent.tsx
···11import {useCallback} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {
78 type EmbedPlayerSource,
+2-1
src/components/dialogs/GifSelect.tsx
···88import {type TextInput, View} from 'react-native'
99import {useWindowDimensions} from 'react-native'
1010import {Image} from 'expo-image'
1111-import {msg, Trans} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313+import {Trans} from '@lingui/react/macro'
13141415import {cleanError} from '#/lib/strings/errors'
1516import {
+2-1
src/components/dialogs/InAppBrowserConsent.tsx
···11import {useCallback} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useOpenLink} from '#/lib/hooks/useOpenLink'
78import {useSetInAppBrowser} from '#/state/preferences/in-app-browser'
+2-1
src/components/dialogs/LanguageSelectDialog.tsx
···11import {useCallback, useMemo, useState} from 'react'
22import {useWindowDimensions, View} from 'react-native'
33import {useSafeAreaInsets} from 'react-native-safe-area-context'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {languageName} from '#/locale/helpers'
89import {type Language, LANGUAGES, LANGUAGES_MAP_CODE2} from '#/locale/languages'
+2-1
src/components/dialogs/LinkWarning.tsx
···11import {useCallback, useMemo} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useOpenLink} from '#/lib/hooks/useOpenLink'
78import {shareUrl} from '#/lib/sharing'
+2-1
src/components/dialogs/MutedWords.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {type AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {logger} from '#/logger'
89import {
···55 type AppBskyFeedPostgate,
66 AtUri,
77} from '@atproto/api'
88-import {msg, Plural, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Plural, Trans} from '@lingui/react/macro'
1011import {useQueryClient} from '@tanstack/react-query'
11121213import {useHaptics} from '#/lib/haptics'
+2-1
src/components/dialogs/SearchablePeopleList.tsx
···88} from 'react'
99import {TextInput, View} from 'react-native'
1010import {moderateProfile, type ModerationOpts} from '@atproto/api'
1111-import {msg, Trans} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313+import {Trans} from '@lingui/react/macro'
13141415import {sanitizeDisplayName} from '#/lib/strings/display-names'
1516import {sanitizeHandle} from '#/lib/strings/handles'
+2-1
src/components/dialogs/ServerInput.tsx
···11import {useCallback, useImperativeHandle, useRef, useState} from 'react'
22import {useWindowDimensions, View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {BSKY_SERVICE} from '#/lib/constants'
78import * as persisted from '#/state/persisted'
+2-1
src/components/dialogs/Signin.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useLoggedOutViewControls} from '#/state/shell/logged-out'
78import {useCloseAllActiveElements} from '#/state/util'
+2-1
src/components/dialogs/StarterPackDialog.tsx
···44 type AppBskyGraphGetStarterPacksWithMembership,
55 AppBskyGraphStarterpack,
66} from '@atproto/api'
77-import {msg, Plural, Trans} from '@lingui/macro'
77+import {msg} from '@lingui/core/macro'
88import {useLingui} from '@lingui/react'
99+import {Plural, Trans} from '@lingui/react/macro'
910import {useNavigation} from '@react-navigation/native'
10111112import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
+2-1
src/components/dialogs/SwitchAccount.tsx
···11import {useCallback} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher'
78import {type SessionAccount, useSession} from '#/state/session'
···88 type ComAtprotoRepoApplyWrites,
99} from '@atproto/api'
1010import {TID} from '@atproto/common-web'
1111-import {msg, Trans} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313+import {Trans} from '@lingui/react/macro'
1314import {useNavigation} from '@react-navigation/native'
1415import {useQueryClient} from '@tanstack/react-query'
1516import chunk from 'lodash.chunk'
···11import {useCallback, useEffect, useMemo, useState} from 'react'
22import {useWindowDimensions, View} from 'react-native'
33import {type AppBskyGraphDefs, RichText as RichTextAPI} from '@atproto/api'
44-import {msg, Plural, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Plural, Trans} from '@lingui/react/macro'
6778import {cleanError} from '#/lib/strings/errors'
89import {isOverMaxGraphemeCount} from '#/lib/strings/helpers'
···11import {useCallback, useMemo} from 'react'
22import {View} from 'react-native'
33import {type AppBskyGraphDefs, type ModerationOpts} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {cleanError} from '#/lib/strings/errors'
89import {useModerationOpts} from '#/state/preferences/moderation-opts'
···11import {useCallback} from 'react'
22import {View} from 'react-native'
33import {Image} from 'expo-image'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {atoms as a, useTheme, web} from '#/alf'
89import {Button, ButtonText} from '#/components/Button'
···22import {View} from 'react-native'
33import {Image} from 'expo-image'
44import {LinearGradient} from 'expo-linear-gradient'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
7889import {atoms as a, useTheme, web} from '#/alf'
910import {transparentifyColor} from '#/alf/util/colorGeneration'
···22import {View} from 'react-native'
33import {Image} from 'expo-image'
44import {LinearGradient} from 'expo-linear-gradient'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
7889import {atoms as a, useTheme, web} from '#/alf'
910import {Button, ButtonText} from '#/components/Button'
···22import {View} from 'react-native'
33import {Image} from 'expo-image'
44import {LinearGradient} from 'expo-linear-gradient'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
7889import {atoms as a, useTheme, web} from '#/alf'
910import {Button, ButtonText} from '#/components/Button'
···11import {useCallback} from 'react'
22import {View} from 'react-native'
33import {Image} from 'expo-image'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {urls} from '#/lib/constants'
89import {atoms as a, useBreakpoints, useTheme} from '#/alf'
+2-1
src/components/dialogs/nuxs/LiveNowBetaDialog.tsx
···22import {View} from 'react-native'
33import {Image} from 'expo-image'
44import {LinearGradient} from 'expo-linear-gradient'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
7889import {atoms as a, select, useTheme, utils, web} from '#/alf'
910import {Button, ButtonText} from '#/components/Button'
+1-1
src/components/dms/ActionsWrapper.tsx
···11import {View} from 'react-native'
22import {type ChatBskyConvoDefs} from '@atproto/api'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {atoms as a} from '#/alf'
+1-1
src/components/dms/ActionsWrapper.web.tsx
···11import {useCallback, useRef, useState} from 'react'
22import {Pressable, View} from 'react-native'
33import {type ChatBskyConvoDefs} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
6677import {useConvoActive} from '#/state/messages/convo'
+2-1
src/components/dms/AfterReportDialog.tsx
···11import {memo, useState} from 'react'
22import {View} from 'react-native'
33import {type AppBskyActorDefs, type ChatBskyConvoDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {StackActions, useNavigation} from '@react-navigation/native'
78import type React from 'react'
89
+1-1
src/components/dms/BlockedByListDialog.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {type ModerationCause} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
6677import {listUriToHref} from '#/lib/strings/url-helpers'
+1-1
src/components/dms/ChatEmptyPill.tsx
···66 useSharedValue,
77 withTiming,
88} from 'react-native-reanimated'
99-import {msg} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
11111212import {ScaleAndFadeIn} from '#/lib/custom-animations/ScaleAndFade'
+2-1
src/components/dms/ConvoMenu.tsx
···11import React, {useCallback} from 'react'
22import {Keyboard, View} from 'react-native'
33import {type ChatBskyConvoDefs, type ModerationCause} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useNavigation} from '@react-navigation/native'
7889import {type NavigationProp} from '#/lib/routes/types'
+2-1
src/components/dms/DateDivider.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {subDays} from 'date-fns'
6778import {atoms as a, useTheme} from '#/alf'
+2-1
src/components/dms/EmojiPopup.android.tsx
···11import {useState} from 'react'
22import {Modal, Pressable, View} from 'react-native'
33import {SafeAreaView} from 'react-native-safe-area-context'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {atoms as a, useTheme} from '#/alf'
89import {Button, ButtonIcon} from '#/components/Button'
+1-1
src/components/dms/EmojiReactionPicker.tsx
···11import {useMemo, useState} from 'react'
22import {useWindowDimensions, View} from 'react-native'
33import {type ChatBskyConvoDefs} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
6677import {useSession} from '#/state/session'
+1-1
src/components/dms/EmojiReactionPicker.web.tsx
···22import {Pressable, View} from 'react-native'
33import {type ChatBskyConvoDefs} from '@atproto/api'
44import EmojiPicker from '@emoji-mart/react'
55-import {msg} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77import {DropdownMenu} from 'radix-ui'
88
+1-1
src/components/dms/LeaveConvoPrompt.tsx
···11-import {msg} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33import {StackActions, useNavigation} from '@react-navigation/native'
44
+1-1
src/components/dms/MessageContextMenu.tsx
···22import {LayoutAnimation} from 'react-native'
33import * as Clipboard from 'expo-clipboard'
44import {type ChatBskyConvoDefs, RichText} from '@atproto/api'
55-import {msg} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
7788import {useTranslate} from '#/lib/hooks/useTranslate'
+1-1
src/components/dms/MessageItem.tsx
···1717 RichText as RichTextAPI,
1818} from '@atproto/api'
1919import {type I18n} from '@lingui/core'
2020-import {msg} from '@lingui/macro'
2020+import {msg} from '@lingui/core/macro'
2121import {useLingui} from '@lingui/react'
22222323import {sanitizeDisplayName} from '#/lib/strings/display-names'
+2-1
src/components/dms/MessageProfileButton.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {type AppBskyActorDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useNavigation} from '@react-navigation/native'
7889import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
+2-1
src/components/dms/MessagesListBlockedFooter.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {type ModerationDecision} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {useProfileShadow} from '#/state/cache/profile-shadow'
89import {useProfileBlockMutationQueue} from '#/state/queries/profile'
+1-1
src/components/dms/MessagesListHeader.tsx
···55 type ModerationCause,
66 type ModerationDecision,
77} from '@atproto/api'
88-import {msg} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
10101111import {makeProfileLink} from '#/lib/routes/links'
+1-1
src/components/dms/NewMessagesPill.tsx
···77 withTiming,
88} from 'react-native-reanimated'
99import {useSafeAreaInsets} from 'react-native-safe-area-context'
1010-import {Trans} from '@lingui/macro'
1010+import {Trans} from '@lingui/react/macro'
11111212import {
1313 ScaleAndFadeIn,
+1-1
src/components/dms/ReportConversationPrompt.tsx
···11-import {msg} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
3344import {type DialogControlProps} from '#/components/Dialog'
+2-1
src/components/dms/dialogs/NewChatDialog.tsx
···11import {useCallback} from 'react'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
67import {logger} from '#/logger'
+1-1
src/components/dms/dialogs/ShareViaChatDialog.tsx
···11import {useCallback} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {logger} from '#/logger'
+2-1
src/components/forms/DateField/index.tsx
···11import {useCallback, useImperativeHandle} from 'react'
22import {Keyboard, View} from 'react-native'
33import DatePicker from 'react-native-date-picker'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {atoms as a, useTheme} from '#/alf'
89import {Button, ButtonText} from '#/components/Button'
+2-1
src/components/forms/HostingProvider.tsx
···11import React from 'react'
22import {Keyboard, View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {toNiceDomain} from '#/lib/strings/url-helpers'
78import {atoms as a, tokens, useTheme} from '#/alf'
+1-1
src/components/forms/SearchInput.tsx
···11import React from 'react'
22import {type TextInput, View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {HITSLOP_10} from '#/lib/constants'
+1-1
src/components/hooks/useFollowMethods.ts
···11import React from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {logger} from '#/logger'
+1-1
src/components/images/AutoSizedImage.tsx
···77import {Image} from 'expo-image'
88import {type AppBskyEmbedImages} from '@atproto/api'
99import {utils} from '@bsky.app/alf'
1010-import {msg} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
12121313import {type Dimensions} from '#/lib/media/types'
+1-1
src/components/images/Gallery.tsx
···33import {Image, type ImageStyle} from 'expo-image'
44import {type AppBskyEmbedImages} from '@atproto/api'
55import {utils} from '@bsky.app/alf'
66-import {msg} from '@lingui/macro'
66+import {msg} from '@lingui/core/macro'
77import {useLingui} from '@lingui/react'
8899import {type Dimensions} from '#/lib/media/types'
···11import {useEffect, useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useAgent, useSession} from '#/state/session'
78import {atoms as a, useBreakpoints, useTheme} from '#/alf'
+1-1
src/components/interstitials/Trending.tsx
···11import React from 'react'
22import {ScrollView, View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {
+2-1
src/components/interstitials/TrendingVideos.tsx
···11import {useCallback, useEffect, useMemo} from 'react'
22import {ScrollView, View} from 'react-native'
33import {AppBskyEmbedVideo, AtUri} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useQueryClient} from '@tanstack/react-query'
7889import {VIDEO_FEED_URI} from '#/lib/constants'
+2-1
src/components/moderation/ContentHider.tsx
···66 type ViewStyle,
77} from 'react-native'
88import {type ModerationUI} from '@atproto/api'
99-import {msg, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Trans} from '@lingui/react/macro'
11121213import {
1314 ADULT_CONTENT_LABELS,
+2-1
src/components/moderation/LabelPreference.tsx
···33 type InterpretedLabelValueDefinition,
44 type LabelPreference,
55} from '@atproto/api'
66-import {msg, Trans} from '@lingui/macro'
66+import {msg} from '@lingui/core/macro'
77import {useLingui} from '@lingui/react'
88+import {Trans} from '@lingui/react/macro'
89910import {useGlobalLabelStrings} from '#/lib/moderation/useGlobalLabelStrings'
1011import {useLabelBehaviorDescription} from '#/lib/moderation/useLabelBehaviorDescription'
+2-1
src/components/moderation/LabelsOnMe.tsx
···11import {type StyleProp, View, type ViewStyle} from 'react-native'
22import {type AppBskyFeedDefs, type ComAtprotoLabelDefs} from '@atproto/api'
33-import {msg, Plural, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Plural, Trans} from '@lingui/react/macro'
5667import {useSession} from '#/state/session'
78import {atoms as a} from '#/alf'
+2-1
src/components/moderation/LabelsOnMeDialog.tsx
···22import {View} from 'react-native'
33import {type ComAtprotoLabelDefs, ToolsOzoneReportDefs} from '@atproto/api'
44import {XRPCError} from '@atproto/xrpc'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
78import {useMutation} from '@tanstack/react-query'
89910import {useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
···11import {View} from 'react-native'
22import {type ModerationCause} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
78import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
+2-1
src/components/moderation/PostHider.tsx
···1212 type ModerationCause,
1313 type ModerationUI,
1414} from '@atproto/api'
1515-import {msg, Trans} from '@lingui/macro'
1515+import {msg} from '@lingui/core/macro'
1616import {useLingui} from '@lingui/react'
1717+import {Trans} from '@lingui/react/macro'
1718import {useQueryClient} from '@tanstack/react-query'
18191920import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
+1-1
src/components/moderation/ReportDialog/action.ts
···33 type ChatBskyConvoDefs,
44 type ComAtprotoModerationCreateReport,
55} from '@atproto/api'
66-import {msg} from '@lingui/macro'
66+import {msg} from '@lingui/core/macro'
77import {useLingui} from '@lingui/react'
88import {useMutation} from '@tanstack/react-query'
99
+1-1
src/components/moderation/ReportDialog/copy.ts
···11import {useMemo} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {type ParsedReportSubject} from './types'
+3-4
src/components/moderation/ReportDialog/index.tsx
···11import React from 'react'
22import {Pressable, type ScrollView, View} from 'react-native'
33import {type AppBskyLabelerDefs, BSKY_LABELER_DID} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {wait} from '#/lib/async/wait'
89import {getLabelingServiceTitle} from '#/lib/moderation'
···168169 if (supportedReasonTypes === undefined) return true
169170 return (
170171 // supports new reason type
171171- supportedReasonTypes.includes(state.selectedOption.reason) ||
172172- // supports old reason type (backwards compat)
172172+ supportedReasonTypes.includes(state.selectedOption.reason) || // supports old reason type (backwards compat)
173173 supportedReasonTypes.includes(
174174 NEW_TO_OLD_REASONS_MAP[state.selectedOption.reason],
175175 )
···575575 )}
576576 </StepOuter>
577577 </View>
578578-579578 <Dialog.Close />
580579 </Dialog.ScrollableInner>
581580 )
···11import {useMemo} from 'react'
22import {ToolsOzoneReportDefs as OzoneReportDefs} from '@atproto/api'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566export type ReportCategory =
···247247 }
248248249249 return {
250250- categories: Object.values(categories) as ReportCategoryConfig[],
250250+ categories: Object.values(categories),
251251 getCategory(reasonName: ReportCategory) {
252252 return categories[reasonName]
253253 },
+2-1
src/components/moderation/ScreenHider.tsx
···66 type ViewStyle,
77} from 'react-native'
88import {type ModerationUI} from '@atproto/api'
99-import {msg, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Trans} from '@lingui/react/macro'
1112import {useNavigation} from '@react-navigation/native'
12131314import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
···11import {View} from 'react-native'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {type Shadow} from '#/state/cache/types'
···11import {useCallback, useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {logger} from '#/logger'
78import {useModerationOpts} from '#/state/preferences/moderation-opts'
···11import {useCallback} from 'react'
22import {type AppBskyActorDefs} from '@atproto/api'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {logger} from '#/logger'
···11import {View} from 'react-native'
22import {type AppBskyActorDefs} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {urls} from '#/lib/constants'
78import {getUserDisplayName} from '#/lib/getUserDisplayName'
+2-1
src/components/verification/VerifierDialog.tsx
···11import {Text as RNText, View} from 'react-native'
22import {Image} from 'expo-image'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {urls} from '#/lib/constants'
78import {getUserDisplayName} from '#/lib/getUserDisplayName'
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {useTrendingSettings} from '#/state/preferences/trending'
67import {atoms as a, useLayoutBreakpoints} from '#/alf'
···22import {View} from 'react-native'
33import {Image} from 'expo-image'
44import {LinearGradient} from 'expo-linear-gradient'
55-import {msg} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
7788import {useCallOnce} from '#/lib/once'
···22import {View} from 'react-native'
33import {Image} from 'expo-image'
44import {LinearGradient} from 'expo-linear-gradient'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
7889import {useCallOnce} from '#/lib/once'
910import {isBskyCustomFeedUrl} from '#/lib/strings/url-helpers'
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {useCleanError} from '#/lib/hooks/useCleanError'
67import {atoms as a, web} from '#/alf'
···11-import {msg, Trans} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33+import {Trans} from '@lingui/react/macro'
3445import * as SettingsList from '#/screens/Settings/components/SettingsList'
56import * as Toggle from '#/components/forms/Toggle'
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {atoms as a} from '#/alf'
67import {Button} from '#/components/Button'
···55 AppBskyActorStatus,
66 type AppBskyEmbedExternal,
77} from '@atproto/api'
88-import {msg, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Trans} from '@lingui/react/macro'
1011import {differenceInMinutes} from 'date-fns'
11121213import {useDebouncedValue} from '#/lib/hooks/useDebouncedValue'
+2-1
src/features/liveNow/components/GoLiveDialog.tsx
···11import {useCallback, useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useDebouncedValue} from '#/lib/hooks/useDebouncedValue'
78import {cleanError} from '#/lib/strings/errors'
···11import {useCallback, useState} from 'react'
22import {View} from 'react-native'
33import {type AppBskyActorDefs, ToolsOzoneReportDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useMutation} from '@tanstack/react-query'
7889import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
+1-1
src/features/liveNow/components/LinkPreview.tsx
···11import {useState} from 'react'
22import {View} from 'react-native'
33import {Image} from 'expo-image'
44-import {Trans} from '@lingui/macro'
44+import {Trans} from '@lingui/react/macro'
5566import {type LinkMeta} from '#/lib/link-meta/link-meta'
77import {toNiceDomain} from '#/lib/strings/url-helpers'
+1-1
src/features/liveNow/components/LiveIndicator.tsx
···11import {type StyleProp, View, type ViewStyle} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {atoms as a, tokens, useTheme} from '#/alf'
55import {Text} from '#/components/Typography'
···22import {View} from 'react-native'
33import {Image} from 'expo-image'
44import {type AppBskyActorDefs, type AppBskyEmbedExternal} from '@atproto/api'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
78import {useNavigation} from '@react-navigation/native'
89import {useQueryClient} from '@tanstack/react-query'
910
+1-1
src/features/liveNow/index.tsx
···88 ComAtprotoRepoPutRecord,
99} from '@atproto/api'
1010import {retry} from '@atproto/common-web'
1111-import {msg} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
1414import {isAfter, parseISO} from 'date-fns'
+1-1
src/features/liveNow/utils.ts
···11import {type I18n} from '@lingui/core'
22-import {plural} from '@lingui/macro'
22+import {plural} from '@lingui/core/macro'
33import psl from 'psl'
4455export function displayDuration(i18n: I18n, durationInMinutes: number) {
+1-1
src/lib/api/index.ts
···1616} from '@atproto/api'
1717import {TID} from '@atproto/common-web'
1818import * as dcbor from '@ipld/dag-cbor'
1919-import {t} from '@lingui/macro'
1919+import {t} from '@lingui/core/macro'
2020import {type QueryClient} from '@tanstack/react-query'
2121import {sha256} from 'js-sha256'
2222import {CID} from 'multiformats/cid'
+1-1
src/lib/generate-starterpack.ts
···66 type ComAtprotoRepoApplyWrites,
77 type Facet,
88} from '@atproto/api'
99-import {msg} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111import {useMutation} from '@tanstack/react-query'
1212
+1-1
src/lib/hooks/useAccountSwitcher.ts
···11import {useCallback, useState} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {logger} from '#/logger'
+1-1
src/lib/hooks/useCleanError.ts
···11import {useCallback} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455type CleanedError = {
+1-1
src/lib/hooks/useCreateSupportLink.ts
···11import {useCallback} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {useSession} from '#/state/session'
+1-1
src/lib/hooks/useNotificationHandler.ts
···11import {useEffect} from 'react'
22import * as Notifications from 'expo-notifications'
33import {AtUri} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66import {CommonActions, useNavigation} from '@react-navigation/native'
77import {useQueryClient} from '@tanstack/react-query'
+1-1
src/lib/hooks/useOpenComposer.tsx
···11import {useMemo} from 'react'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
55import {useOpenComposer as useRootOpenComposer} from '#/state/shell/composer'
+1-1
src/lib/hooks/useTimeAgo.ts
···11import {useCallback} from 'react'
22import {type I18n} from '@lingui/core'
33-import {defineMessage, msg, plural} from '@lingui/macro'
33+import {defineMessage, msg, plural} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55import {differenceInSeconds} from 'date-fns'
66
+1-1
src/lib/interests.ts
···11import {useMemo} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455export const interests = [
+1-1
src/lib/media/picker.shared.ts
···33 launchImageLibraryAsync,
44 UIImagePickerPreferredAssetRepresentationMode,
55} from 'expo-image-picker'
66-import {t} from '@lingui/macro'
66+import {t} from '@lingui/core/macro'
7788import {type ImageMeta} from '#/state/gallery'
99import * as Toast from '#/view/com/util/Toast'
+1-1
src/lib/media/picker.tsx
···22import ExpoImageCropTool, {
33 type OpenCropperOptions,
44} from '@bsky.app/expo-image-crop-tool'
55-import {t} from '@lingui/macro'
55+import {t} from '@lingui/core/macro'
6677export {
88 openPicker,
+1-1
src/lib/media/save-image.ios.ts
···11import {useCallback} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import * as Toast from '#/components/Toast'
+1-1
src/lib/media/save-image.ts
···11import {useCallback} from 'react'
22import * as MediaLibrary from 'expo-media-library'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import * as Toast from '#/components/Toast'
+1-1
src/lib/media/video/upload.shared.ts
···11import {type BskyAgent} from '@atproto/api'
22import {type I18n} from '@lingui/core'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
4455import {VIDEO_SERVICE_DID} from '#/lib/constants'
66import {UploadLimitError} from '#/lib/media/video/errors'
+1-1
src/lib/media/video/upload.ts
···11import {createUploadTask, FileSystemUploadType} from 'expo-file-system/legacy'
22import {type AppBskyVideoDefs, type BskyAgent} from '@atproto/api'
33import {type I18n} from '@lingui/core'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {nanoid} from 'nanoid/non-secure'
6677import {AbortError} from '#/lib/async/cancelable'
+2-3
src/lib/media/video/upload.web.ts
···11-import {type AppBskyVideoDefs} from '@atproto/api'
22-import {type BskyAgent} from '@atproto/api'
11+import {type AppBskyVideoDefs, type BskyAgent} from '@atproto/api'
32import {type I18n} from '@lingui/core'
44-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
54import {nanoid} from 'nanoid/non-secure'
6576import {AbortError} from '#/lib/async/cancelable'
+1-1
src/lib/moderation/useGlobalLabelStrings.ts
···11import {useMemo} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455export type GlobalLabelStrings = Record<
+1-1
src/lib/moderation/useLabelBehaviorDescription.ts
···22 type InterpretedLabelValueDefinition,
33 type LabelPreference,
44} from '@atproto/api'
55-import {msg} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
7788export function useLabelBehaviorDescription(
···44 type ModerationCause,
55 type ModerationCauseSource,
66} from '@atproto/api'
77-import {msg} from '@lingui/macro'
77+import {msg} from '@lingui/core/macro'
88import {useLingui} from '@lingui/react'
991010import {sanitizeHandle} from '#/lib/strings/handles'
+1-2
src/lib/sharing.ts
···11import {Share} from 'react-native'
22// import * as Sharing from 'expo-sharing'
33import {setStringAsync} from 'expo-clipboard'
44-// TODO: replace global i18n instance with one returned from useLingui -sfn
55-import {t} from '@lingui/macro'
44+import {t} from '@lingui/core/macro'
6576import * as Toast from '#/view/com/util/Toast'
87import {IS_ANDROID, IS_IOS} from '#/env'
+1-1
src/lib/strings/errors.ts
···11import {XRPCError} from '@atproto/xrpc'
22-import {t} from '@lingui/macro'
22+import {t} from '@lingui/core/macro'
3344export function cleanError(str: any): string {
55 if (!str) {
+1-1
src/lib/strings/time.ts
···11import {type I18n} from '@lingui/core'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
3344export function niceDate(
55 i18n: I18n,
+2-1
src/screens/Bookmarks/components/EmptyState.tsx
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {atoms as a, useTheme} from '#/alf'
67import {ButtonText} from '#/components/Button'
+2-1
src/screens/Bookmarks/index.tsx
···55 type AppBskyBookmarkDefs,
66 AppBskyFeedDefs,
77} from '@atproto/api'
88-import {msg, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Trans} from '@lingui/react/macro'
1011import {
1112 type NavigationProp,
1213 useFocusEffect,
+2-1
src/screens/Deactivated.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {useSafeAreaInsets} from 'react-native-safe-area-context'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useQueryClient} from '@tanstack/react-query'
7889import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher'
+2-1
src/screens/Feeds/NoFollowingFeed.tsx
···11import {type GestureResponderEvent, View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {TIMELINE_SAVED_FEED} from '#/lib/constants'
67import {useAddSavedFeedsMutation} from '#/state/queries/preferences'
+2-1
src/screens/Feeds/NoSavedFeedsOfAnyType.tsx
···11import {View} from 'react-native'
22import {TID} from '@atproto/common-web'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {RECOMMENDED_SAVED_FEEDS} from '#/lib/constants'
78import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences'
+1-1
src/screens/FindContactsFlowScreen.tsx
···11import {useCallback, useLayoutEffect, useState} from 'react'
22import {LayoutAnimationConfig} from 'react-native-reanimated'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55import {usePreventRemove} from '@react-navigation/native'
66
+3-2
src/screens/Hashtag.tsx
···11import React from 'react'
22import {type ListRenderItemInfo, View} from 'react-native'
33import {type AppBskyFeedDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useFocusEffect} from '@react-navigation/native'
78import {type NativeStackScreenProps} from '@react-navigation/native-stack'
89···6465 }, [fullTag, isCashtag])
65666667 const sanitizedAuthor = React.useMemo(() => {
6767- if (!author) return
6868+ if (!author) return ''
6869 return sanitizeHandle(author)
6970 }, [author])
7071
+2-1
src/screens/Home/NoFeedsPinned.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {TID} from '@atproto/common-web'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants'
89import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences'
+7-3
src/screens/List/ListHiddenScreen.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {AppBskyGraphDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useQueryClient} from '@tanstack/react-query'
7889import {useGoBack} from '#/lib/hooks/useGoBack'
910import {sanitizeHandle} from '#/lib/strings/handles'
1011import {logger} from '#/logger'
1111-import {RQKEY_ROOT as listQueryRoot} from '#/state/queries/list'
1212-import {useListBlockMutation, useListMuteMutation} from '#/state/queries/list'
1212+import {
1313+ RQKEY_ROOT as listQueryRoot,
1414+ useListBlockMutation,
1515+ useListMuteMutation,
1616+} from '#/state/queries/list'
1317import {
1418 type UsePreferencesQueryResponse,
1519 useRemoveFeedMutation,
+4-5
src/screens/Log.tsx
···11import {useCallback, useState} from 'react'
22-import {LayoutAnimation, View} from 'react-native'
33-import {Pressable} from 'react-native'
44-import {msg, Trans} from '@lingui/macro'
22+import {LayoutAnimation, Pressable, View} from 'react-native'
33+import {msg} from '@lingui/core/macro'
54import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
66import {useFocusEffect} from '@react-navigation/native'
7788import {useGetTimeAgo} from '#/lib/hooks/useTimeAgo'
···1111 type NativeStackScreenProps,
1212} from '#/lib/routes/types'
1313import {getEntries} from '#/logger/logDump'
1414-import {useTickEveryMinute} from '#/state/shell'
1515-import {useSetMinimalShellMode} from '#/state/shell'
1414+import {useSetMinimalShellMode, useTickEveryMinute} from '#/state/shell'
1615import {atoms as a, useTheme} from '#/alf'
1716import {
1817 ChevronBottom_Stroke2_Corner0_Rounded as ChevronBottomIcon,
+2-1
src/screens/Login/ChooseAccountForm.tsx
···11import {useCallback, useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {logger} from '#/logger'
78import {type SessionAccount, useSession, useSessionApi} from '#/state/session'
+2-1
src/screens/Login/ForgotPasswordForm.tsx
···11import React, {useState} from 'react'
22import {Keyboard, View} from 'react-native'
33import {type ComAtprotoServerDescribeServer} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import * as EmailValidator from 'email-validator'
7889import {cleanError, isNetworkError} from '#/lib/strings/errors'
+2-1
src/screens/Login/LoginForm.tsx
···44 ComAtprotoServerCreateSession,
55 type ComAtprotoServerDescribeServer,
66} from '@atproto/api'
77-import {msg, Trans} from '@lingui/macro'
77+import {msg} from '@lingui/core/macro'
88import {useLingui} from '@lingui/react'
99+import {Trans} from '@lingui/react/macro'
9101011import {useRequestNotificationsPermission} from '#/lib/notifications/notifications'
1112import {cleanError, isNetworkError} from '#/lib/strings/errors'
+2-1
src/screens/Login/PasswordUpdatedForm.tsx
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {atoms as a, useBreakpoints, web} from '#/alf'
67import {Button, ButtonText} from '#/components/Button'
+2-1
src/screens/Login/SetNewPasswordForm.tsx
···11import {useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {cleanError, isNetworkError} from '#/lib/strings/errors'
78import {checkAndFormatResetCode} from '#/lib/strings/password'
···11import {useContext} from 'react'
22import {type GestureResponderEvent, View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {HITSLOP_30} from '#/lib/constants'
+1-1
src/screens/Login/index.tsx
···11import {useEffect, useRef, useState} from 'react'
22import {KeyboardAvoidingView} from 'react-native'
33import Animated, {FadeIn, LayoutAnimationConfig} from 'react-native-reanimated'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
6677import {DEFAULT_SERVICE} from '#/lib/constants'
+7-2
src/screens/Messages/ChatList.tsx
···22import {View} from 'react-native'
33import {useAnimatedRef} from 'react-native-reanimated'
44import {type ChatBskyActorDefs, type ChatBskyConvoDefs} from '@atproto/api'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
78import {useFocusEffect, useIsFocused} from '@react-navigation/native'
89import {type NativeStackScreenProps} from '@react-navigation/native-stack'
910···188189 ]
189190 : []),
190191 ...conversations.map(
191191- convo => ({type: 'CONVERSATION', conversation: convo}) as const,
192192+ convo =>
193193+ ({
194194+ type: 'CONVERSATION',
195195+ conversation: convo,
196196+ }) as const,
192197 ),
193198 ] satisfies ListItem[]
194199 }
+2-1
src/screens/Messages/Conversation.tsx
···55 moderateProfile,
66 type ModerationDecision,
77} from '@atproto/api'
88-import {msg, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Trans} from '@lingui/react/macro'
1011import {
1112 type RouteProp,
1213 useFocusEffect,
+2-1
src/screens/Messages/Inbox.tsx
···44 type ChatBskyConvoDefs,
55 type ChatBskyConvoListConvos,
66} from '@atproto/api'
77-import {msg, Trans} from '@lingui/macro'
77+import {msg} from '@lingui/core/macro'
88import {useLingui} from '@lingui/react'
99+import {Trans} from '@lingui/react/macro'
910import {useFocusEffect, useNavigation} from '@react-navigation/native'
1011import {
1112 type InfiniteData,
+2-1
src/screens/Messages/Settings.tsx
···11import {useCallback} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {type NativeStackScreenProps} from '@react-navigation/native-stack'
6778import {type CommonNavigatorParams} from '#/lib/routes/types'
+2-1
src/screens/Messages/components/ChatDisabled.tsx
···11import {useCallback, useState} from 'react'
22import {View} from 'react-native'
33import {ToolsOzoneReportDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useMutation} from '@tanstack/react-query'
7889import {BLUESKY_MOD_SERVICE_HEADERS} from '#/lib/constants'
+1-1
src/screens/Messages/components/ChatListItem.tsx
···66 moderateProfile,
77 type ModerationOpts,
88} from '@atproto/api'
99-import {msg} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111import {useQueryClient} from '@tanstack/react-query'
1212
···11import {useCallback} from 'react'
22import {View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {type ActiveConvoStates} from '#/state/messages/convo'
+2-1
src/screens/Messages/components/InboxPreview.tsx
···11import {View} from 'react-native'
22import {type ChatBskyActorDefs} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {atoms as a, useTheme} from '#/alf'
78import {AvatarStack} from '#/components/AvatarStack'
+1-1
src/screens/Messages/components/MessageInput.tsx
···1212 useSharedValue,
1313} from 'react-native-reanimated'
1414import {useSafeAreaInsets} from 'react-native-safe-area-context'
1515-import {msg} from '@lingui/macro'
1515+import {msg} from '@lingui/core/macro'
1616import {useLingui} from '@lingui/react'
1717import {countGraphemes} from 'unicode-segmenter/grapheme'
1818
···11import React from 'react'
22import {Pressable, View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55import {flushSync} from 'react-dom'
66import TextareaAutosize from 'react-textarea-autosize'
···77 moderatePost,
88 RichText as RichTextAPI,
99} from '@atproto/api'
1010-import {msg} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
1212import {type RouteProp, useNavigation, useRoute} from '@react-navigation/native'
1313
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {type ConvoItem, ConvoItemError} from '#/state/messages/convo/types'
···11import {useCallback} from 'react'
22import {type ChatBskyActorDefs, ChatBskyConvoDefs} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {StackActions, useNavigation} from '@react-navigation/native'
67import {useQueryClient} from '@tanstack/react-query'
78
···11import {View} from 'react-native'
22import {type ChatBskyConvoDefs} from '@atproto/api'
33-import {Trans} from '@lingui/macro'
33+import {Trans} from '@lingui/react/macro'
4455import {useModerationOpts} from '#/state/preferences/moderation-opts'
66import {useSession} from '#/state/session'
+2-1
src/screens/Moderation/VerificationSettings.tsx
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {urls} from '#/lib/constants'
67import {
+2-1
src/screens/Moderation/index.tsx
···11import {Fragment, useCallback} from 'react'
22import {Linking, View} from 'react-native'
33import {LABELS} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useFocusEffect} from '@react-navigation/native'
7889import {getLabelingServiceTitle, isAppLabeler} from '#/lib/moderation'
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import deepEqual from 'fast-deep-equal'
6778import {logger} from '#/logger'
+2-1
src/screens/Notifications/ActivityList.tsx
···11-import {msg, Trans} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33+import {Trans} from '@lingui/react/macro'
34import {type NativeStackScreenProps} from '@react-navigation/native-stack'
4556import {type AllNavigatorParams} from '#/lib/routes/types'
+3-3
src/screens/Onboarding/Layout.tsx
···11import {useEffect, useRef, useState} from 'react'
22import {ScrollView, View} from 'react-native'
33import {useSafeAreaInsets} from 'react-native-safe-area-context'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {useOnboardingDispatch} from '#/state/shell'
89import {useOnboardingInternalState} from '#/screens/Onboarding/state'
···2021import {HEADER_SLOT_SIZE} from '#/components/Layout'
2122import {createPortalGroup} from '#/components/Portal'
2223import {P, Text} from '#/components/Typography'
2323-import {IS_ANDROID, IS_WEB} from '#/env'
2424-import {IS_INTERNAL} from '#/env'
2424+import {IS_ANDROID, IS_INTERNAL, IS_WEB} from '#/env'
25252626const ONBOARDING_COL_WIDTH = 420
2727
···11import {View} from 'react-native'
22import * as Contacts from 'expo-contacts'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useQuery} from '@tanstack/react-query'
6778import {urls} from '#/lib/constants'
···11import {View} from 'react-native'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {atoms as a, useTheme} from '#/alf'
···22import {View} from 'react-native'
33import PagerView from 'react-native-pager-view'
44import {Image} from 'expo-image'
55-import {msg} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
7788import {atoms as a, tokens, useTheme} from '#/alf'
···11import {View} from 'react-native'
22import {Image} from 'expo-image'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {atoms as a, useTheme} from '#/alf'
+2-1
src/screens/Onboarding/StepFinished/index.tsx
···88 type Un$Typed,
99} from '@atproto/api'
1010import {TID} from '@atproto/common-web'
1111-import {msg, Trans} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313+import {Trans} from '@lingui/react/macro'
1314import {useQueryClient} from '@tanstack/react-query'
14151516import {uploadBlob} from '#/lib/api'
+2-1
src/screens/Onboarding/StepInterests/index.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {interests, useInterestsDisplayNames} from '#/lib/interests'
78import {capitalize} from '#/lib/strings/capitalize'
···11import React from 'react'
22import {View} from 'react-native'
33import {Image as ExpoImage} from 'expo-image'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
6677import {AvatarCreatorCircle} from '#/screens/Onboarding/StepProfile/AvatarCreatorCircle'
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {type Avatar} from '#/screens/Onboarding/StepProfile/index'
78import {
+2-1
src/screens/Onboarding/StepProfile/index.tsx
···66 launchImageLibraryAsync,
77 UIImagePickerPreferredAssetRepresentationMode,
88} from 'expo-image-picker'
99-import {msg, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Trans} from '@lingui/react/macro'
11121213import {usePhotoLibraryPermission} from '#/lib/hooks/usePermissions'
1314import {compressIfNeeded} from '#/lib/media/manip'
···11import {useCallback, useEffect, useMemo, useRef, useState} from 'react'
22import {View} from 'react-native'
33import {type ModerationOpts} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useMutation, useQueryClient} from '@tanstack/react-query'
78import * as bcp47Match from 'bcp-47-match'
89
···11import {useState} from 'react'
22import {View} from 'react-native'
33import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useQueryClient} from '@tanstack/react-query'
7889import {batchedUpdates} from '#/lib/batchedUpdates'
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {useModerationOpts} from '#/state/preferences/moderation-opts'
67import {useOnboardingSuggestedStarterPacksQuery} from '#/state/queries/useOnboardingSuggestedStarterPacksQuery'
+1-1
src/screens/Post/PostLikedBy.tsx
···11import React from 'react'
22-import {Plural, Trans} from '@lingui/macro'
22+import {Plural, Trans} from '@lingui/react/macro'
33import {useFocusEffect} from '@react-navigation/native'
4455import {
+1-1
src/screens/Post/PostQuotes.tsx
···11import React from 'react'
22-import {Plural, Trans} from '@lingui/macro'
22+import {Plural, Trans} from '@lingui/react/macro'
33import {useFocusEffect} from '@react-navigation/native'
4455import {
+1-1
src/screens/Post/PostRepostedBy.tsx
···11import React from 'react'
22-import {Plural, Trans} from '@lingui/macro'
22+import {Plural, Trans} from '@lingui/react/macro'
33import {useFocusEffect} from '@react-navigation/native'
4455import {
···11-import {msg, Trans} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33+import {Trans} from '@lingui/react/macro'
3445import {HITSLOP_10} from '#/lib/constants'
56import {type ThreadPreferences} from '#/state/queries/preferences/useThreadPreferences'
···11import {type StyleProp, View, type ViewStyle} from 'react-native'
22import {LinearGradient} from 'expo-linear-gradient'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {PressableScale} from '#/lib/custom-animations/PressableScale'
78import {useHaptics} from '#/lib/haptics'
+2-1
src/screens/PostThread/components/ThreadError.tsx
···11import {useMemo} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useCleanError} from '#/lib/hooks/useCleanError'
78import {OUTER_SPACE} from '#/screens/PostThread/const'
···11import React from 'react'
22import {type AppBskyActorDefs} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useNavigation} from '@react-navigation/native'
6778import {logger} from '#/logger'
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {atoms as a, useTheme} from '#/alf'
55import {Lock_Stroke2_Corner0_Rounded as LockIcon} from '#/components/icons/Lock'
···66 AtUri,
77 RichText as RichTextAPI,
88} from '@atproto/api'
99-import {Trans} from '@lingui/macro'
99+import {Trans} from '@lingui/react/macro'
10101111import {MAX_POST_LINES} from '#/lib/constants'
1212import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {type ThreadItem} from '#/state/queries/usePostThread/types'
55import {
···11import {useMemo} from 'react'
22import {View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {LINEAR_AVI_WIDTH, OUTER_SPACE} from '#/screens/PostThread/const'
···11import {memo} from 'react'
22import {View} from 'react-native'
33-import {msg, Plural, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Plural, Trans} from '@lingui/react/macro'
5667import {
78 type PostThreadParams,
···11import {memo} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {type ThreadItem} from '#/state/queries/usePostThread'
78import {
···11import {View} from 'react-native'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {atoms as a, useTheme} from '#/alf'
···66 AtUri,
77 RichText as RichTextAPI,
88} from '@atproto/api'
99-import {Trans} from '@lingui/macro'
99+import {Trans} from '@lingui/react/macro'
10101111import {MAX_POST_LINES} from '#/lib/constants'
1212import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
+1-1
src/screens/PostThread/index.tsx
···11import {useCallback, useEffect, useMemo, useRef, useState} from 'react'
22import {useWindowDimensions, View} from 'react-native'
33import Animated, {useAnimatedStyle} from 'react-native-reanimated'
44-import {Trans} from '@lingui/macro'
44+import {Trans} from '@lingui/react/macro'
5566import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
77import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
+2-1
src/screens/Profile/ErrorState.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useNavigation} from '@react-navigation/native'
6778import {type NavigationProp} from '#/lib/routes/types'
+2-1
src/screens/Profile/Header/EditProfileDialog.tsx
···11import {useCallback, useEffect, useState} from 'react'
22import {useWindowDimensions, View} from 'react-native'
33import {type AppBskyActorDefs} from '@atproto/api'
44-import {msg, Plural, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Plural, Trans} from '@lingui/react/macro'
6778import {urls} from '#/lib/constants'
89import {cleanError} from '#/lib/strings/errors'
+2-1
src/screens/Profile/Header/Handle.tsx
···11import {View} from 'react-native'
22import {type AppBskyActorDefs} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {isInvalidHandle, sanitizeHandle} from '#/lib/strings/handles'
78import {type Shadow} from '#/state/cache/types'
+1-1
src/screens/Profile/Header/Metrics.tsx
···11import {View} from 'react-native'
22import {type AppBskyActorDefs} from '@atproto/api'
33-import {msg, plural} from '@lingui/macro'
33+import {msg, plural} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {makeProfileLink} from '#/lib/routes/links'
···77 type ModerationOpts,
88 type RichText as RichTextAPI,
99} from '@atproto/api'
1010-import {msg, Trans} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
1212+import {Trans} from '@lingui/react/macro'
12131314import {useHaptics} from '#/lib/haptics'
1415import {sanitizeDisplayName} from '#/lib/strings/display-names'
+1-1
src/screens/Profile/Header/Shell.tsx
···1010import {useSafeAreaInsets} from 'react-native-safe-area-context'
1111import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api'
1212import {utils} from '@bsky.app/alf'
1313-import {msg} from '@lingui/macro'
1313+import {msg} from '@lingui/core/macro'
1414import {useLingui} from '@lingui/react'
1515import {useNavigation} from '@react-navigation/native'
1616
+1-1
src/screens/Profile/KnownFollowers.tsx
···11import React from 'react'
22import {type AppBskyActorDefs} from '@atproto/api'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55import {useFocusEffect} from '@react-navigation/native'
66
+1-1
src/screens/Profile/ProfileFeed/index.tsx
···11import {useCallback, useEffect, useMemo, useState} from 'react'
22import {useAnimatedRef} from 'react-native-reanimated'
33import {AppBskyFeedDefs} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66import {useIsFocused} from '@react-navigation/native'
77import {type NativeStackScreenProps} from '@react-navigation/native-stack'
+1-1
src/screens/Profile/ProfileFollowers.tsx
···11import React from 'react'
22-import {Plural} from '@lingui/macro'
22+import {Plural} from '@lingui/react/macro'
33import {useFocusEffect} from '@react-navigation/native'
4455import {
+1-1
src/screens/Profile/ProfileFollows.tsx
···11import React from 'react'
22-import {Plural} from '@lingui/macro'
22+import {Plural} from '@lingui/react/macro'
33import {useFocusEffect} from '@react-navigation/native'
4455import {
+1-1
src/screens/Profile/ProfileLabelerLikedBy.tsx
···11import React from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44import {useFocusEffect} from '@react-navigation/native'
55
+1-1
src/screens/Profile/ProfileSearch.tsx
···11import {useMemo} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {
+2-1
src/screens/Profile/Sections/Feed.tsx
···11import {useCallback, useEffect, useImperativeHandle, useState} from 'react'
22import {findNodeHandle, View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useQueryClient} from '@tanstack/react-query'
6778import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
+2-1
src/screens/Profile/Sections/Labels.tsx
···66 interpretLabelValueDefinitions,
77 type ModerationOpts,
88} from '@atproto/api'
99-import {msg, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Trans} from '@lingui/react/macro'
11121213import {isLabelerSubscribed, lookupLabelValueDefinition} from '#/lib/moderation'
1314import {List, type ListRef} from '#/view/com/util/List'
+2-1
src/screens/Profile/components/GermButton.tsx
···55 type AppBskyActorGetProfile,
66 type AtpAgent,
77} from '@atproto/api'
88-import {msg, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Trans} from '@lingui/react/macro'
1011import {useMutation, useQueryClient} from '@tanstack/react-query'
11121213import {until} from '#/lib/async/until'
···11import React from 'react'
22import {View} from 'react-native'
33import {AtUri} from '@atproto/api'
44-import {msg, Plural, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Plural, Trans} from '@lingui/react/macro'
6778import {useHaptics} from '#/lib/haptics'
89import {makeCustomFeedLink, makeProfileLink} from '#/lib/routes/links'
+2-1
src/screens/ProfileList/AboutSection.tsx
···11import {useCallback, useImperativeHandle, useState} from 'react'
22import {View} from 'react-native'
33import {type AppBskyGraphDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {useSession} from '#/state/session'
89import {ListMembers} from '#/view/com/lists/ListMembers'
+2-1
src/screens/ProfileList/FeedSection.tsx
···11import {useCallback, useEffect, useImperativeHandle, useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useIsFocused} from '@react-navigation/native'
67import {useQueryClient} from '@tanstack/react-query'
78
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
45import {useNavigation} from '@react-navigation/native'
5667import {type NavigationProp} from '#/lib/routes/types'
+2-1
src/screens/ProfileList/components/Header.tsx
···11import {useMemo} from 'react'
22import {View} from 'react-native'
33import {AppBskyGraphDefs, RichText as RichTextAPI} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {useHaptics} from '#/lib/haptics'
89import {makeListLink} from '#/lib/routes/links'
···11import {type AppBskyActorDefs, AppBskyGraphDefs, AtUri} from '@atproto/api'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
45import {useNavigation} from '@react-navigation/native'
5667import {type NavigationProp} from '#/lib/routes/types'
···11import {type AppBskyGraphDefs} from '@atproto/api'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {useListBlockMutation, useListMuteMutation} from '#/state/queries/list'
67import {atoms as a} from '#/alf'
+2-1
src/screens/ProfileList/index.tsx
···77 moderateUserList,
88 type ModerationOpts,
99} from '@atproto/api'
1010-import {msg, Trans} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
1212+import {Trans} from '@lingui/react/macro'
1213import {useFocusEffect, useIsFocused} from '@react-navigation/native'
1314import {useQueryClient} from '@tanstack/react-query'
1415
+3-3
src/screens/SavedFeeds.tsx
···33import Animated, {LinearTransition} from 'react-native-reanimated'
44import {type AppBskyActorDefs} from '@atproto/api'
55import {TID} from '@atproto/common-web'
66-import {msg, Trans} from '@lingui/macro'
66+import {msg} from '@lingui/core/macro'
77import {useLingui} from '@lingui/react'
88-import {useFocusEffect} from '@react-navigation/native'
99-import {useNavigation} from '@react-navigation/native'
88+import {Trans} from '@lingui/react/macro'
99+import {useFocusEffect, useNavigation} from '@react-navigation/native'
1010import {type NativeStackScreenProps} from '@react-navigation/native-stack'
11111212import {RECOMMENDED_SAVED_FEEDS, TIMELINE_SAVED_FEED} from '#/lib/constants'
+12-3
src/screens/Search/Explore.tsx
···55 type AppBskyFeedDefs,
66 type AppBskyGraphDefs,
77} from '@atproto/api'
88-import {msg, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Trans} from '@lingui/react/macro'
1011import {useQueryClient} from '@tanstack/react-query'
1112import * as bcp47Match from 'bcp-47-match'
1213···350351 ])
351352352353 const topBorder = useMemo(
353353- () => ({type: 'topBorder', key: 'top-border'}) as const,
354354+ () =>
355355+ ({
356356+ type: 'topBorder',
357357+ key: 'top-border',
358358+ }) as const,
354359 [],
355360 )
356361 const trendingTopicsModule = useMemo(
357357- () => ({type: 'trendingTopics', key: 'trending-topics'}) as const,
362362+ () =>
363363+ ({
364364+ type: 'trendingTopics',
365365+ key: 'trending-topics',
366366+ }) as const,
358367 [],
359368 )
360369 const suggestedFollowsModule = useMemo(() => {
+2-1
src/screens/Search/SearchResults.tsx
···11import {memo, useCallback, useMemo, useState} from 'react'
22import {ActivityIndicator, View} from 'react-native'
33import {type AppBskyFeedDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {urls} from '#/lib/constants'
89import {usePostViewTracking} from '#/lib/hooks/usePostViewTracking'
+3-3
src/screens/Search/Shell.tsx
···1212 View,
1313 type ViewStyle,
1414} from 'react-native'
1515-import {msg, Trans} from '@lingui/macro'
1515+import {msg} from '@lingui/core/macro'
1616import {useLingui} from '@lingui/react'
1717+import {Trans} from '@lingui/react/macro'
1718import {useFocusEffect, useNavigation, useRoute} from '@react-navigation/native'
1819import {useQueryClient} from '@tanstack/react-query'
19202020-import {HITSLOP_20} from '#/lib/constants'
2121-import {HITSLOP_10} from '#/lib/constants'
2121+import {HITSLOP_10, HITSLOP_20} from '#/lib/constants'
2222import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
2323import {MagnifyingGlassIcon} from '#/lib/icons'
2424import {type NavigationProp} from '#/lib/routes/types'
···11import {memo} from 'react'
22import {ActivityIndicator, View} from 'react-native'
33import {type AppBskyActorDefs} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
6677import {useModerationOpts} from '#/state/preferences/moderation-opts'
+2-1
src/screens/Search/components/SearchHistory.tsx
···11import {Pressable, ScrollView, View} from 'react-native'
22import {moderateProfile, type ModerationOpts} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {createHitslop, HITSLOP_10} from '#/lib/constants'
78import {makeProfileLink} from '#/lib/routes/links'
···11import {useMemo} from 'react'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {languageName} from '#/locale/helpers'
67import {APP_LANGUAGES, LANGUAGES} from '#/locale/languages'
···11import {useCallback} from 'react'
22import {View} from 'react-native'
33import {type AppBskyActorDefs, type ModerationOpts} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66import {useQueryClient} from '@tanstack/react-query'
77
+2-1
src/screens/Search/components/StarterPackCard.tsx
···55 AppBskyGraphStarterpack,
66 moderateProfile,
77} from '@atproto/api'
88-import {msg, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Trans} from '@lingui/react/macro'
10111112import {sanitizeHandle} from '#/lib/strings/handles'
1213import {useModerationOpts} from '#/state/preferences/moderation-opts'
···11import {useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useInterestsDisplayNames} from '#/lib/interests'
78import {Nux, useSaveNux} from '#/state/queries/nuxs'
···11import {View} from 'react-native'
22import {type AppBskyUnspeccedDefs} from '@atproto/api'
33-import {Trans} from '@lingui/macro'
33+import {Trans} from '@lingui/react/macro'
4455import {
66 DEFAULT_LIMIT as RECOMMENDATIONS_COUNT,
···11import {memo, useEffect} from 'react'
22import {View} from 'react-native'
33import {type AppBskyActorSearchActors, type ModerationOpts} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66import {type InfiniteData} from '@tanstack/react-query'
77
···11import {useMemo} from 'react'
22import {Pressable, View} from 'react-native'
33import {type AppBskyUnspeccedDefs, moderateProfile} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {useModerationOpts} from '#/state/preferences/moderation-opts'
89import {useTrendingSettings} from '#/state/preferences/trending'
···11import {useMemo} from 'react'
22import {ScrollView, View} from 'react-native'
33import {AppBskyEmbedVideo, AtUri} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useFocusEffect} from '@react-navigation/native'
78import {useQueryClient} from '@tanstack/react-query'
89
+2-1
src/screens/Settings/AboutSettings.tsx
···22import {setStringAsync} from 'expo-clipboard'
33import * as FileSystem from 'expo-file-system/legacy'
44import {Image} from 'expo-image'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
78import {type NativeStackScreenProps} from '@react-navigation/native-stack'
89import {useMutation} from '@tanstack/react-query'
910
+2-1
src/screens/Settings/AccessibilitySettings.tsx
···11-import {msg, Trans} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33+import {Trans} from '@lingui/react/macro'
34import {type NativeStackScreenProps} from '@react-navigation/native-stack'
4556import {type CommonNavigatorParams} from '#/lib/routes/types'
+2-1
src/screens/Settings/AccountSettings.tsx
···11-import {msg, Trans} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33+import {Trans} from '@lingui/react/macro'
34import {type NativeStackScreenProps} from '@react-navigation/native-stack'
4556import {type CommonNavigatorParams} from '#/lib/routes/types'
+2-1
src/screens/Settings/ActivityPrivacySettings.tsx
···11import {View} from 'react-native'
22import {type AppBskyNotificationDeclaration} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {
78 type AllNavigatorParams,
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {AppIconImage} from '#/screens/Settings/AppIconSettings/AppIconImage'
67import {useCurrentAppIcon} from '#/screens/Settings/AppIconSettings/useCurrentAppIcon'
+4-3
src/screens/Settings/AppIconSettings/index.tsx
···11import {useState} from 'react'
22import {Alert, View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import * as DynamicAppIcon from '@mozzius/expo-dynamic-app-icon'
67import {type NativeStackScreenProps} from '@react-navigation/native-stack'
78···128129 if (!icon || icon === 'DEFAULT') {
129130 return 'default_light'
130131 } else {
131131- return icon as DynamicAppIcon.IconName
132132+ return icon
132133 }
133134}
134135···150151 values={[value]}
151152 maxSelections={1}
152153 onChange={vals => {
153153- if (vals[0]) onChange(vals[0] as DynamicAppIcon.IconName)
154154+ if (vals[0]) onChange(vals[0])
154155 }}>
155156 <View style={[a.flex_1, a.rounded_md, a.overflow_hidden]}>
156157 {children}
···11import {useMemo} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {type AppIconSet} from '#/screens/Settings/AppIconSettings/types'
+2-1
src/screens/Settings/AppPasswords.tsx
···77 LinearTransition,
88} from 'react-native-reanimated'
99import {type ComAtprotoServerListAppPasswords} from '@atproto/api'
1010-import {msg, Trans} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
1212+import {Trans} from '@lingui/react/macro'
1213import {type NativeStackScreenProps} from '@react-navigation/native-stack'
13141415import {type CommonNavigatorParams} from '#/lib/routes/types'
+3-3
src/screens/Settings/AppearanceSettings.tsx
···55 LayoutAnimationConfig,
66 LinearTransition,
77} from 'react-native-reanimated'
88-import {msg, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Trans} from '@lingui/react/macro'
10111112import {
1213 type CommonNavigatorParams,
···2324import {TitleCase_Stroke2_Corner0_Rounded as Aa} from '#/components/icons/TitleCase'
2425import * as Layout from '#/components/Layout'
2526import {Text} from '#/components/Typography'
2626-import {IS_NATIVE} from '#/env'
2727-import {IS_INTERNAL} from '#/env'
2727+import {IS_INTERNAL, IS_NATIVE} from '#/env'
2828import * as SettingsList from './components/SettingsList'
29293030type Props = NativeStackScreenProps<CommonNavigatorParams, 'AppearanceSettings'>
+2-1
src/screens/Settings/ContentAndMediaSettings.tsx
···11-import {msg, Trans} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33+import {Trans} from '@lingui/react/macro'
34import {type NativeStackScreenProps} from '@react-navigation/native-stack'
4556import {type CommonNavigatorParams} from '#/lib/routes/types'
+1-1
src/screens/Settings/ExternalMediaPreferences.tsx
···11import {Fragment} from 'react'
22import {View} from 'react-native'
33-import {Trans} from '@lingui/macro'
33+import {Trans} from '@lingui/react/macro'
4455import {
66 type CommonNavigatorParams,
+2-1
src/screens/Settings/FindContactsSettings.tsx
···66 type AppBskyContactGetSyncStatus,
77 type ModerationOpts,
88} from '@atproto/api'
99-import {msg, Plural, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Plural, Trans} from '@lingui/react/macro'
1112import {useIsFocused} from '@react-navigation/native'
1213import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
1314
+2-1
src/screens/Settings/FollowingFeedPreferences.tsx
···11-import {msg, Trans} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33+import {Trans} from '@lingui/react/macro'
3445import {
56 type CommonNavigatorParams,
+2-1
src/screens/Settings/InterestsSettings.tsx
···11import {useMemo, useState} from 'react'
22import {type TextStyle, View, type ViewStyle} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {type NativeStackScreenProps} from '@react-navigation/native-stack'
67import {useQueryClient} from '@tanstack/react-query'
78import debounce from 'lodash.debounce'
+2-1
src/screens/Settings/LanguageSettings.tsx
···11import {useCallback, useMemo, useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {
78 type CommonNavigatorParams,
···11import {useCallback, useMemo} from 'react'
22import {type ListRenderItemInfo, Text as RNText, View} from 'react-native'
33import {type ModerationOpts} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
89import {
···2122import * as Admonition from '#/components/Admonition'
2223import {Button, ButtonText} from '#/components/Button'
2324import {useDialogControl} from '#/components/Dialog'
2424-import {BellRinging_Filled_Corner0_Rounded as BellRingingFilledIcon} from '#/components/icons/BellRinging'
2525-import {BellRinging_Stroke2_Corner0_Rounded as BellRingingIcon} from '#/components/icons/BellRinging'
2525+import {
2626+ BellRinging_Filled_Corner0_Rounded as BellRingingFilledIcon,
2727+ BellRinging_Stroke2_Corner0_Rounded as BellRingingIcon,
2828+} from '#/components/icons/BellRinging'
2629import * as Layout from '#/components/Layout'
2730import {InlineLinkText} from '#/components/Link'
2831import {ListFooter} from '#/components/Lists'
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {
55 type AllNavigatorParams,
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {
55 type AllNavigatorParams,
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {
55 type AllNavigatorParams,
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {
55 type AllNavigatorParams,
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {
55 type AllNavigatorParams,
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {
55 type AllNavigatorParams,
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {
55 type AllNavigatorParams,
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {
55 type AllNavigatorParams,
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {
55 type AllNavigatorParams,
···11import {useMemo} from 'react'
22import {View} from 'react-native'
33import {type AppBskyNotificationDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {useNotificationSettingsUpdateMutation} from '#/state/queries/notifications/settings'
89import {atoms as a, platform, useTheme} from '#/alf'
···22import {Linking, View} from 'react-native'
33import * as Notification from 'expo-notifications'
44import {type AppBskyNotificationDefs} from '@atproto/api'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
78import {useQuery, useQueryClient} from '@tanstack/react-query'
89910import {useAppState} from '#/lib/appState'
···11import {type AppBskyNotificationDeclaration} from '@atproto/api'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
45import {type NativeStackScreenProps} from '@react-navigation/native-stack'
5667import {type CommonNavigatorParams} from '#/lib/routes/types'
+2-1
src/screens/Settings/Settings.tsx
···22import {Alert, LayoutAnimation, Linking, Pressable, View} from 'react-native'
33import {useReducedMotion} from 'react-native-reanimated'
44import {type AppBskyActorDefs, moderateProfile} from '@atproto/api'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
78import {useNavigation} from '@react-navigation/native'
89import {type NativeStackScreenProps} from '@react-navigation/native-stack'
910
+2-1
src/screens/Settings/ThreadPreferences.tsx
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {
67 type CommonNavigatorParams,
···99 SlideOutLeft,
1010} from 'react-native-reanimated'
1111import {type ComAtprotoServerCreateAppPassword} from '@atproto/api'
1212-import {msg, Trans} from '@lingui/macro'
1212+import {msg} from '@lingui/core/macro'
1313import {useLingui} from '@lingui/react'
1414+import {Trans} from '@lingui/react/macro'
1415import {useMutation} from '@tanstack/react-query'
15161617import {useAppPasswordCreateMutation} from '#/state/queries/app-passwords'
···1111 SlideOutRight,
1212} from 'react-native-reanimated'
1313import {type ComAtprotoServerDescribeServer} from '@atproto/api'
1414-import {msg, Trans} from '@lingui/macro'
1414+import {msg} from '@lingui/core/macro'
1515import {useLingui} from '@lingui/react'
1616+import {Trans} from '@lingui/react/macro'
1617import {useMutation, useQueryClient} from '@tanstack/react-query'
17181819import {HITSLOP_10, urls} from '#/lib/constants'
1920import {cleanError} from '#/lib/strings/errors'
2020-import {createFullHandle, validateServiceHandle} from '#/lib/strings/handles'
2121-import {sanitizeHandle} from '#/lib/strings/handles'
2121+import {
2222+ createFullHandle,
2323+ sanitizeHandle,
2424+ validateServiceHandle,
2525+} from '#/lib/strings/handles'
2226import {useFetchDid, useUpdateHandleMutation} from '#/state/queries/handle'
2327import {RQKEY as RQKEY_PROFILE} from '#/state/queries/profile'
2428import {useServiceQuery} from '#/state/queries/service'
···11import {useState} from 'react'
22import {useWindowDimensions, View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import * as EmailValidator from 'email-validator'
6778import {cleanError, isNetworkError} from '#/lib/strings/errors'
+1-1
src/screens/Settings/components/CopyButton.tsx
···66 ZoomIn,
77} from 'react-native-reanimated'
88import * as Clipboard from 'expo-clipboard'
99-import {Trans} from '@lingui/macro'
99+import {Trans} from '@lingui/react/macro'
10101111import {atoms as a, useTheme} from '#/alf'
1212import {Button, type ButtonProps} from '#/components/Button'
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {logger} from '#/logger'
78import {useAgent, useSessionApi} from '#/state/session'
···11import {useCallback, useRef, useState} from 'react'
22import {type TextInput, View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {DM_SERVICE_HEADERS} from '#/lib/constants'
78import {useCleanError} from '#/lib/hooks/useCleanError'
···11import React from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {useSession} from '#/state/session'
···11import {useCallback, useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {DM_SERVICE_HEADERS} from '#/lib/constants'
78import {saveBytesToDisk} from '#/lib/media/manip'
+2-1
src/screens/Settings/components/OTAInfo.tsx
···11import * as Updates from 'expo-updates'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
45import {useMutation, useQuery} from '@tanstack/react-query'
5667import * as Toast from '#/view/com/util/Toast'
+2-1
src/screens/Settings/components/PwiOptOut.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {type $Typed, ComAtprotoLabelDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {
89 useProfileQuery,
+2-1
src/screens/Signup/BackNextButtons.tsx
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {atoms as a} from '#/alf'
67import {Button, ButtonIcon, ButtonText} from '#/components/Button'
+1-1
src/screens/Signup/StepCaptcha/index.tsx
···11import React, {useEffect, useState} from 'react'
22import {ActivityIndicator, Platform, View} from 'react-native'
33import ReactNativeDeviceAttest from 'react-native-device-attest'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66import {nanoid} from 'nanoid/non-secure'
77
···11import Animated, {Easing, FadeInDown, FadeOut} from 'react-native-reanimated'
22import {type ComAtprotoTempCheckHandleAvailability} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {atoms as a, native, useTheme} from '#/alf'
78import {borderRadius} from '#/alf/tokens'
+2-1
src/screens/Signup/StepHandle/index.tsx
···66 LayoutAnimationConfig,
77 LinearTransition,
88} from 'react-native-reanimated'
99-import {msg, Plural, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Plural, Trans} from '@lingui/react/macro'
11121213import {
1314 createFullHandle,
+2-1
src/screens/Signup/StepInfo/Policies.tsx
···11import {type ReactElement} from 'react'
22import {View} from 'react-native'
33import {type ComAtprotoServerDescribeServer} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {atoms as a, useTheme} from '#/alf'
89import {Admonition} from '#/components/Admonition'
+2-1
src/screens/Signup/StepInfo/index.tsx
···11import React, {useRef} from 'react'
22import {type TextInput, View} from 'react-native'
33-import {msg, Plural, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Plural, Trans} from '@lingui/react/macro'
56import * as EmailValidator from 'email-validator'
67import type tldts from 'tldts'
78
+2-1
src/screens/Signup/index.tsx
···33import ReactNativeDeviceAttest from 'react-native-device-attest'
44import Animated, {FadeIn, LayoutAnimationConfig} from 'react-native-reanimated'
55import {AppBskyGraphStarterpack} from '@atproto/api'
66-import {msg, Trans} from '@lingui/macro'
66+import {msg} from '@lingui/core/macro'
77import {useLingui} from '@lingui/react'
88+import {Trans} from '@lingui/react/macro'
89910import {FEEDBACK_FORM_URL} from '#/lib/constants'
1011import {logger} from '#/logger'
+1-1
src/screens/Signup/state.ts
···44 ComAtprotoServerCreateAccount,
55 type ComAtprotoServerDescribeServer,
66} from '@atproto/api'
77-import {msg} from '@lingui/macro'
77+import {msg} from '@lingui/core/macro'
88import {useLingui} from '@lingui/react'
99import * as EmailValidator from 'email-validator'
1010
+2-1
src/screens/SignupQueued.tsx
···22import {Modal, ScrollView, View} from 'react-native'
33import {SystemBars} from 'react-native-edge-to-edge'
44import {useSafeAreaInsets} from 'react-native-safe-area-context'
55-import {msg, plural, Trans} from '@lingui/macro'
55+import {msg, plural} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
7889import {logger} from '#/logger'
910import {isSignupQueued, useAgent, useSessionApi} from '#/state/session'
···88 type ModerationOpts,
99} from '@atproto/api'
1010import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
1111-import {msg, Trans} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313+import {Trans} from '@lingui/react/macro'
13141415import {JOINED_THIS_WEEK} from '#/lib/constants'
1516import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
+2-1
src/screens/StarterPack/StarterPackScreen.tsx
···99 RichText as RichTextAPI,
1010} from '@atproto/api'
1111import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
1212-import {msg, Plural, Trans} from '@lingui/macro'
1212+import {msg} from '@lingui/core/macro'
1313import {useLingui} from '@lingui/react'
1414+import {Plural, Trans} from '@lingui/react/macro'
1415import {useNavigation} from '@react-navigation/native'
1516import {type NativeStackScreenProps} from '@react-navigation/native-stack'
1617import {useQueryClient} from '@tanstack/react-query'
+1-1
src/screens/StarterPack/Wizard/State.tsx
···44 type AppBskyGraphDefs,
55 AppBskyGraphStarterpack,
66} from '@atproto/api'
77-import {msg, plural} from '@lingui/macro'
77+import {msg, plural} from '@lingui/core/macro'
8899import {STARTER_PACK_MAX_SIZE} from '#/lib/constants'
1010import * as Toast from '#/view/com/util/Toast'
···22import {type ListRenderItemInfo, View} from 'react-native'
33import {KeyboardAwareScrollView} from 'react-native-keyboard-controller'
44import {type AppBskyFeedDefs, type ModerationOpts} from '@atproto/api'
55-import {Trans} from '@lingui/macro'
55+import {Trans} from '@lingui/react/macro'
6677import {DISCOVER_FEED_URI} from '#/lib/constants'
88import {useA11y} from '#/state/a11y'
+1-1
src/screens/StarterPack/Wizard/StepProfiles.tsx
···22import {type ListRenderItemInfo, View} from 'react-native'
33import {KeyboardAwareScrollView} from 'react-native-keyboard-controller'
44import {type AppBskyActorDefs, type ModerationOpts} from '@atproto/api'
55-import {Trans} from '@lingui/macro'
55+import {Trans} from '@lingui/react/macro'
6677import {useA11y} from '#/state/a11y'
88import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete'
+2-1
src/screens/StarterPack/Wizard/index.tsx
···1010 AtUri,
1111 type ModerationOpts,
1212} from '@atproto/api'
1313-import {msg, Plural, Trans} from '@lingui/macro'
1313+import {msg} from '@lingui/core/macro'
1414import {useLingui} from '@lingui/react'
1515+import {Plural, Trans} from '@lingui/react/macro'
1516import {useFocusEffect, useNavigation} from '@react-navigation/native'
1617import {type NativeStackScreenProps} from '@react-navigation/native-stack'
1718
+2-1
src/screens/Takendown.tsx
···33import {KeyboardAwareScrollView} from 'react-native-keyboard-controller'
44import {useSafeAreaInsets} from 'react-native-safe-area-context'
55import {type ComAtprotoAdminDefs, ToolsOzoneReportDefs} from '@atproto/api'
66-import {msg, Trans} from '@lingui/macro'
66+import {msg} from '@lingui/core/macro'
77import {useLingui} from '@lingui/react'
88+import {Trans} from '@lingui/react/macro'
89import {useMutation} from '@tanstack/react-query'
910import {countGraphemes} from 'unicode-segmenter/grapheme'
1011
+1-1
src/screens/Topic.tsx
···11import React from 'react'
22import {type ListRenderItemInfo, View} from 'react-native'
33import {type AppBskyFeedDefs} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66import {useFocusEffect} from '@react-navigation/native'
77import {type NativeStackScreenProps} from '@react-navigation/native-stack'
+1-1
src/screens/VideoFeed/components/Header.tsx
···11import {useCallback} from 'react'
22import {type GestureResponderEvent, View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55import {useNavigation} from '@react-navigation/native'
66
+2-1
src/screens/VideoFeed/index.tsx
···3333 type ModerationDecision,
3434 RichText as RichTextAPI,
3535} from '@atproto/api'
3636-import {msg, Trans} from '@lingui/macro'
3636+import {msg} from '@lingui/core/macro'
3737import {useLingui} from '@lingui/react'
3838+import {Trans} from '@lingui/react/macro'
3839import {
3940 type RouteProp,
4041 useFocusEffect,
+1-1
src/state/queries/activity-subscriptions.ts
···33 type AppBskyNotificationDeclaration,
44 type AppBskyNotificationListActivitySubscriptions,
55} from '@atproto/api'
66-import {t} from '@lingui/macro'
66+import {t} from '@lingui/core/macro'
77import {
88 type InfiniteData,
99 type QueryClient,
+1-1
src/state/queries/explore-feed-previews.tsx
···55 AtUri,
66 moderatePost,
77} from '@atproto/api'
88-import {msg} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010import {
1111 type InfiniteData,
+1-1
src/state/queries/feed.ts
···88 moderateFeedGenerator,
99 RichText,
1010} from '@atproto/api'
1111-import {t} from '@lingui/macro'
1111+import {t} from '@lingui/core/macro'
1212import {
1313 type InfiniteData,
1414 keepPreviousData,
+1-1
src/state/queries/notifications/settings.ts
···11import {type AppBskyNotificationDefs} from '@atproto/api'
22-import {t} from '@lingui/macro'
22+import {t} from '@lingui/core/macro'
33import {
44 type QueryClient,
55 useMutation,
+1-1
src/state/queries/pinned-post.ts
···11-import {msg} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33import {useMutation, useQueryClient} from '@tanstack/react-query'
44
+1-1
src/state/queries/starter-packs.ts
···352352 )
353353}
354354355355-export async function precacheStarterPack(
355355+export function precacheStarterPack(
356356 queryClient: QueryClient,
357357 starterPack:
358358 | AppBskyGraphDefs.StarterPackViewBasic
+1-1
src/state/shell/composer/index.tsx
···55 type AppBskyUnspeccedGetPostThreadV2,
66 type ModerationDecision,
77} from '@atproto/api'
88-import {msg} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010import {useQueryClient} from '@tanstack/react-query'
1111
+1-1
src/state/shell/progress-guide.tsx
···11import React, {useMemo} from 'react'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {
+1-1
src/view/com/auth/LoggedOut.tsx
···11import {useCallback, useEffect, useState} from 'react'
22import {View} from 'react-native'
33import {useSafeAreaInsets} from 'react-native-safe-area-context'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66import {useQueryClient} from '@tanstack/react-query'
77
+2-1
src/view/com/auth/SplashScreen.tsx
···22import {Image as RNImage, View} from 'react-native'
33import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
44import {Image} from 'expo-image'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
7889import {useHaptics} from '#/lib/haptics'
910import {Logo} from '#/view/icons/Logo'
+2-1
src/view/com/auth/SplashScreen.web.tsx
···11import React from 'react'
22import {Pressable, View} from 'react-native'
33import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
6778import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
89import {useKawaiiMode} from '#/state/preferences/kawaii'
+2-1
src/view/com/composer/Composer.tsx
···5252 type BskyAgent,
5353 type RichText,
5454} from '@atproto/api'
5555-import {msg, plural, Trans} from '@lingui/macro'
5555+import {msg, plural} from '@lingui/core/macro'
5656import {useLingui} from '@lingui/react'
5757+import {Trans} from '@lingui/react/macro'
5758import {useNavigation} from '@react-navigation/native'
5859import {useQueryClient} from '@tanstack/react-query'
5960
+1-1
src/view/com/composer/ComposerReplyTo.tsx
···77 AppBskyEmbedRecordWithMedia,
88 AppBskyFeedPost,
99} from '@atproto/api'
1010-import {msg} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
12121313import {sanitizeDisplayName} from '#/lib/strings/display-names'
+1-1
src/view/com/composer/ExternalEmbedRemoveBtn.tsx
···11import {View} from 'react-native'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
4455import {atoms as a, useTheme, type ViewStyleProp} from '#/alf'
+2-1
src/view/com/composer/GifAltText.tsx
···11import {useState} from 'react'
22import {TouchableOpacity, View} from 'react-native'
33-import {msg, Plural, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Plural, Trans} from '@lingui/react/macro'
5667import {HITSLOP_10, MAX_ALT_TEXT} from '#/lib/constants'
78import {parseAltFromGIFDescription} from '#/lib/gif-alt-text'
+1-1
src/view/com/composer/SelectMediaButton.tsx
···22import {Keyboard} from 'react-native'
33import {File} from 'expo-file-system'
44import {type ImagePickerAsset} from 'expo-image-picker'
55-import {msg, plural} from '@lingui/macro'
55+import {msg, plural} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
7788import {VIDEO_MAX_DURATION_MS, VIDEO_MAX_SIZE} from '#/lib/constants'
+1-1
src/view/com/composer/drafts/DraftItem.tsx
···11import {useCallback, useEffect, useMemo, useState} from 'react'
22import {Pressable, View} from 'react-native'
33import * as VideoThumbnails from 'expo-video-thumbnails'
44-import {msg, plural} from '@lingui/macro'
44+import {msg, plural} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
6677import * as device from '#/lib/deviceName'
+2-1
src/view/com/composer/drafts/DraftsButton.tsx
···11-import {msg, Trans} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33+import {Trans} from '@lingui/react/macro'
3445import {atoms as a} from '#/alf'
56import {Button, ButtonText} from '#/components/Button'
+2-1
src/view/com/composer/drafts/DraftsListDialog.tsx
···11import {useCallback, useEffect, useMemo} from 'react'
22import {Keyboard, View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useCallOnce} from '#/lib/once'
78import {EmptyState} from '#/view/com/util/EmptyState'
+4-7
src/view/com/composer/labels/LabelsBtn.tsx
···11import {Keyboard, View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {
67 ADULT_CONTENT_LABELS,
···3637 const filtered = labels.filter(
3738 l => !ADULT_CONTENT_LABELS.includes(l as AdultSelfLabel),
3839 )
3939- onChange([
4040- ...new Set([...filtered, newLabel].filter(Boolean) as SelfLabel[]),
4141- ])
4040+ onChange([...new Set([...filtered, newLabel].filter(Boolean))])
4241 }
43424443 const updateOtherLabels = (newLabels: OtherSelfLabel[]) => {
···4645 const filtered = labels.filter(
4746 l => !OTHER_SELF_LABELS.includes(l as OtherSelfLabel),
4847 )
4949- onChange([
5050- ...new Set([...filtered, newLabel].filter(Boolean) as SelfLabel[]),
5151- ])
4848+ onChange([...new Set([...filtered, newLabel].filter(Boolean))])
5249 }
53505451 return (
···2233import {useCallback, useImperativeHandle, useRef, useState} from 'react'
44import {View} from 'react-native'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
78import ReactCrop, {type PercentCrop} from 'react-image-crop'
89910import {
+2-1
src/view/com/composer/photos/Gallery.tsx
···1010} from 'react-native'
1111import {Image} from 'expo-image'
1212import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
1313-import {msg, Trans} from '@lingui/macro'
1313+import {msg} from '@lingui/core/macro'
1414import {useLingui} from '@lingui/react'
1515+import {Trans} from '@lingui/react/macro'
15161617import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
1718import {type Dimensions} from '#/lib/media/types'
···11import React from 'react'
22import {type ImageStyle, useWindowDimensions, View} from 'react-native'
33import {Image} from 'expo-image'
44-import {msg, Plural, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Plural, Trans} from '@lingui/react/macro'
6778import {MAX_ALT_TEXT} from '#/lib/constants'
89import {useIsKeyboardVisible} from '#/lib/hooks/useIsKeyboardVisible'
+1-1
src/view/com/composer/photos/OpenCameraBtn.tsx
···11import {useCallback} from 'react'
22import * as MediaLibrary from 'expo-media-library'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {POST_IMG_MAX} from '#/lib/constants'
+1-1
src/view/com/composer/photos/SelectGifBtn.tsx
···11import {useCallback, useRef} from 'react'
22import {Keyboard} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {type Gif} from '#/state/queries/tenor'
···11-import {msg, Trans} from '@lingui/macro'
11+import {msg} from '@lingui/core/macro'
22import {useLingui} from '@lingui/react'
33+import {Trans} from '@lingui/react/macro'
3445import {LANG_DROPDOWN_HITSLOP} from '#/lib/constants'
56import {codeToLanguageName} from '#/locale/helpers'
···11import {useEffect, useState} from 'react'
22import {Text as RNText, View} from 'react-native'
33import {parseLanguage} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import lande from 'lande'
7889import {code3ToCode2Strict, codeToLanguageName} from '#/locale/helpers'
···1314import {Text} from '#/components/Typography'
14151516// fallbacks for safari
1616-const onIdle = globalThis.requestIdleCallback || (cb => setTimeout(cb, 1))
1717+const onIdle =
1818+ globalThis.requestIdleCallback || ((cb: () => void) => setTimeout(cb, 1))
1719const cancelIdle = globalThis.cancelIdleCallback || clearTimeout
18201921export function SuggestedLanguage({
+1-1
src/view/com/composer/state/video.ts
···11import {type ImagePickerAsset} from 'expo-image-picker'
22import {type AppBskyVideoDefs, type BlobRef, type BskyAgent} from '@atproto/api'
33import {type I18n} from '@lingui/core'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
5566import {AbortError} from '#/lib/async/cancelable'
77import {compressVideo} from '#/lib/media/video/compress'
···99import {StyleSheet, View} from 'react-native'
1010import Animated, {FadeIn, FadeOut} from 'react-native-reanimated'
1111import {AppBskyRichtextFacet, RichText} from '@atproto/api'
1212-import {Trans} from '@lingui/macro'
1212+import {Trans} from '@lingui/react/macro'
1313import {Document} from '@tiptap/extension-document'
1414import Hardbreak from '@tiptap/extension-hard-break'
1515import History from '@tiptap/extension-history'
···11import {View} from 'react-native'
22import Animated, {FadeInDown, FadeOut} from 'react-native-reanimated'
33import {type AppBskyActorDefs} from '@atproto/api'
44-import {Trans} from '@lingui/macro'
44+import {Trans} from '@lingui/react/macro'
5566import {PressableScale} from '#/lib/custom-animations/PressableScale'
77import {sanitizeDisplayName} from '#/lib/strings/display-names'
···11import {forwardRef, useEffect, useImperativeHandle, useState} from 'react'
22import {Pressable, View} from 'react-native'
33import {type AppBskyActorDefs, type ModerationOpts} from '@atproto/api'
44-import {Trans} from '@lingui/macro'
44+import {Trans} from '@lingui/react/macro'
55import {ReactRenderer} from '@tiptap/react'
66import {
77 type SuggestionKeyDownProps,
···11import React from 'react'
22import {Pressable, useWindowDimensions, View} from 'react-native'
33import Picker from '@emoji-mart/react'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66import {DismissableLayer, FocusScope} from 'radix-ui/internal'
77
···22import {Keyboard, type StyleProp, type ViewStyle} from 'react-native'
33import {type AnimatedStyle} from 'react-native-reanimated'
44import {type AppBskyFeedPostgate} from '@atproto/api'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
78import deepEqual from 'fast-deep-equal'
89910import {isNetworkError} from '#/lib/strings/errors'
+2-1
src/view/com/composer/videos/SubtitleDialog.tsx
···11import {useCallback, useState} from 'react'
22import {Keyboard, type StyleProp, View, type ViewStyle} from 'react-native'
33-import {msg, Plural, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Plural, Trans} from '@lingui/react/macro'
5667import {MAX_ALT_TEXT} from '#/lib/constants'
78import {isOverMaxGraphemeCount} from '#/lib/strings/helpers'
···11import {useRef} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import type React from 'react'
6778import {logger} from '#/logger'
+1-1
src/view/com/composer/videos/VideoPreview.web.tsx
···11import {View} from 'react-native'
22import {type ImagePickerAsset} from 'expo-image-picker'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {type CompressedVideo} from '#/lib/media/video/types'
+2-1
src/view/com/feeds/ComposerPrompt.tsx
···11import {useCallback, useState} from 'react'
22import {Keyboard, Pressable, View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useOpenComposer} from '#/lib/hooks/useOpenComposer'
78import {
+1-1
src/view/com/feeds/FeedPage.tsx
···88} from 'react'
99import {View} from 'react-native'
1010import {type AppBskyActorDefs, AppBskyFeedDefs} from '@atproto/api'
1111-import {msg} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313import {type NavigationProp, useNavigation} from '@react-navigation/native'
1414import {useQueryClient} from '@tanstack/react-query'
+2-1
src/view/com/feeds/FeedSourceCard.tsx
···55 type AppBskyGraphDefs,
66 AtUri,
77} from '@atproto/api'
88-import {msg, Plural, Trans} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Plural, Trans} from '@lingui/react/macro'
10111112import {sanitizeHandle} from '#/lib/strings/handles'
1213import {
+2-1
src/view/com/feeds/MissingFeed.tsx
···11import {type StyleProp, View, type ViewStyle} from 'react-native'
22import {AtUri} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {cleanError} from '#/lib/strings/errors'
78import {useModerationOpts} from '#/state/preferences/moderation-opts'
+1-1
src/view/com/feeds/ProfileFeedgens.tsx
···1313 View,
1414 type ViewStyle,
1515} from 'react-native'
1616-import {msg} from '@lingui/macro'
1616+import {msg} from '@lingui/core/macro'
1717import {useLingui} from '@lingui/react'
1818import {useNavigation} from '@react-navigation/native'
1919import {useQueryClient} from '@tanstack/react-query'
+1-1
src/view/com/home/HomeHeaderLayout.web.tsx
···11import {type JSX} from 'react'
22import {View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55import type React from 'react'
66
+1-1
src/view/com/home/HomeHeaderLayoutMobile.tsx
···11import {type JSX} from 'react'
22import {View} from 'react-native'
33import Animated from 'react-native-reanimated'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
6677import {HITSLOP_10} from '#/lib/constants'
···88import {StyleSheet, TouchableOpacity, type ViewStyle} from 'react-native'
99import {SafeAreaView} from 'react-native-safe-area-context'
1010import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
1111-import {msg} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
13131414import {createHitslop} from '#/lib/constants'
+1-2
src/view/com/lightbox/ImageViewing/index.tsx
···77 */
88// Original code copied and simplified from the link below as the codebase is currently not maintained:
99// https://github.com/jobtoday/react-native-image-viewing
1010-1110import React, {useCallback, useEffect, useMemo, useState} from 'react'
1211import {
1312 LayoutAnimation,
···3938import {SafeAreaView} from 'react-native-safe-area-context'
4039import * as ScreenOrientation from 'expo-screen-orientation'
4140import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
4242-import {Trans} from '@lingui/macro'
4141+import {Trans} from '@lingui/react/macro'
43424443import {type Dimensions} from '#/lib/media/types'
4544import {colors, s} from '#/lib/styles'
+1-1
src/view/com/lightbox/Lightbox.web.tsx
···11import {useCallback, useEffect, useRef, useState} from 'react'
22import {Pressable, StyleSheet, View} from 'react-native'
33import {Image} from 'expo-image'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66import {FocusGuards, FocusScope} from 'radix-ui/internal'
77import {RemoveScrollBar} from 'react-remove-scroll-bar'
+2-1
src/view/com/lists/ListMembers.tsx
···77 type ViewStyle,
88} from 'react-native'
99import {type AppBskyGraphDefs} from '@atproto/api'
1010-import {msg, Trans} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
1212+import {Trans} from '@lingui/react/macro'
12131314import {cleanError} from '#/lib/strings/errors'
1415import {logger} from '#/logger'
+1-1
src/view/com/lists/MyLists.tsx
···88 type ViewStyle,
99} from 'react-native'
1010import {type AppBskyGraphDefs as GraphDefs} from '@atproto/api'
1111-import {msg} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
13131414import {usePalette} from '#/lib/hooks/usePalette'
+1-1
src/view/com/lists/ProfileLists.tsx
···1313 View,
1414 type ViewStyle,
1515} from 'react-native'
1616-import {msg} from '@lingui/macro'
1616+import {msg} from '@lingui/core/macro'
1717import {useLingui} from '@lingui/react'
1818import {useNavigation} from '@react-navigation/native'
1919import {useQueryClient} from '@tanstack/react-query'
+2-1
src/view/com/modals/UserAddRemoveLists.tsx
···66 View,
77} from 'react-native'
88import {type AppBskyGraphDefs as GraphDefs} from '@atproto/api'
99-import {msg, Trans} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111+import {Trans} from '@lingui/react/macro'
11121213import {usePalette} from '#/lib/hooks/usePalette'
1314import {sanitizeDisplayName} from '#/lib/strings/display-names'
+1-1
src/view/com/notifications/NotificationFeed.tsx
···55 StyleSheet,
66 View,
77} from 'react-native'
88-import {msg} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
10101111import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
···1818} from '@atproto/api'
1919import {AtUri} from '@atproto/api'
2020import {TID} from '@atproto/common-web'
2121-import {msg, Plural, plural, Trans} from '@lingui/macro'
2121+import {msg, plural} from '@lingui/core/macro'
2222import {useLingui} from '@lingui/react'
2323+import {Plural, Trans} from '@lingui/react/macro'
2324import {useNavigation} from '@react-navigation/native'
2425import {useQueryClient} from '@tanstack/react-query'
25262626-import {MAX_POST_LINES} from '#/lib/constants'
2727-import {DM_SERVICE_HEADERS} from '#/lib/constants'
2727+import {DM_SERVICE_HEADERS, MAX_POST_LINES} from '#/lib/constants'
2828import {useAnimatedValue} from '#/lib/hooks/useAnimatedValue'
2929import {usePalette} from '#/lib/hooks/usePalette'
3030import {makeProfileLink} from '#/lib/routes/links'
···880880 setIsLoading(true)
881881 const res = await agent.api.chat.bsky.convo.getConvoForMembers(
882882 {
883883- members: [profile.did, agent.session!.did!],
883883+ members: [profile.did, agent.session!.did],
884884 },
885885 {headers: DM_SERVICE_HEADERS},
886886 )
+1-1
src/view/com/post-thread/PostLikedBy.tsx
···11import {useCallback, useMemo, useState} from 'react'
22import {type AppBskyFeedGetLikes as GetLikes} from '@atproto/api'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
+1-1
src/view/com/post-thread/PostQuotes.tsx
···55 moderatePost,
66 type ModerationDecision,
77} from '@atproto/api'
88-import {msg} from '@lingui/macro'
88+import {msg} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
10101111import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
+1-1
src/view/com/post-thread/PostRepostedBy.tsx
···11import {useCallback, useMemo, useState} from 'react'
22import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
+1-1
src/view/com/posts/CustomFeedEmptyState.tsx
···44 FontAwesomeIcon,
55 type FontAwesomeIconStyle,
66} from '@fortawesome/react-native-fontawesome'
77-import {Trans} from '@lingui/macro'
77+import {Trans} from '@lingui/react/macro'
88import {useNavigation} from '@react-navigation/native'
991010import {DISCOVER_FEED_URI} from '#/lib/constants'
+1-1
src/view/com/posts/DiscoverFallbackHeader.tsx
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {usePalette} from '#/lib/hooks/usePalette'
55import {InfoCircleIcon} from '#/lib/icons'
+2-1
src/view/com/posts/FeedShutdownMsg.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {PROD_DEFAULT_FEED} from '#/lib/constants'
78import {logger} from '#/logger'
+1-1
src/view/com/posts/FollowingEmptyState.tsx
···44 FontAwesomeIcon,
55 type FontAwesomeIconStyle,
66} from '@fortawesome/react-native-fontawesome'
77-import {Trans} from '@lingui/macro'
77+import {Trans} from '@lingui/react/macro'
88import {useNavigation} from '@react-navigation/native'
991010import {usePalette} from '#/lib/hooks/usePalette'
+1-1
src/view/com/posts/FollowingEndOfFeed.tsx
···44 FontAwesomeIcon,
55 type FontAwesomeIconStyle,
66} from '@fortawesome/react-native-fontawesome'
77-import {Trans} from '@lingui/macro'
77+import {Trans} from '@lingui/react/macro'
88import {useNavigation} from '@react-navigation/native'
991010import {usePalette} from '#/lib/hooks/usePalette'
+1-1
src/view/com/posts/PostFeed.tsx
···1515 AppBskyEmbedVideo,
1616 type AppBskyFeedDefs,
1717} from '@atproto/api'
1818-import {msg} from '@lingui/macro'
1818+import {msg} from '@lingui/core/macro'
1919import {useLingui} from '@lingui/react'
2020import {useQueryClient} from '@tanstack/react-query'
2121
+2-1
src/view/com/posts/PostFeedErrorMessage.tsx
···55 AppBskyFeedGetAuthorFeed,
66 AtUri,
77} from '@atproto/api'
88-import {msg as msgLingui, Trans} from '@lingui/macro'
88+import {msg as msgLingui} from '@lingui/core/macro'
99import {useLingui} from '@lingui/react'
1010+import {Trans} from '@lingui/react/macro'
1011import {useNavigation} from '@react-navigation/native'
11121213import {usePalette} from '#/lib/hooks/usePalette'
+2-1
src/view/com/posts/PostFeedReason.tsx
···11import {StyleSheet, View} from 'react-native'
22import {AppBskyFeedDefs, type ModerationDecision} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {isReasonFeedSource, type ReasonFeedSource} from '#/lib/api/feed/types'
78import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name'
+1-1
src/view/com/posts/ShowLessFollowup.tsx
···11import {View} from 'react-native'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
3344import {atoms as a, useTheme} from '#/alf'
55import {CircleCheck_Stroke2_Corner0_Rounded} from '#/components/icons/CircleCheck'
+1-1
src/view/com/posts/ViewFullThread.tsx
···22import {StyleSheet, View} from 'react-native'
33import Svg, {Circle, Line} from 'react-native-svg'
44import {AtUri} from '@atproto/api'
55-import {msg} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
7788import {usePalette} from '#/lib/hooks/usePalette'
+1-1
src/view/com/profile/ProfileFollowers.tsx
···11import React from 'react'
22import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55import {useNavigation} from '@react-navigation/native'
66
+1-1
src/view/com/profile/ProfileFollows.tsx
···11import React from 'react'
22import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55import {useNavigation} from '@react-navigation/native'
66
+2-1
src/view/com/profile/ProfileMenu.tsx
···11import React, {memo} from 'react'
22import {type AppBskyActorDefs} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useNavigation} from '@react-navigation/native'
67import {useQueryClient} from '@tanstack/react-query'
78
+2-1
src/view/com/profile/ProfileSubpageHeader.tsx
···88 useAnimatedRef,
99} from 'react-native-reanimated'
1010import {type AppBskyGraphDefs} from '@atproto/api'
1111-import {msg, Trans} from '@lingui/macro'
1111+import {msg} from '@lingui/core/macro'
1212import {useLingui} from '@lingui/react'
1313+import {Trans} from '@lingui/react/macro'
1314import {useNavigation} from '@react-navigation/native'
14151516import {usePalette} from '#/lib/hooks/usePalette'
+2-2
src/view/com/util/BottomSheetCustomBackdrop.tsx
···66 useAnimatedStyle,
77} from 'react-native-reanimated'
88import {type BottomSheetBackdropProps} from '@discord/bottom-sheet/src'
99-import {msg} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111import type React from 'react'
12121313export function createCustomBackdrop(
1414- onClose?: (() => void) | undefined,
1414+ onClose?: () => void,
1515): React.FC<BottomSheetBackdropProps> {
1616 const CustomBackdrop = ({animatedIndex, style}: BottomSheetBackdropProps) => {
1717 const {_} = useLingui()
+1-1
src/view/com/util/ErrorBoundary.tsx
···11import {Component, type ErrorInfo, type ReactNode} from 'react'
22import {type StyleProp, type ViewStyle} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {logger} from '#/logger'
+1-1
src/view/com/util/PostMeta.tsx
···11import {memo, useCallback} from 'react'
22import {type StyleProp, View, type ViewStyle} from 'react-native'
33import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api'
44-import {msg} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66import {useQueryClient} from '@tanstack/react-query'
77
+2-1
src/view/com/util/UserAvatar.tsx
···1111import {Image as ExpoImage} from 'expo-image'
1212import {type ModerationUI} from '@atproto/api'
1313import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
1414-import {msg, Trans} from '@lingui/macro'
1414+import {msg} from '@lingui/core/macro'
1515import {useLingui} from '@lingui/react'
1616+import {Trans} from '@lingui/react/macro'
1617import {useQueryClient} from '@tanstack/react-query'
17181819import {useHaptics} from '#/lib/haptics'
+2-1
src/view/com/util/UserBanner.tsx
···22import {Pressable, StyleSheet, View} from 'react-native'
33import {Image} from 'expo-image'
44import {type ModerationUI} from '@atproto/api'
55-import {msg, Trans} from '@lingui/macro'
55+import {msg} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
7889import {
910 useCameraPermission,
+1-1
src/view/com/util/error/ErrorMessage.tsx
···99 FontAwesomeIcon,
1010 type FontAwesomeIconStyle,
1111} from '@fortawesome/react-native-fontawesome'
1212-import {msg} from '@lingui/macro'
1212+import {msg} from '@lingui/core/macro'
1313import {useLingui} from '@lingui/react'
14141515import {usePalette} from '#/lib/hooks/usePalette'
+2-1
src/view/com/util/error/ErrorScreen.tsx
···33 FontAwesomeIcon,
44 type FontAwesomeIconStyle,
55} from '@fortawesome/react-native-fontawesome'
66-import {msg, Trans} from '@lingui/macro'
66+import {msg} from '@lingui/core/macro'
77import {useLingui} from '@lingui/react'
88+import {Trans} from '@lingui/react/macro'
89910import {usePalette} from '#/lib/hooks/usePalette'
1011import {atoms as a, useTheme} from '#/alf'
+2-1
src/view/screens/CommunityGuidelines.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useFocusEffect} from '@react-navigation/native'
6778import {usePalette} from '#/lib/hooks/usePalette'
+2-1
src/view/screens/CopyrightPolicy.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useFocusEffect} from '@react-navigation/native'
6778import {usePalette} from '#/lib/hooks/usePalette'
+1-1
src/view/screens/Debug.tsx
···11import React from 'react'
22import {ScrollView, View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
5566import {usePalette} from '#/lib/hooks/usePalette'
+5-3
src/view/screens/DebugMod.tsx
···1616 type ModerationOpts,
1717 RichText,
1818} from '@atproto/api'
1919-import {msg} from '@lingui/macro'
1919+import {msg} from '@lingui/core/macro'
2020import {useLingui} from '@lingui/react'
21212222import {useGlobalLabelStrings} from '#/lib/moderation/useGlobalLabelStrings'
···2424 type CommonNavigatorParams,
2525 type NativeStackScreenProps,
2626} from '#/lib/routes/types'
2727-import {useModerationOpts} from '#/state/preferences/moderation-opts'
2828-import {moderationOptsOverrideContext} from '#/state/preferences/moderation-opts'
2727+import {
2828+ moderationOptsOverrideContext,
2929+ useModerationOpts,
3030+} from '#/state/preferences/moderation-opts'
2931import {type FeedNotification} from '#/state/queries/notifications/types'
3032import {
3133 groupNotifications,
+2-1
src/view/screens/Feeds.tsx
···11import React from 'react'
22import {ActivityIndicator, StyleSheet, View} from 'react-native'
33import {type AppBskyFeedDefs} from '@atproto/api'
44-import {msg, Trans} from '@lingui/macro'
44+import {msg} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useFocusEffect} from '@react-navigation/native'
78import debounce from 'lodash.debounce'
89
+3-2
src/view/screens/Lists.tsx
···11import {useCallback} from 'react'
22import {AtUri} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useFocusEffect, useNavigation} from '@react-navigation/native'
6778import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
89import {
910 type CommonNavigatorParams,
1011 type NativeStackScreenProps,
1212+ type NavigationProp,
1113} from '#/lib/routes/types'
1212-import {type NavigationProp} from '#/lib/routes/types'
1314import {useSetMinimalShellMode} from '#/state/shell'
1415import {MyLists} from '#/view/com/lists/MyLists'
1516import {atoms as a} from '#/alf'
+1-1
src/view/screens/ModerationBlockedAccounts.tsx
···11import {useCallback, useMemo, useState} from 'react'
22import {type StyleProp, View, type ViewStyle} from 'react-native'
33import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
44-import {Trans} from '@lingui/macro'
44+import {Trans} from '@lingui/react/macro'
55import {useFocusEffect} from '@react-navigation/native'
66import {type NativeStackScreenProps} from '@react-navigation/native-stack'
77
+3-2
src/view/screens/ModerationModlists.tsx
···11import {useCallback} from 'react'
22import {AtUri} from '@atproto/api'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useFocusEffect, useNavigation} from '@react-navigation/native'
6778import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification'
89import {
910 type CommonNavigatorParams,
1011 type NativeStackScreenProps,
1212+ type NavigationProp,
1113} from '#/lib/routes/types'
1212-import {type NavigationProp} from '#/lib/routes/types'
1314import {useSetMinimalShellMode} from '#/state/shell'
1415import {MyLists} from '#/view/com/lists/MyLists'
1516import {atoms as a} from '#/alf'
+1-1
src/view/screens/ModerationMutedAccounts.tsx
···11import {useCallback, useMemo, useState} from 'react'
22import {type StyleProp, View, type ViewStyle} from 'react-native'
33import {type AppBskyActorDefs as ActorDefs} from '@atproto/api'
44-import {Trans} from '@lingui/macro'
44+import {Trans} from '@lingui/react/macro'
55import {useFocusEffect} from '@react-navigation/native'
66import {type NativeStackScreenProps} from '@react-navigation/native-stack'
77
+2-1
src/view/screens/NotFound.tsx
···11import React from 'react'
22import {StyleSheet, View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {
67 StackActions,
78 useFocusEffect,
+2-1
src/view/screens/Notifications.tsx
···11import {useCallback, useEffect, useMemo, useRef, useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useFocusEffect, useIsFocused} from '@react-navigation/native'
67import {useQueryClient} from '@tanstack/react-query'
78
+2-1
src/view/screens/PrivacyPolicy.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useFocusEffect} from '@react-navigation/native'
6778import {usePalette} from '#/lib/hooks/usePalette'
+2-1
src/view/screens/Profile.tsx
···77 type ModerationOpts,
88 RichText as RichTextAPI,
99} from '@atproto/api'
1010-import {msg, Trans} from '@lingui/macro'
1010+import {msg} from '@lingui/core/macro'
1111import {useLingui} from '@lingui/react'
1212+import {Trans} from '@lingui/react/macro'
1213import {useFocusEffect, useNavigation} from '@react-navigation/native'
1314import {useQueryClient} from '@tanstack/react-query'
1415
+1-1
src/view/screens/ProfileFeedLikedBy.tsx
···11import {useCallback} from 'react'
22-import {Trans} from '@lingui/macro'
22+import {Trans} from '@lingui/react/macro'
33import {useFocusEffect} from '@react-navigation/native'
4455import {
+2-1
src/view/screens/Storybook/Admonitions.tsx
···11import {Text as RNText, View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {atoms as a, useTheme} from '#/alf'
67import {
+2-1
src/view/screens/Support.tsx
···11import React from 'react'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
45import {useFocusEffect} from '@react-navigation/native'
5667import {HELP_DESK_URL} from '#/lib/constants'
+2-1
src/view/screens/TermsOfService.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useFocusEffect} from '@react-navigation/native'
6778import {usePalette} from '#/lib/hooks/usePalette'
+2-1
src/view/shell/Drawer.tsx
···11import React, {type ComponentProps, type JSX} from 'react'
22import {Linking, ScrollView, TouchableOpacity, View} from 'react-native'
33import {useSafeAreaInsets} from 'react-native-safe-area-context'
44-import {msg, Plural, plural, Trans} from '@lingui/macro'
44+import {msg, plural} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Plural, Trans} from '@lingui/react/macro'
67import {StackActions, useNavigation} from '@react-navigation/native'
7889import {FEEDBACK_FORM_URL, HELP_DESK_URL} from '#/lib/constants'
+2-1
src/view/shell/NavSignupCard.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
5667import {useLoggedOutViewControls} from '#/state/shell/logged-out'
78import {useCloseAllActiveElements} from '#/state/util'
+2-1
src/view/shell/bottom-bar/BottomBar.tsx
···22import {type GestureResponderEvent, View} from 'react-native'
33import Animated from 'react-native-reanimated'
44import {useSafeAreaInsets} from 'react-native-safe-area-context'
55-import {msg, plural, Trans} from '@lingui/macro'
55+import {msg, plural} from '@lingui/core/macro'
66import {useLingui} from '@lingui/react'
77+import {Trans} from '@lingui/react/macro'
78import {type BottomTabBarProps} from '@react-navigation/bottom-tabs'
89import {StackActions} from '@react-navigation/native'
910
+2-1
src/view/shell/bottom-bar/BottomBarWeb.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import Animated from 'react-native-reanimated'
44-import {msg, plural, Trans} from '@lingui/macro'
44+import {msg, plural} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useNavigationState} from '@react-navigation/native'
7889import {useHideBottomBarBorder} from '#/lib/hooks/useHideBottomBarBorder'
+1-1
src/view/shell/desktop/Feeds.tsx
···11import {Pressable, View} from 'react-native'
22-import {msg} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44import {useNavigation, useNavigationState} from '@react-navigation/native'
55
+2-1
src/view/shell/desktop/LeftNav.tsx
···11import {type JSX, useCallback, useMemo, useState} from 'react'
22import {StyleSheet, View} from 'react-native'
33import {type AppBskyActorDefs} from '@atproto/api'
44-import {msg, plural, Trans} from '@lingui/macro'
44+import {msg, plural} from '@lingui/core/macro'
55import {useLingui} from '@lingui/react'
66+import {Trans} from '@lingui/react/macro'
67import {useNavigation, useNavigationState} from '@react-navigation/native'
7889import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher'
+2-1
src/view/shell/desktop/RightNav.tsx
···11import {useEffect, useState} from 'react'
22import {View} from 'react-native'
33-import {msg, Trans} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55+import {Trans} from '@lingui/react/macro'
56import {useNavigation} from '@react-navigation/core'
6778import {FEEDBACK_FORM_URL, HELP_DESK_URL} from '#/lib/constants'
+1-1
src/view/shell/desktop/Search.tsx
···66 View,
77 type ViewStyle,
88} from 'react-native'
99-import {msg} from '@lingui/macro'
99+import {msg} from '@lingui/core/macro'
1010import {useLingui} from '@lingui/react'
1111import {StackActions, useNavigation} from '@react-navigation/native'
1212
+2-1
src/view/shell/desktop/SidebarTrendingTopics.tsx
···11import {View} from 'react-native'
22-import {msg, Trans} from '@lingui/macro'
22+import {msg} from '@lingui/core/macro'
33import {useLingui} from '@lingui/react'
44+import {Trans} from '@lingui/react/macro'
4556import {
67 useTrendingSettings,
+1-1
src/view/shell/index.web.tsx
···11import {useCallback, useEffect, useLayoutEffect, useState} from 'react'
22import {StyleSheet, TouchableWithoutFeedback, View} from 'react-native'
33-import {msg} from '@lingui/macro'
33+import {msg} from '@lingui/core/macro'
44import {useLingui} from '@lingui/react'
55import {useNavigation} from '@react-navigation/native'
66import {RemoveScrollBar} from 'react-remove-scroll-bar'