···11import React from 'react'
22import {View} from 'react-native'
33-import {atoms as a, useTheme, ViewStyleProp, flatten} from '#/alf'
33+44+import {atoms as a, flatten, useTheme, ViewStyleProp} from '#/alf'
4556export function Divider({style}: ViewStyleProp) {
67 const t = useTheme()
+2-2
src/components/Error.tsx
···33import {msg, Trans} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
5566-import {useGoBack} from 'lib/hooks/useGoBack'
77-import {CenteredView} from 'view/com/util/Views'
66+import {useGoBack} from '#/lib/hooks/useGoBack'
77+import {CenteredView} from '#/view/com/util/Views'
88import {atoms as a, useBreakpoints, useTheme} from '#/alf'
99import {Button, ButtonText} from '#/components/Button'
1010import {Text} from '#/components/Typography'
+2-2
src/components/LikedByList.tsx
···33import {msg} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
5566+import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
77+import {cleanError} from '#/lib/strings/errors'
68import {logger} from '#/logger'
79import {useLikedByQuery} from '#/state/queries/post-liked-by'
810import {useResolveUriQuery} from '#/state/queries/resolve-uri'
99-import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender'
1010-import {cleanError} from 'lib/strings/errors'
1111import {ProfileCardWithFollowBtn} from '#/view/com/profile/ProfileCard'
1212import {List} from '#/view/com/util/List'
1313import {ListFooter, ListMaybePlaceholder} from '#/components/Lists'
+2-2
src/components/Lists.tsx
···33import {msg, Trans} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
5566-import {cleanError} from 'lib/strings/errors'
77-import {CenteredView} from 'view/com/util/Views'
66+import {cleanError} from '#/lib/strings/errors'
77+import {CenteredView} from '#/view/com/util/Views'
88import {atoms as a, flatten, useBreakpoints, useTheme} from '#/alf'
99import {Button, ButtonText} from '#/components/Button'
1010import {Error} from '#/components/Error'
+2-2
src/components/ProfileHoverCard/index.web.tsx
···55import {msg, plural} from '@lingui/macro'
66import {useLingui} from '@lingui/react'
7788+import {isTouchDevice} from '#/lib/browser'
89import {getModerationCauseKey} from '#/lib/moderation'
910import {makeProfileLink} from '#/lib/routes/links'
1011import {sanitizeDisplayName} from '#/lib/strings/display-names'
1112import {sanitizeHandle} from '#/lib/strings/handles'
1313+import {useProfileShadow} from '#/state/cache/profile-shadow'
1214import {useModerationOpts} from '#/state/preferences/moderation-opts'
1315import {usePrefetchProfileQuery, useProfileQuery} from '#/state/queries/profile'
1416import {useSession} from '#/state/session'
1515-import {isTouchDevice} from 'lib/browser'
1616-import {useProfileShadow} from 'state/cache/profile-shadow'
1717import {formatCount} from '#/view/com/util/numeric/format'
1818import {UserAvatar} from '#/view/com/util/UserAvatar'
1919import {ProfileHeaderHandle} from '#/screens/Profile/Header/Handle'
+3-3
src/components/StarterPack/Main/FeedsList.tsx
···33import {AppBskyFeedDefs} from '@atproto/api'
44import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs'
5566-import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset'
77-import {isNative, isWeb} from 'platform/detection'
88-import {List, ListRef} from 'view/com/util/List'
66+import {useBottomBarOffset} from '#/lib/hooks/useBottomBarOffset'
77+import {isNative, isWeb} from '#/platform/detection'
88+import {List, ListRef} from '#/view/com/util/List'
99import {SectionRef} from '#/screens/Profile/Sections/types'
1010import {atoms as a, useTheme} from '#/alf'
1111import * as FeedCard from '#/components/FeedCard'
+4-4
src/components/StarterPack/Main/PostsList.tsx
···33import {msg} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
5566+import {isNative} from '#/platform/detection'
67import {FeedDescriptor} from '#/state/queries/post-feed'
77-import {isNative} from 'platform/detection'
88-import {Feed} from 'view/com/posts/Feed'
99-import {EmptyState} from 'view/com/util/EmptyState'
1010-import {ListRef} from 'view/com/util/List'
88+import {Feed} from '#/view/com/posts/Feed'
99+import {EmptyState} from '#/view/com/util/EmptyState'
1010+import {ListRef} from '#/view/com/util/List'
1111import {SectionRef} from '#/screens/Profile/Sections/types'
12121313interface ProfilesListProps {
+7-7
src/components/StarterPack/Main/ProfilesList.tsx
···88} from '@atproto/api'
99import {InfiniteData, UseInfiniteQueryResult} from '@tanstack/react-query'
10101111-import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset'
1212-import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender'
1313-import {isBlockedOrBlocking} from 'lib/moderation/blocked-and-muted'
1414-import {isNative, isWeb} from 'platform/detection'
1515-import {useAllListMembersQuery} from 'state/queries/list-members'
1616-import {useSession} from 'state/session'
1717-import {List, ListRef} from 'view/com/util/List'
1111+import {useBottomBarOffset} from '#/lib/hooks/useBottomBarOffset'
1212+import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
1313+import {isBlockedOrBlocking} from '#/lib/moderation/blocked-and-muted'
1414+import {isNative, isWeb} from '#/platform/detection'
1515+import {useAllListMembersQuery} from '#/state/queries/list-members'
1616+import {useSession} from '#/state/session'
1717+import {List, ListRef} from '#/view/com/util/List'
1818import {SectionRef} from '#/screens/Profile/Sections/types'
1919import {atoms as a, useTheme} from '#/alf'
2020import {ListFooter, ListMaybePlaceholder} from '#/components/Lists'
···77 SlideInRight,
88} from 'react-native-reanimated'
991010-import {isWeb} from 'platform/detection'
1010+import {isWeb} from '#/platform/detection'
11111212export function ScreenTransition({
1313 direction,
+2-2
src/components/dms/ActionsWrapper.tsx
···1212import {msg} from '@lingui/macro'
1313import {useLingui} from '@lingui/react'
14141515-import {HITSLOP_10} from 'lib/constants'
1616-import {useHaptics} from 'lib/haptics'
1515+import {HITSLOP_10} from '#/lib/constants'
1616+import {useHaptics} from '#/lib/haptics'
1717import {atoms as a} from '#/alf'
1818import {MessageMenu} from '#/components/dms/MessageMenu'
1919import {useMenuControl} from '#/components/Menu'
+1-1
src/components/dms/BlockedByListDialog.tsx
···44import {msg} from '@lingui/macro'
55import {useLingui} from '@lingui/react'
6677-import {listUriToHref} from 'lib/strings/url-helpers'
77+import {listUriToHref} from '#/lib/strings/url-helpers'
88import {atoms as a, useTheme} from '#/alf'
99import * as Dialog from '#/components/Dialog'
1010import {DialogControlProps} from '#/components/Dialog'
+4-4
src/components/dms/ChatEmptyPill.tsx
···99import {msg} from '@lingui/macro'
1010import {useLingui} from '@lingui/react'
11111212-import {ScaleAndFadeIn} from 'lib/custom-animations/ScaleAndFade'
1313-import {ShrinkAndPop} from 'lib/custom-animations/ShrinkAndPop'
1414-import {useHaptics} from 'lib/haptics'
1515-import {isWeb} from 'platform/detection'
1212+import {ScaleAndFadeIn} from '#/lib/custom-animations/ScaleAndFade'
1313+import {ShrinkAndPop} from '#/lib/custom-animations/ShrinkAndPop'
1414+import {useHaptics} from '#/lib/haptics'
1515+import {isWeb} from '#/platform/detection'
1616import {atoms as a, useTheme} from '#/alf'
1717import {Text} from '#/components/Typography'
1818
+4-4
src/components/dms/LeaveConvoPrompt.tsx
···33import {useLingui} from '@lingui/react'
44import {useNavigation} from '@react-navigation/native'
5566-import {NavigationProp} from 'lib/routes/types'
77-import {isNative} from 'platform/detection'
88-import {useLeaveConvo} from 'state/queries/messages/leave-conversation'
99-import * as Toast from 'view/com/util/Toast'
66+import {NavigationProp} from '#/lib/routes/types'
77+import {isNative} from '#/platform/detection'
88+import {useLeaveConvo} from '#/state/queries/messages/leave-conversation'
99+import * as Toast from '#/view/com/util/Toast'
1010import {DialogOuterProps} from '#/components/Dialog'
1111import * as Prompt from '#/components/Prompt'
1212
+2-2
src/components/dms/MessagesListBlockedFooter.tsx
···44import {msg, Trans} from '@lingui/macro'
55import {useLingui} from '@lingui/react'
6677-import {useProfileShadow} from 'state/cache/profile-shadow'
88-import {useProfileBlockMutationQueue} from 'state/queries/profile'
77+import {useProfileShadow} from '#/state/cache/profile-shadow'
88+import {useProfileBlockMutationQueue} from '#/state/queries/profile'
99import {atoms as a, useBreakpoints, useTheme} from '#/alf'
1010import {Button, ButtonText} from '#/components/Button'
1111import {useDialogControl} from '#/components/Dialog'
+3-3
src/components/dms/NewMessagesPill.tsx
···1212import {
1313 ScaleAndFadeIn,
1414 ScaleAndFadeOut,
1515-} from 'lib/custom-animations/ScaleAndFade'
1616-import {useHaptics} from 'lib/haptics'
1717-import {isAndroid, isIOS, isWeb} from 'platform/detection'
1515+} from '#/lib/custom-animations/ScaleAndFade'
1616+import {useHaptics} from '#/lib/haptics'
1717+import {isAndroid, isIOS, isWeb} from '#/platform/detection'
1818import {atoms as a, useTheme} from '#/alf'
1919import {Text} from '#/components/Typography'
2020
···33import {
44 createStarterPackLinkFromAndroidReferrer,
55 httpStarterPackUriToAtUri,
66-} from 'lib/strings/starter-pack'
77-import {isAndroid} from 'platform/detection'
88-import {useHasCheckedForStarterPack} from 'state/preferences/used-starter-packs'
99-import {useSetActiveStarterPack} from 'state/shell/starter-pack'
66+} from '#/lib/strings/starter-pack'
77+import {isAndroid} from '#/platform/detection'
88+import {useHasCheckedForStarterPack} from '#/state/preferences/used-starter-packs'
99+import {useSetActiveStarterPack} from '#/state/shell/starter-pack'
1010import {Referrer, SharedPrefs} from '../../../modules/expo-bluesky-swiss-army'
11111212export function useStarterPackEntry() {
+2-2
src/components/hooks/useStarterPackEntry.ts
···11import React from 'react'
2233-import {httpStarterPackUriToAtUri} from 'lib/strings/starter-pack'
44-import {useSetActiveStarterPack} from 'state/shell/starter-pack'
33+import {httpStarterPackUriToAtUri} from '#/lib/strings/starter-pack'
44+import {useSetActiveStarterPack} from '#/state/shell/starter-pack'
5566export function useStarterPackEntry() {
77 const [ready, setReady] = React.useState(false)
+2-2
src/components/moderation/PostHider.tsx
···66import {useQueryClient} from '@tanstack/react-query'
7788import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
99-import {addStyle} from 'lib/styles'
1010-import {precacheProfile} from 'state/queries/profile'
99+import {addStyle} from '#/lib/styles'
1010+import {precacheProfile} from '#/state/queries/profile'
1111// import {Link} from '#/components/Link' TODO this imposes some styles that screw things up
1212import {Link} from '#/view/com/util/Link'
1313import {atoms as a, useTheme} from '#/alf'
+1-1
src/components/moderation/ProfileHeaderAlerts.tsx
···22import {StyleProp, ViewStyle} from 'react-native'
33import {ModerationDecision} from '@atproto/api'
4455-import {getModerationCauseKey} from 'lib/moderation'
55+import {getModerationCauseKey} from '#/lib/moderation'
66import * as Pills from '#/components/Pills'
7788export function ProfileHeaderAlerts({
+3-3
src/lib/api/feed/merge.ts
···11import {AppBskyFeedDefs, AppBskyFeedGetTimeline, BskyAgent} from '@atproto/api'
22import shuffle from 'lodash.shuffle'
3344+import {bundleAsync} from '#/lib/async/bundle'
55+import {timeout} from '#/lib/async/timeout'
66+import {feedUriToHref} from '#/lib/strings/url-helpers'
47import {getContentLanguages} from '#/state/preferences/languages'
58import {FeedParams} from '#/state/queries/post-feed'
66-import {bundleAsync} from 'lib/async/bundle'
77-import {timeout} from 'lib/async/timeout'
88-import {feedUriToHref} from 'lib/strings/url-helpers'
99import {FeedTuner} from '../feed-manip'
1010import {FeedTunerFn} from '../feed-manip'
1111import {FeedAPI, FeedAPIResponse, ReasonFeedSource} from './types'
+1-1
src/lib/async/retry.ts
···11-import {isNetworkError} from 'lib/strings/errors'
11+import {isNetworkError} from '#/lib/strings/errors'
2233export async function retry<P>(
44 retries: number,
+4-4
src/lib/custom-animations/CountWheel.tsx
···88} from 'react-native-reanimated'
99import {i18n} from '@lingui/core'
10101111-import {decideShouldRoll} from 'lib/custom-animations/util'
1212-import {s} from 'lib/styles'
1313-import {formatCount} from 'view/com/util/numeric/format'
1414-import {Text} from 'view/com/util/text/Text'
1111+import {decideShouldRoll} from '#/lib/custom-animations/util'
1212+import {s} from '#/lib/styles'
1313+import {formatCount} from '#/view/com/util/numeric/format'
1414+import {Text} from '#/view/com/util/text/Text'
1515import {atoms as a, useTheme} from '#/alf'
16161717const animationConfig = {
+4-4
src/lib/custom-animations/CountWheel.web.tsx
···33import {useReducedMotion} from 'react-native-reanimated'
44import {i18n} from '@lingui/core'
5566-import {decideShouldRoll} from 'lib/custom-animations/util'
77-import {s} from 'lib/styles'
88-import {formatCount} from 'view/com/util/numeric/format'
99-import {Text} from 'view/com/util/text/Text'
66+import {decideShouldRoll} from '#/lib/custom-animations/util'
77+import {s} from '#/lib/styles'
88+import {formatCount} from '#/view/com/util/numeric/format'
99+import {Text} from '#/view/com/util/text/Text'
1010import {atoms as a, useTheme} from '#/alf'
11111212const animationConfig = {
+1-1
src/lib/custom-animations/LikeIcon.tsx
···66 useReducedMotion,
77} from 'react-native-reanimated'
8899-import {s} from 'lib/styles'
99+import {s} from '#/lib/styles'
1010import {useTheme} from '#/alf'
1111import {
1212 Heart2_Filled_Stroke2_Corner0_Rounded as HeartIconFilled,
+1-1
src/lib/custom-animations/LikeIcon.web.tsx
···22import {View} from 'react-native'
33import {useReducedMotion} from 'react-native-reanimated'
4455-import {s} from 'lib/styles'
55+import {s} from '#/lib/styles'
66import {useTheme} from '#/alf'
77import {
88 Heart2_Filled_Stroke2_Corner0_Rounded as HeartIconFilled,
+5-5
src/lib/generate-starterpack.ts
···88import {useLingui} from '@lingui/react'
99import {useMutation} from '@tanstack/react-query'
10101111-import {until} from 'lib/async/until'
1212-import {sanitizeDisplayName} from 'lib/strings/display-names'
1313-import {sanitizeHandle} from 'lib/strings/handles'
1414-import {enforceLen} from 'lib/strings/helpers'
1515-import {useAgent} from 'state/session'
1111+import {until} from '#/lib/async/until'
1212+import {sanitizeDisplayName} from '#/lib/strings/display-names'
1313+import {sanitizeHandle} from '#/lib/strings/handles'
1414+import {enforceLen} from '#/lib/strings/helpers'
1515+import {useAgent} from '#/state/session'
16161717export const createStarterPackList = async ({
1818 name,
···11-import {useRef, useEffect} from 'react'
11+import {useEffect, useRef} from 'react'
22import {useAnimatedScrollHandler as useAnimatedScrollHandler_BUGGY} from 'react-native-reanimated'
3344export const useAnimatedScrollHandler: typeof useAnimatedScrollHandler_BUGGY = (
+3-3
src/lib/hooks/useBottomBarOffset.ts
···11import {useSafeAreaInsets} from 'react-native-safe-area-context'
2233-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
44-import {clamp} from 'lib/numbers'
55-import {isWeb} from 'platform/detection'
33+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
44+import {clamp} from '#/lib/numbers'
55+import {isWeb} from '#/platform/detection'
6677export function useBottomBarOffset(modifier: number = 0) {
88 const {isTabletOrDesktop} = useWebMediaQueries()
+1-1
src/lib/hooks/useColorSchemeStyle.ts
···11-import {useTheme} from 'lib/ThemeContext'
11+import {useTheme} from '#/lib/ThemeContext'
2233export function useColorSchemeStyle<T>(lightStyle: T, darkStyle: T) {
44 const colorScheme = useTheme().colorScheme
+3-2
src/lib/hooks/useCustomPalette.ts
···11import React from 'react'
22-import {useTheme} from 'lib/ThemeContext'
33-import {choose} from 'lib/functions'
22+33+import {choose} from '#/lib/functions'
44+import {useTheme} from '#/lib/ThemeContext'
4556export function useCustomPalette<T>({light, dark}: {light: T; dark: T}) {
67 const theme = useTheme()
+4-3
src/lib/hooks/useDraggableScrollView.ts
···11-import {useEffect, useRef, useMemo, ForwardedRef} from 'react'
22-import {Platform, findNodeHandle} from 'react-native'
11+import {ForwardedRef, useEffect, useMemo, useRef} from 'react'
32import type {ScrollView} from 'react-native'
44-import {mergeRefs} from 'lib/merge-refs'
33+import {findNodeHandle, Platform} from 'react-native'
44+55+import {mergeRefs} from '#/lib/merge-refs'
5667type Props<Scrollable extends ScrollView = ScrollView> = {
78 cursor?: string
+1-1
src/lib/hooks/useGoBack.ts
···11import {StackActions, useNavigation} from '@react-navigation/native'
2233-import {NavigationProp} from 'lib/routes/types'
33+import {NavigationProp} from '#/lib/routes/types'
44import {router} from '#/routes'
5566export function useGoBack(onGoBack?: () => unknown) {
+1-1
src/lib/hooks/useInitialNumToRender.ts
···11import {useWindowDimensions} from 'react-native'
22import {useSafeAreaInsets} from 'react-native-safe-area-context'
3344-import {useBottomBarOffset} from 'lib/hooks/useBottomBarOffset'
44+import {useBottomBarOffset} from '#/lib/hooks/useBottomBarOffset'
5566const MIN_POST_HEIGHT = 100
77
+3-2
src/lib/hooks/useIsKeyboardVisible.ts
···11-import {useState, useEffect} from 'react'
11+import {useEffect, useState} from 'react'
22import {Keyboard} from 'react-native'
33-import {isIOS} from 'platform/detection'
33+44+import {isIOS} from '#/platform/detection'
4556export function useIsKeyboardVisible({
67 iosUseWillEvents,
+4-3
src/lib/hooks/useNavigationDeduped.ts
···11import React from 'react'
22import {useNavigation} from '@react-navigation/core'
33-import {AllNavigatorParams, NavigationProp} from 'lib/routes/types'
33+import {NavigationState} from '@react-navigation/native'
44import type {NavigationAction} from '@react-navigation/routers'
55-import {NavigationState} from '@react-navigation/native'
66-import {useDedupe} from 'lib/hooks/useDedupe'
55+66+import {useDedupe} from '#/lib/hooks/useDedupe'
77+import {AllNavigatorParams, NavigationProp} from '#/lib/routes/types'
7889export type DebouncedNavigationProp = Pick<
910 NavigationProp,
+1-1
src/lib/hooks/useNavigationTabState.ts
···11import {useNavigationState} from '@react-navigation/native'
2233-import {getTabState, TabState} from 'lib/routes/helpers'
33+import {getTabState, TabState} from '#/lib/routes/helpers'
4455export function useNavigationTabState() {
66 return useNavigationState(state => {
+1-1
src/lib/hooks/useNavigationTabState.web.ts
···11import {useNavigationState} from '@react-navigation/native'
2233-import {getCurrentRoute} from 'lib/routes/helpers'
33+import {getCurrentRoute} from '#/lib/routes/helpers'
4455export function useNavigationTabState() {
66 return useNavigationState(state => {
+2-2
src/lib/hooks/useOTAUpdates.ts
···1010 useUpdates,
1111} from 'expo-updates'
12121313+import {IS_TESTFLIGHT} from '#/lib/app-info'
1314import {logger} from '#/logger'
1414-import {IS_TESTFLIGHT} from 'lib/app-info'
1515-import {isIOS} from 'platform/detection'
1515+import {isIOS} from '#/platform/detection'
16161717const MINIMUM_MINIMIZE_TIME = 15 * 60e3
1818
+2-1
src/lib/hooks/usePalette.ts
···11import {useMemo} from 'react'
22import {TextStyle, ViewStyle} from 'react-native'
33-import {useTheme, PaletteColorName, PaletteColor} from '../ThemeContext'
33+44+import {PaletteColor, PaletteColorName, useTheme} from '../ThemeContext'
4556export interface UsePaletteValue {
67 colors: PaletteColor
+2-2
src/lib/hooks/usePermissions.ts
···22import {Camera} from 'expo-camera/legacy' // TODO: Migrate to the new one.
33import * as MediaLibrary from 'expo-media-library'
4455-import {isWeb} from 'platform/detection'
66-import {Alert} from 'view/com/util/Alert'
55+import {isWeb} from '#/platform/detection'
66+import {Alert} from '#/view/com/util/Alert'
7788const openPermissionAlert = (perm: string) => {
99 Alert.alert(
+2-2
src/lib/hooks/useSetTitle.ts
···11import {useEffect} from 'react'
22import {useNavigation} from '@react-navigation/native'
3344-import {NavigationProp} from 'lib/routes/types'
55-import {bskyTitle} from 'lib/strings/headings'
44+import {NavigationProp} from '#/lib/routes/types'
55+import {bskyTitle} from '#/lib/strings/headings'
66import {useUnreadNotifications} from '#/state/queries/notifications/unread'
7788export function useSetTitle(title?: string) {
+2-1
src/lib/hooks/useTabFocusEffect.ts
···11import {useEffect, useState} from 'react'
22import {useNavigation} from '@react-navigation/native'
33-import {getTabState, TabState} from 'lib/routes/helpers'
33+44+import {getTabState, TabState} from '#/lib/routes/helpers'
4556export function useTabFocusEffect(
67 tabName: string,
···11import {useMediaQuery} from 'react-responsive'
22-import {isNative} from 'platform/detection'
22+33+import {isNative} from '#/platform/detection'
3445export function useWebMediaQueries() {
56 const isDesktop = useMediaQuery({minWidth: 1300})
+1-1
src/lib/hooks/useWebScrollRestoration.ts
···11-import {useMemo, useState, useEffect} from 'react'
11+import {useEffect, useMemo, useState} from 'react'
22import {EventArg, useNavigation} from '@react-navigation/core'
3344if ('scrollRestoration' in history) {
+2-1
src/lib/media/image-sizes.ts
···11import {Image} from 'react-native'
22-import type {Dimensions} from 'lib/media/types'
22+33+import type {Dimensions} from '#/lib/media/types'
3445const sizes: Map<string, Dimensions> = new Map()
56const activeRequests: Map<string, Promise<Dimensions>> = new Map()
+1-1
src/lib/media/video/compress.web.ts
···11import {ImagePickerAsset} from 'expo-image-picker'
2233-import {VideoTooLargeError} from 'lib/media/video/errors'
33+import {VideoTooLargeError} from '#/lib/media/video/errors'
44import {CompressedVideo} from './types'
5566const MAX_VIDEO_SIZE = 1024 * 1024 * 50 // 50mb
···11import {AppBskyActorDefs} from '@atproto/api'
2233-import {sanitizeDisplayName} from 'lib/strings/display-names'
44-import {sanitizeHandle} from 'lib/strings/handles'
33+import {sanitizeDisplayName} from '#/lib/strings/display-names'
44+import {sanitizeHandle} from '#/lib/strings/handles'
5566export function createSanitizedDisplayName(
77 profile:
+1-1
src/lib/moderation/useLabelBehaviorDescription.ts
···11import {InterpretedLabelValueDefinition, LabelPreference} from '@atproto/api'
22-import {useLingui} from '@lingui/react'
32import {msg} from '@lingui/macro'
33+import {useLingui} from '@lingui/react'
4455export function useLabelBehaviorDescription(
66 labelValueDef: InterpretedLabelValueDefinition,
+2-2
src/lib/notifications/notifications.ts
···33import {getBadgeCountAsync, setBadgeCountAsync} from 'expo-notifications'
44import {BskyAgent} from '@atproto/api'
5566+import {logEvent} from '#/lib/statsig/statsig'
67import {logger} from '#/logger'
88+import {devicePlatform, isAndroid, isNative} from '#/platform/detection'
79import {SessionAccount, useAgent, useSession} from '#/state/session'
88-import {logEvent} from 'lib/statsig/statsig'
99-import {devicePlatform, isAndroid, isNative} from 'platform/detection'
1010import BackgroundNotificationHandler from '../../../modules/expo-background-notification-handler'
11111212const SERVICE_DID = (serviceUrl?: string) =>
+1-1
src/lib/routes/links.ts
···11import {AppBskyGraphDefs, AtUri} from '@atproto/api'
2233-import {isInvalidHandle} from 'lib/strings/handles'
33+import {isInvalidHandle} from '#/lib/strings/handles'
4455export function makeProfileLink(
66 info: {
+1-1
src/lib/sentry.ts
···77import {nativeApplicationVersion, nativeBuildVersion} from 'expo-application'
88import {init} from '@sentry/react-native'
991010-import {BUILD_ENV, IS_DEV, IS_TESTFLIGHT} from 'lib/app-info'
1010+import {BUILD_ENV, IS_DEV, IS_TESTFLIGHT} from '#/lib/app-info'
11111212/**
1313 * Examples:
+1-1
src/lib/strings/handles.ts
···11// Regex from the go implementation
22// https://github.com/bluesky-social/indigo/blob/main/atproto/syntax/handle.go#L10
33-import {forceLTR} from 'lib/strings/bidi'
33+import {forceLTR} from '#/lib/strings/bidi'
4455const VALIDATE_REGEX =
66 /^([a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$/
+1
src/lib/strings/rich-text-helpers.ts
···11import {AppBskyRichtextFacet, RichText} from '@atproto/api'
22+23import {linkRequiresWarning} from './url-helpers'
3445export function richTextToString(rt: RichText, loose: boolean): string {
+3-3
src/lib/strings/url-helpers.ts
···22import psl from 'psl'
33import TLDs from 'tlds'
4455+import {BSKY_SERVICE} from '#/lib/constants'
66+import {isInvalidHandle} from '#/lib/strings/handles'
77+import {startUriToStarterPackUri} from '#/lib/strings/starter-pack'
58import {logger} from '#/logger'
66-import {BSKY_SERVICE} from 'lib/constants'
77-import {isInvalidHandle} from 'lib/strings/handles'
88-import {startUriToStarterPackUri} from 'lib/strings/starter-pack'
991010export const BSKY_APP_HOST = 'https://bsky.app'
1111const BSKY_TRUSTED_HOSTS = [
+1-1
src/locale/__tests__/helpers.test.ts
···11-import {test, expect} from '@jest/globals'
11+import {expect, test} from '@jest/globals'
2233import {sanitizeAppLanguageSetting} from '#/locale/helpers'
44import {AppLanguage} from '#/locale/languages'
+1-1
src/locale/helpers.ts
···22import * as bcp47Match from 'bcp-47-match'
33import lande from 'lande'
4455-import {hasProp} from 'lib/type-guards'
55+import {hasProp} from '#/lib/type-guards'
66import {
77 AppLanguage,
88 LANGUAGES_MAP_CODE2,
+2-1
src/locale/i18nProvider.tsx
···11import React from 'react'
22+import {i18n} from '@lingui/core'
23import {I18nProvider as DefaultI18nProvider} from '@lingui/react'
33-import {i18n} from '@lingui/core'
44+45import {useLocaleLanguage} from './i18n'
5667export default function I18nProvider({children}: {children: React.ReactNode}) {
+7-7
src/screens/List/ListHiddenScreen.tsx
···55import {useLingui} from '@lingui/react'
66import {useQueryClient} from '@tanstack/react-query'
7788+import {useGoBack} from '#/lib/hooks/useGoBack'
99+import {sanitizeHandle} from '#/lib/strings/handles'
810import {logger} from '#/logger'
911import {RQKEY_ROOT as listQueryRoot} from '#/state/queries/list'
1010-import {useGoBack} from 'lib/hooks/useGoBack'
1111-import {sanitizeHandle} from 'lib/strings/handles'
1212-import {useListBlockMutation, useListMuteMutation} from 'state/queries/list'
1212+import {useListBlockMutation, useListMuteMutation} from '#/state/queries/list'
1313import {
1414 UsePreferencesQueryResponse,
1515 useRemoveFeedMutation,
1616-} from 'state/queries/preferences'
1717-import {useSession} from 'state/session'
1818-import * as Toast from 'view/com/util/Toast'
1919-import {CenteredView} from 'view/com/util/Views'
1616+} from '#/state/queries/preferences'
1717+import {useSession} from '#/state/session'
1818+import * as Toast from '#/view/com/util/Toast'
1919+import {CenteredView} from '#/view/com/util/Views'
2020import {atoms as a, useBreakpoints, useTheme} from '#/alf'
2121import {Button, ButtonIcon, ButtonText} from '#/components/Button'
2222import {EyeSlash_Stroke2_Corner0_Rounded as EyeSlash} from '#/components/icons/EyeSlash'
+4-4
src/screens/Profile/ErrorState.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import {Trans, msg} from '@lingui/macro'
33+import {msg, Trans} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
55import {useNavigation} from '@react-navigation/native'
6677-import {useTheme, atoms as a} from '#/alf'
88-import {Text} from '#/components/Typography'
77+import {NavigationProp} from '#/lib/routes/types'
88+import {atoms as a, useTheme} from '#/alf'
99import {Button, ButtonText} from '#/components/Button'
1010import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo'
1111-import {NavigationProp} from '#/lib/routes/types'
1111+import {Text} from '#/components/Typography'
12121313export function ErrorState({error}: {error: string}) {
1414 const t = useTheme()
+2-2
src/screens/Profile/Header/Metrics.tsx
···44import {msg, plural} from '@lingui/macro'
55import {useLingui} from '@lingui/react'
6677+import {makeProfileLink} from '#/lib/routes/links'
78import {Shadow} from '#/state/cache/types'
88-import {makeProfileLink} from 'lib/routes/links'
99-import {formatCount} from 'view/com/util/numeric/format'
99+import {formatCount} from '#/view/com/util/numeric/format'
1010import {atoms as a, useTheme} from '#/alf'
1111import {InlineLinkText} from '#/components/Link'
1212import {Text} from '#/components/Typography'
+1-1
src/screens/Signup/StepCaptcha/index.tsx
···44import {useLingui} from '@lingui/react'
55import {nanoid} from 'nanoid/non-secure'
6677+import {logEvent} from '#/lib/statsig/statsig'
78import {createFullHandle} from '#/lib/strings/handles'
89import {logger} from '#/logger'
99-import {logEvent} from 'lib/statsig/statsig'
1010import {ScreenTransition} from '#/screens/Login/ScreenTransition'
1111import {useSignupContext} from '#/screens/Signup/state'
1212import {CaptchaWebView} from '#/screens/Signup/StepCaptcha/CaptchaWebView'
+2-2
src/screens/StarterPack/Wizard/State.tsx
···77import {GeneratorView} from '@atproto/api/dist/client/types/app/bsky/feed/defs'
88import {msg} from '@lingui/macro'
991010-import {STARTER_PACK_MAX_SIZE} from 'lib/constants'
1111-import {useSession} from 'state/session'
1010+import {STARTER_PACK_MAX_SIZE} from '#/lib/constants'
1111+import {useSession} from '#/state/session'
1212import * as Toast from '#/view/com/util/Toast'
13131414const steps = ['Details', 'Profiles', 'Feeds'] as const
+2-2
src/screens/StarterPack/Wizard/StepDetails.tsx
···33import {msg, Trans} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
5566-import {useProfileQuery} from 'state/queries/profile'
77-import {useSession} from 'state/session'
66+import {useProfileQuery} from '#/state/queries/profile'
77+import {useSession} from '#/state/session'
88import {useWizardState} from '#/screens/StarterPack/Wizard/State'
99import {atoms as a, useTheme} from '#/alf'
1010import * as TextField from '#/components/forms/TextField'
+1-1
src/state/preferences/external-embeds-prefs.tsx
···11import React from 'react'
2233+import {EmbedPlayerSource} from '#/lib/strings/embed-player'
34import * as persisted from '#/state/persisted'
44-import {EmbedPlayerSource} from 'lib/strings/embed-player'
5566type StateContext = persisted.Schema['externalEmbeds']
77type SetContext = (
+1-1
src/state/queries/messages/conversation.ts
···11import {ChatBskyConvoDefs} from '@atproto/api'
22import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query'
3344+import {STALE} from '#/state/queries'
45import {DM_SERVICE_HEADERS} from '#/state/queries/messages/const'
56import {useOnMarkAsRead} from '#/state/queries/messages/list-converations'
67import {useAgent} from '#/state/session'
77-import {STALE} from 'state/queries'
88import {RQKEY as LIST_CONVOS_KEY} from './list-converations'
991010const RQKEY_ROOT = 'convo'
+1-1
src/state/queries/notifications/unread.tsx
···88import EventEmitter from 'eventemitter3'
991010import BroadcastChannel from '#/lib/broadcast'
1111+import {resetBadgeCount} from '#/lib/notifications/notifications'
1112import {logger} from '#/logger'
1213import {useAgent, useSession} from '#/state/session'
1313-import {resetBadgeCount} from 'lib/notifications/notifications'
1414import {useModerationOpts} from '../../preferences/moderation-opts'
1515import {truncateAndInvalidate} from '../util'
1616import {RQKEY as RQKEY_NOTIFS} from './feed'
+3-3
src/state/queries/post-thread.ts
···1111import {QueryClient, useQuery, useQueryClient} from '@tanstack/react-query'
12121313import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped'
1414+import {findAllPostsInQueryData as findAllPostsInQuoteQueryData} from '#/state/queries/post-quotes'
1415import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types'
1515-import {useAgent} from '#/state/session'
1616-import {findAllPostsInQueryData as findAllPostsInQuoteQueryData} from 'state/queries/post-quotes'
1716import {
1817 findAllPostsInQueryData as findAllPostsInSearchQueryData,
1918 findAllProfilesInQueryData as findAllProfilesInSearchQueryData,
2020-} from 'state/queries/search-posts'
1919+} from '#/state/queries/search-posts'
2020+import {useAgent} from '#/state/session'
2121import {
2222 findAllPostsInQueryData as findAllPostsInNotifsQueryData,
2323 findAllProfilesInQueryData as findAllProfilesInNotifsQueryData,
+3-3
src/state/queries/resolve-short-link.ts
···11import {useQuery} from '@tanstack/react-query'
2233-import {resolveShortLink} from 'lib/link-meta/resolve-short-link'
44-import {parseStarterPackUri} from 'lib/strings/starter-pack'
55-import {STALE} from 'state/queries/index'
33+import {resolveShortLink} from '#/lib/link-meta/resolve-short-link'
44+import {parseStarterPackUri} from '#/lib/strings/starter-pack'
55+import {STALE} from '#/state/queries/index'
6677const ROOT_URI = 'https://go.bsky.app/'
88
+7-7
src/state/queries/starter-packs.ts
···1818} from '@tanstack/react-query'
1919import chunk from 'lodash.chunk'
20202121-import {until} from 'lib/async/until'
2222-import {createStarterPackList} from 'lib/generate-starterpack'
2121+import {until} from '#/lib/async/until'
2222+import {createStarterPackList} from '#/lib/generate-starterpack'
2323import {
2424 createStarterPackUri,
2525 httpStarterPackUriToAtUri,
2626 parseStarterPackUri,
2727-} from 'lib/strings/starter-pack'
2828-import {invalidateActorStarterPacksQuery} from 'state/queries/actor-starter-packs'
2929-import {STALE} from 'state/queries/index'
3030-import {invalidateListMembersQuery} from 'state/queries/list-members'
3131-import {useAgent} from 'state/session'
2727+} from '#/lib/strings/starter-pack'
2828+import {invalidateActorStarterPacksQuery} from '#/state/queries/actor-starter-packs'
2929+import {STALE} from '#/state/queries/index'
3030+import {invalidateListMembersQuery} from '#/state/queries/list-members'
3131+import {useAgent} from '#/state/session'
32323333const RQKEY_ROOT = 'starter-pack'
3434const RQKEY = ({
+5-4
src/view/com/auth/util/HelpTip.tsx
···11import React from 'react'
22import {StyleSheet, View} from 'react-native'
33-import {Text} from 'view/com/util/text/Text'
44-import {InfoCircleIcon} from 'lib/icons'
55-import {s, colors} from 'lib/styles'
66-import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle'
33+44+import {useColorSchemeStyle} from '#/lib/hooks/useColorSchemeStyle'
55+import {InfoCircleIcon} from '#/lib/icons'
66+import {colors, s} from '#/lib/styles'
77+import {Text} from '#/view/com/util/text/Text'
7889export function HelpTip({text}: {text: string}) {
910 const bg = useColorSchemeStyle(
+4-3
src/view/com/auth/util/TextInput.tsx
···11import React, {ComponentProps} from 'react'
22import {StyleSheet, TextInput as RNTextInput, View} from 'react-native'
33+import {IconProp} from '@fortawesome/fontawesome-svg-core'
34import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
44-import {IconProp} from '@fortawesome/fontawesome-svg-core'
55-import {usePalette} from 'lib/hooks/usePalette'
66-import {useTheme} from 'lib/ThemeContext'
55+66+import {usePalette} from '#/lib/hooks/usePalette'
77+import {useTheme} from '#/lib/ThemeContext'
7889interface Props extends Omit<ComponentProps<typeof RNTextInput>, 'onChange'> {
910 testID?: string
···77import {msg} from '@lingui/macro'
88import {useLingui} from '@lingui/react'
991010+import {usePalette} from '#/lib/hooks/usePalette'
1111+import {isNative} from '#/platform/detection'
1012import {useModalControls} from '#/state/modals'
1113import {
1214 hasPostLanguage,
···1416 useLanguagePrefs,
1517 useLanguagePrefsApi,
1618} from '#/state/preferences/languages'
1717-import {usePalette} from 'lib/hooks/usePalette'
1818-import {isNative} from 'platform/detection'
1919import {
2020 DropdownButton,
2121 DropdownItem,
2222 DropdownItemButton,
2323-} from 'view/com/util/forms/DropdownButton'
2424-import {Text} from 'view/com/util/text/Text'
2323+} from '#/view/com/util/forms/DropdownButton'
2424+import {Text} from '#/view/com/util/text/Text'
2525import {codeToLanguageName} from '../../../../locale/helpers'
26262727export function SelectLangBtn() {
···1414 * the facet-set.
1515 */
16161717+import {TAG_REGEX, TRAILING_PUNCTUATION_REGEX} from '@atproto/api'
1718import {Mark} from '@tiptap/core'
1818-import {Plugin, PluginKey} from '@tiptap/pm/state'
1919import {Node as ProsemirrorNode} from '@tiptap/pm/model'
2020+import {Plugin, PluginKey} from '@tiptap/pm/state'
2021import {Decoration, DecorationSet} from '@tiptap/pm/view'
2121-import {TAG_REGEX, TRAILING_PUNCTUATION_REGEX} from '@atproto/api'
22222323function getDecorations(doc: ProsemirrorNode) {
2424 const decorations: Decoration[] = []
+1-1
src/view/com/composer/videos/VideoPreview.tsx
···66import {CompressedVideo} from '#/lib/media/video/types'
77import {clamp} from '#/lib/numbers'
88import {useAutoplayDisabled} from '#/state/preferences'
99-import {ExternalEmbedRemoveBtn} from 'view/com/composer/ExternalEmbedRemoveBtn'
99+import {ExternalEmbedRemoveBtn} from '#/view/com/composer/ExternalEmbedRemoveBtn'
1010import {atoms as a, useTheme} from '#/alf'
1111import {PlayButtonIcon} from '#/components/video/PlayButtonIcon'
1212
+1-1
src/view/com/composer/videos/VideoPreview.web.tsx
···77import {CompressedVideo} from '#/lib/media/video/types'
88import {clamp} from '#/lib/numbers'
99import {useAutoplayDisabled} from '#/state/preferences'
1010+import {ExternalEmbedRemoveBtn} from '#/view/com/composer/ExternalEmbedRemoveBtn'
1011import * as Toast from '#/view/com/util/Toast'
1111-import {ExternalEmbedRemoveBtn} from 'view/com/composer/ExternalEmbedRemoveBtn'
1212import {atoms as a} from '#/alf'
1313import {PlayButtonIcon} from '#/components/video/PlayButtonIcon'
1414
+2-2
src/view/com/home/HomeHeader.tsx
···22import {useNavigation} from '@react-navigation/native'
3344import {usePalette} from '#/lib/hooks/usePalette'
55+import {NavigationProp} from '#/lib/routes/types'
56import {FeedSourceInfo} from '#/state/queries/feed'
67import {useSession} from '#/state/session'
77-import {NavigationProp} from 'lib/routes/types'
88-import {RenderTabBarFnProps} from 'view/com/pager/Pager'
88+import {RenderTabBarFnProps} from '#/view/com/pager/Pager'
99import {TabBar} from '../pager/TabBar'
1010import {HomeHeaderLayout} from './HomeHeaderLayout'
1111
···2233import React from 'react'
44import {View} from 'react-native'
55+56import {ImageSource} from '../../@types'
6778type Props = {
+6-7
src/view/com/lightbox/ImageViewing/index.tsx
···99// https://github.com/jobtoday/react-native-image-viewing
10101111import React, {ComponentType, useCallback, useMemo, useState} from 'react'
1212-import {StyleSheet, View, Platform} from 'react-native'
1212+import {Platform, StyleSheet, View} from 'react-native'
1313+import PagerView from 'react-native-pager-view'
1414+import Animated, {useAnimatedStyle, withSpring} from 'react-native-reanimated'
1515+import {Edge, SafeAreaView} from 'react-native-safe-area-context'
13161717+import {ImageSource} from './@types'
1818+import ImageDefaultHeader from './components/ImageDefaultHeader'
1419import ImageItem from './components/ImageItem/ImageItem'
1515-import ImageDefaultHeader from './components/ImageDefaultHeader'
1616-1717-import {ImageSource} from './@types'
1818-import Animated, {useAnimatedStyle, withSpring} from 'react-native-reanimated'
1919-import {Edge, SafeAreaView} from 'react-native-safe-area-context'
2020-import PagerView from 'react-native-pager-view'
21202221type Props = {
2322 images: ImageSource[]
+5-5
src/view/com/modals/ChangeEmail.tsx
···33import {msg, Trans} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
5566+import {usePalette} from '#/lib/hooks/usePalette'
77+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
88+import {cleanError} from '#/lib/strings/errors'
99+import {colors, s} from '#/lib/styles'
1010+import {isWeb} from '#/platform/detection'
611import {useModalControls} from '#/state/modals'
712import {useAgent, useSession} from '#/state/session'
88-import {usePalette} from 'lib/hooks/usePalette'
99-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
1010-import {cleanError} from 'lib/strings/errors'
1111-import {colors, s} from 'lib/styles'
1212-import {isWeb} from 'platform/detection'
1313import {ErrorMessage} from '../util/error/ErrorMessage'
1414import {Button} from '../util/forms/Button'
1515import {Text} from '../util/text/Text'
+6-6
src/view/com/modals/ChangePassword.tsx
···1111import {useLingui} from '@lingui/react'
1212import * as EmailValidator from 'email-validator'
13131414+import {usePalette} from '#/lib/hooks/usePalette'
1515+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
1616+import {cleanError, isNetworkError} from '#/lib/strings/errors'
1717+import {checkAndFormatResetCode} from '#/lib/strings/password'
1818+import {colors, s} from '#/lib/styles'
1419import {logger} from '#/logger'
2020+import {isAndroid, isWeb} from '#/platform/detection'
1521import {useModalControls} from '#/state/modals'
1622import {useAgent, useSession} from '#/state/session'
1717-import {usePalette} from 'lib/hooks/usePalette'
1818-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
1919-import {cleanError, isNetworkError} from 'lib/strings/errors'
2020-import {checkAndFormatResetCode} from 'lib/strings/password'
2121-import {colors, s} from 'lib/styles'
2222-import {isAndroid, isWeb} from 'platform/detection'
2323import {ErrorMessage} from '../util/error/ErrorMessage'
2424import {Button} from '../util/forms/Button'
2525import {Text} from '../util/text/Text'
+4-4
src/view/com/modals/InviteCodes.tsx
···1414import {msg, Trans} from '@lingui/macro'
1515import {useLingui} from '@lingui/react'
16161717+import {usePalette} from '#/lib/hooks/usePalette'
1818+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
1719import {makeProfileLink} from '#/lib/routes/links'
2020+import {cleanError} from '#/lib/strings/errors'
2121+import {isWeb} from '#/platform/detection'
1822import {useInvitesAPI, useInvitesState} from '#/state/invites'
1923import {useModalControls} from '#/state/modals'
2024import {
2125 InviteCodesQueryResponse,
2226 useInviteCodesQuery,
2327} from '#/state/queries/invites'
2424-import {usePalette} from 'lib/hooks/usePalette'
2525-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
2626-import {cleanError} from 'lib/strings/errors'
2727-import {isWeb} from 'platform/detection'
2828import {ErrorMessage} from '../util/error/ErrorMessage'
2929import {Button} from '../util/forms/Button'
3030import {Link} from '../util/Link'
+8-8
src/view/com/modals/ListAddRemoveUsers.tsx
···1212import {useLingui} from '@lingui/react'
13131414import {HITSLOP_20} from '#/lib/constants'
1515+import {useIsKeyboardVisible} from '#/lib/hooks/useIsKeyboardVisible'
1616+import {usePalette} from '#/lib/hooks/usePalette'
1717+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
1818+import {sanitizeDisplayName} from '#/lib/strings/display-names'
1919+import {cleanError} from '#/lib/strings/errors'
2020+import {sanitizeHandle} from '#/lib/strings/handles'
2121+import {colors, s} from '#/lib/styles'
2222+import {isWeb} from '#/platform/detection'
1523import {useModalControls} from '#/state/modals'
1624import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete'
1725import {
···2129 useListMembershipAddMutation,
2230 useListMembershipRemoveMutation,
2331} from '#/state/queries/list-memberships'
2424-import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible'
2525-import {usePalette} from 'lib/hooks/usePalette'
2626-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
2727-import {sanitizeDisplayName} from 'lib/strings/display-names'
2828-import {cleanError} from 'lib/strings/errors'
2929-import {sanitizeHandle} from 'lib/strings/handles'
3030-import {colors, s} from 'lib/styles'
3131-import {isWeb} from 'platform/detection'
3232import {Button} from '../util/forms/Button'
3333import {Text} from '../util/text/Text'
3434import * as Toast from '../util/Toast'
+5-5
src/view/com/modals/VerifyEmail.tsx
···1111import {msg, Trans} from '@lingui/macro'
1212import {useLingui} from '@lingui/react'
13131414+import {usePalette} from '#/lib/hooks/usePalette'
1515+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
1616+import {cleanError} from '#/lib/strings/errors'
1717+import {colors, s} from '#/lib/styles'
1418import {logger} from '#/logger'
1919+import {isWeb} from '#/platform/detection'
1520import {useModalControls} from '#/state/modals'
1621import {useAgent, useSession} from '#/state/session'
1717-import {usePalette} from 'lib/hooks/usePalette'
1818-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
1919-import {cleanError} from 'lib/strings/errors'
2020-import {colors, s} from 'lib/styles'
2121-import {isWeb} from 'platform/detection'
2222import {ErrorMessage} from '../util/error/ErrorMessage'
2323import {Button} from '../util/forms/Button'
2424import {Text} from '../util/text/Text'
···11import React from 'react'
22import {StyleSheet} from 'react-native'
33-import {usePalette} from 'lib/hooks/usePalette'
44-import {ToggleButton} from 'view/com/util/forms/ToggleButton'
55-import {useLanguagePrefs, toPostLanguages} from '#/state/preferences/languages'
33+44+import {usePalette} from '#/lib/hooks/usePalette'
55+import {toPostLanguages, useLanguagePrefs} from '#/state/preferences/languages'
66+import {ToggleButton} from '#/view/com/util/forms/ToggleButton'
6778export function LanguageToggle({
89 code2,
+2-1
src/view/com/pager/DraggableScrollView.tsx
···11-import {useDraggableScroll} from 'lib/hooks/useDraggableScrollView'
21import React, {ComponentProps} from 'react'
32import {ScrollView} from 'react-native'
33+44+import {useDraggableScroll} from '#/lib/hooks/useDraggableScrollView'
4556export const DraggableScrollView = React.forwardRef<
67 ScrollView,
+1-1
src/view/com/pager/Pager.web.tsx
···33import {flushSync} from 'react-dom'
4455import {LogEvents} from '#/lib/statsig/events'
66-import {s} from 'lib/styles'
66+import {s} from '#/lib/styles'
7788export interface RenderTabBarFnProps {
99 selectedPage: number
+2-2
src/view/com/post-thread/PostLikedBy.tsx
···33import {msg} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
5566+import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
67import {cleanError} from '#/lib/strings/errors'
78import {logger} from '#/logger'
99+import {isWeb} from '#/platform/detection'
810import {useLikedByQuery} from '#/state/queries/post-liked-by'
911import {useResolveUriQuery} from '#/state/queries/resolve-uri'
1010-import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender'
1111-import {isWeb} from 'platform/detection'
1212import {ProfileCardWithFollowBtn} from '#/view/com/profile/ProfileCard'
1313import {List} from '#/view/com/util/List'
1414import {ListFooter, ListMaybePlaceholder} from '#/components/Lists'
+3-3
src/view/com/post-thread/PostQuotes.tsx
···77import {msg} from '@lingui/macro'
88import {useLingui} from '@lingui/react'
991010+import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
1011import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped'
1112import {cleanError} from '#/lib/strings/errors'
1213import {logger} from '#/logger'
1414+import {isWeb} from '#/platform/detection'
1315import {useModerationOpts} from '#/state/preferences/moderation-opts'
1416import {usePostQuotesQuery} from '#/state/queries/post-quotes'
1517import {useResolveUriQuery} from '#/state/queries/resolve-uri'
1616-import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender'
1717-import {isWeb} from 'platform/detection'
1818-import {Post} from 'view/com/post/Post'
1818+import {Post} from '#/view/com/post/Post'
1919import {ListFooter, ListMaybePlaceholder} from '#/components/Lists'
2020import {List} from '../util/List'
2121
+1-1
src/view/com/post-thread/PostRepostedBy.tsx
···33import {msg} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
5566+import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
67import {cleanError} from '#/lib/strings/errors'
78import {logger} from '#/logger'
89import {usePostRepostedByQuery} from '#/state/queries/post-reposted-by'
910import {useResolveUriQuery} from '#/state/queries/resolve-uri'
1010-import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender'
1111import {ProfileCardWithFollowBtn} from '#/view/com/profile/ProfileCard'
1212import {List} from '#/view/com/util/List'
1313import {ListFooter, ListMaybePlaceholder} from '#/components/Lists'
+7-7
src/view/com/post-thread/PostThread.tsx
···77import {msg, Trans} from '@lingui/macro'
88import {useLingui} from '@lingui/react'
991010+import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
1111+import {useMinimalShellFabTransform} from '#/lib/hooks/useMinimalShellTransform'
1212+import {useSetTitle} from '#/lib/hooks/useSetTitle'
1313+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
1014import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped'
1115import {clamp} from '#/lib/numbers'
1216import {ScrollProvider} from '#/lib/ScrollContext'
1717+import {sanitizeDisplayName} from '#/lib/strings/display-names'
1818+import {cleanError} from '#/lib/strings/errors'
1319import {isAndroid, isNative, isWeb} from '#/platform/detection'
1420import {useModerationOpts} from '#/state/preferences/moderation-opts'
1521import {
···2632import {useSession} from '#/state/session'
2733import {useComposerControls} from '#/state/shell'
2834import {useMergedThreadgateHiddenReplies} from '#/state/threadgate-hidden-replies'
2929-import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender'
3030-import {useMinimalShellFabTransform} from 'lib/hooks/useMinimalShellTransform'
3131-import {useSetTitle} from 'lib/hooks/useSetTitle'
3232-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
3333-import {sanitizeDisplayName} from 'lib/strings/display-names'
3434-import {cleanError} from 'lib/strings/errors'
3535-import {CenteredView} from 'view/com/util/Views'
3535+import {CenteredView} from '#/view/com/util/Views'
3636import {atoms as a, useTheme} from '#/alf'
3737import {ListFooter, ListMaybePlaceholder} from '#/components/Lists'
3838import {Text} from '#/components/Typography'
+9-8
src/view/com/posts/CustomFeedEmptyState.tsx
···11import React from 'react'
22import {StyleSheet, View} from 'react-native'
33-import {useNavigation} from '@react-navigation/native'
43import {
54 FontAwesomeIcon,
65 FontAwesomeIconStyle,
76} from '@fortawesome/react-native-fontawesome'
88-import {Text} from '../util/text/Text'
77+import {Trans} from '@lingui/macro'
88+import {useNavigation} from '@react-navigation/native'
99+1010+import {usePalette} from '#/lib/hooks/usePalette'
1111+import {MagnifyingGlassIcon} from '#/lib/icons'
1212+import {NavigationProp} from '#/lib/routes/types'
1313+import {s} from '#/lib/styles'
1414+import {isWeb} from '#/platform/detection'
915import {Button} from '../util/forms/Button'
1010-import {MagnifyingGlassIcon} from 'lib/icons'
1111-import {NavigationProp} from 'lib/routes/types'
1212-import {usePalette} from 'lib/hooks/usePalette'
1313-import {s} from 'lib/styles'
1414-import {isWeb} from 'platform/detection'
1515-import {Trans} from '@lingui/macro'
1616+import {Text} from '../util/text/Text'
16171718export function CustomFeedEmptyState() {
1819 const pal = usePalette('default')
+3-2
src/view/com/posts/DiscoverFallbackHeader.tsx
···11import React from 'react'
22import {View} from 'react-native'
33import {Trans} from '@lingui/macro'
44-import {Text} from '../util/text/Text'
44+55import {usePalette} from '#/lib/hooks/usePalette'
66+import {InfoCircleIcon} from '#/lib/icons'
67import {TextLink} from '../util/Link'
77-import {InfoCircleIcon} from '#/lib/icons'
88+import {Text} from '../util/text/Text'
89910export function DiscoverFallbackHeader() {
1011 const pal = usePalette('default')
+2-2
src/view/com/posts/FeedErrorMessage.tsx
···55import {useLingui} from '@lingui/react'
66import {useNavigation} from '@react-navigation/native'
7788+import {usePalette} from '#/lib/hooks/usePalette'
99+import {NavigationProp} from '#/lib/routes/types'
810import {cleanError} from '#/lib/strings/errors'
911import {logger} from '#/logger'
1012import {FeedDescriptor} from '#/state/queries/post-feed'
1113import {useRemoveFeedMutation} from '#/state/queries/preferences'
1212-import {usePalette} from 'lib/hooks/usePalette'
1313-import {NavigationProp} from 'lib/routes/types'
1414import * as Prompt from '#/components/Prompt'
1515import {EmptyState} from '../util/EmptyState'
1616import {ErrorMessage} from '../util/error/ErrorMessage'
+5-5
src/view/com/posts/FollowingEmptyState.tsx
···77import {Trans} from '@lingui/macro'
88import {useNavigation} from '@react-navigation/native'
991010-import {usePalette} from 'lib/hooks/usePalette'
1111-import {MagnifyingGlassIcon} from 'lib/icons'
1212-import {NavigationProp} from 'lib/routes/types'
1313-import {s} from 'lib/styles'
1414-import {isWeb} from 'platform/detection'
1010+import {usePalette} from '#/lib/hooks/usePalette'
1111+import {MagnifyingGlassIcon} from '#/lib/icons'
1212+import {NavigationProp} from '#/lib/routes/types'
1313+import {s} from '#/lib/styles'
1414+import {isWeb} from '#/platform/detection'
1515import {Button} from '../util/forms/Button'
1616import {Text} from '../util/text/Text'
1717
+4-4
src/view/com/posts/FollowingEndOfFeed.tsx
···77import {Trans} from '@lingui/macro'
88import {useNavigation} from '@react-navigation/native'
991010-import {usePalette} from 'lib/hooks/usePalette'
1111-import {NavigationProp} from 'lib/routes/types'
1212-import {s} from 'lib/styles'
1313-import {isWeb} from 'platform/detection'
1010+import {usePalette} from '#/lib/hooks/usePalette'
1111+import {NavigationProp} from '#/lib/routes/types'
1212+import {s} from '#/lib/styles'
1313+import {isWeb} from '#/platform/detection'
1414import {Button} from '../util/forms/Button'
1515import {Text} from '../util/text/Text'
1616
+3-3
src/view/com/profile/ProfileFollowers.tsx
···33import {msg} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
5566+import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
67import {cleanError} from '#/lib/strings/errors'
78import {logger} from '#/logger'
99+import {isWeb} from '#/platform/detection'
810import {useProfileFollowersQuery} from '#/state/queries/profile-followers'
911import {useResolveDidQuery} from '#/state/queries/resolve-uri'
1010-import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender'
1111-import {isWeb} from 'platform/detection'
1212-import {useSession} from 'state/session'
1212+import {useSession} from '#/state/session'
1313import {ListFooter, ListMaybePlaceholder} from '#/components/Lists'
1414import {List} from '../util/List'
1515import {ProfileCardWithFollowBtn} from './ProfileCard'
+3-3
src/view/com/profile/ProfileFollows.tsx
···33import {msg} from '@lingui/macro'
44import {useLingui} from '@lingui/react'
5566+import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
67import {cleanError} from '#/lib/strings/errors'
78import {logger} from '#/logger'
99+import {isWeb} from '#/platform/detection'
810import {useProfileFollowsQuery} from '#/state/queries/profile-follows'
911import {useResolveDidQuery} from '#/state/queries/resolve-uri'
1010-import {useInitialNumToRender} from 'lib/hooks/useInitialNumToRender'
1111-import {isWeb} from 'platform/detection'
1212-import {useSession} from 'state/session'
1212+import {useSession} from '#/state/session'
1313import {ListFooter, ListMaybePlaceholder} from '#/components/Lists'
1414import {List} from '../util/List'
1515import {ProfileCardWithFollowBtn} from './ProfileCard'
+2-2
src/view/com/util/AccountDropdownBtn.tsx
···77import {msg} from '@lingui/macro'
88import {useLingui} from '@lingui/react'
991010+import {usePalette} from '#/lib/hooks/usePalette'
1111+import {s} from '#/lib/styles'
1012import {SessionAccount, useSessionApi} from '#/state/session'
1111-import {usePalette} from 'lib/hooks/usePalette'
1212-import {s} from 'lib/styles'
1313import {useDialogControl} from '#/components/Dialog'
1414import * as Prompt from '#/components/Prompt'
1515import * as Toast from '../../com/util/Toast'
+3-3
src/view/com/util/EmptyState.tsx
···66 FontAwesomeIconStyle,
77} from '@fortawesome/react-native-fontawesome'
8899+import {usePalette} from '#/lib/hooks/usePalette'
910import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
1010-import {usePalette} from 'lib/hooks/usePalette'
1111-import {UserGroupIcon} from 'lib/icons'
1212-import {isWeb} from 'platform/detection'
1111+import {UserGroupIcon} from '#/lib/icons'
1212+import {isWeb} from '#/platform/detection'
1313import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth'
1414import {Text} from './text/Text'
1515
+5-4
src/view/com/util/EmptyStateWithButton.tsx
···11import React from 'react'
22import {StyleSheet, View} from 'react-native'
33+import {IconProp} from '@fortawesome/fontawesome-svg-core'
34import {
45 FontAwesomeIcon,
56 FontAwesomeIconStyle,
67} from '@fortawesome/react-native-fontawesome'
77-import {IconProp} from '@fortawesome/fontawesome-svg-core'
88+99+import {usePalette} from '#/lib/hooks/usePalette'
1010+import {s} from '#/lib/styles'
1111+import {Button} from './forms/Button'
812import {Text} from './text/Text'
99-import {Button} from './forms/Button'
1010-import {usePalette} from 'lib/hooks/usePalette'
1111-import {s} from 'lib/styles'
12131314interface Props {
1415 testID?: string
+4-3
src/view/com/util/FeedInfoText.tsx
···11import React from 'react'
22import {StyleProp, StyleSheet, TextStyle} from 'react-native'
33+44+import {sanitizeDisplayName} from '#/lib/strings/display-names'
55+import {TypographyVariant} from '#/lib/ThemeContext'
66+import {useFeedSourceInfoQuery} from '#/state/queries/feed'
37import {TextLinkOnWebOnly} from './Link'
48import {LoadingPlaceholder} from './LoadingPlaceholder'
55-import {TypographyVariant} from 'lib/ThemeContext'
66-import {sanitizeDisplayName} from 'lib/strings/display-names'
77-import {useFeedSourceInfoQuery} from '#/state/queries/feed'
89910export function FeedNameText({
1011 type = 'md',
+2-1
src/view/com/util/LoadMoreRetryBtn.tsx
···44 FontAwesomeIcon,
55 FontAwesomeIconStyle,
66} from '@fortawesome/react-native-fontawesome'
77+88+import {usePalette} from '#/lib/hooks/usePalette'
79import {Button} from './forms/Button'
810import {Text} from './text/Text'
99-import {usePalette} from 'lib/hooks/usePalette'
10111112export function LoadMoreRetryBtn({
1213 label,
+2-1
src/view/com/util/LoadingScreen.tsx
···11import React from 'react'
22import {ActivityIndicator, View} from 'react-native'
33-import {s} from 'lib/styles'
33+44+import {s} from '#/lib/styles'
45import {CenteredView} from './Views'
5667export function LoadingScreen() {
+1-1
src/view/com/util/MainScrollProvider.tsx
···99import EventEmitter from 'eventemitter3'
10101111import {ScrollProvider} from '#/lib/ScrollContext'
1212+import {isNative, isWeb} from '#/platform/detection'
1213import {useMinimalShellMode} from '#/state/shell'
1314import {useShellLayout} from '#/state/shell/shell-layout'
1414-import {isNative, isWeb} from 'platform/detection'
15151616const WEB_HIDE_SHELL_THRESHOLD = 200
1717
+5-4
src/view/com/util/Selector.tsx
···11-import React, {createRef, useState, useMemo, useRef} from 'react'
11+import React, {createRef, useMemo, useRef, useState} from 'react'
22import {Animated, Pressable, StyleSheet, View} from 'react-native'
33+import {msg} from '@lingui/macro'
44+import {useLingui} from '@lingui/react'
55+66+import {usePalette} from '#/lib/hooks/usePalette'
37import {Text} from './text/Text'
44-import {usePalette} from 'lib/hooks/usePalette'
55-import {useLingui} from '@lingui/react'
66-import {msg} from '@lingui/macro'
7889interface Layout {
910 x: number
+9-8
src/view/com/util/ViewSelector.tsx
···11import React, {useEffect, useState} from 'react'
22import {
33- NativeSyntheticEvent,
43 NativeScrollEvent,
44+ NativeSyntheticEvent,
55 Pressable,
66 RefreshControl,
77+ ScrollView,
78 StyleSheet,
89 View,
99- ScrollView,
1010} from 'react-native'
1111-import {FlatList_INTERNAL} from './Views'
1212-import {useColorSchemeStyle} from 'lib/hooks/useColorSchemeStyle'
1111+1212+import {useColorSchemeStyle} from '#/lib/hooks/useColorSchemeStyle'
1313+import {usePalette} from '#/lib/hooks/usePalette'
1414+import {clamp} from '#/lib/numbers'
1515+import {colors, s} from '#/lib/styles'
1616+import {isAndroid} from '#/platform/detection'
1317import {Text} from './text/Text'
1414-import {usePalette} from 'lib/hooks/usePalette'
1515-import {clamp} from 'lib/numbers'
1616-import {s, colors} from 'lib/styles'
1717-import {isAndroid} from 'platform/detection'
1818+import {FlatList_INTERNAL} from './Views'
18191920const HEADER_ITEM = {_reactKey: '__header__'}
2021const SELECTOR_ITEM = {_reactKey: '__selector__'}
+3-3
src/view/com/util/Views.web.tsx
···2323} from 'react-native'
2424import Animated from 'react-native-reanimated'
25252626-import {usePalette} from 'lib/hooks/usePalette'
2727-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
2828-import {addStyle} from 'lib/styles'
2626+import {usePalette} from '#/lib/hooks/usePalette'
2727+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
2828+import {addStyle} from '#/lib/styles'
29293030interface AddedProps {
3131 desktopFixedHeight?: boolean | number
+2-1
src/view/com/util/anim/TriggerableAnimated.tsx
···11import React from 'react'
22import {Animated, StyleProp, View, ViewStyle} from 'react-native'
33-import {useAnimatedValue} from 'lib/hooks/useAnimatedValue'
33+44+import {useAnimatedValue} from '#/lib/hooks/useAnimatedValue'
4556type CreateAnimFn = (interp: Animated.Value) => Animated.CompositeAnimation
67type FinishCb = () => void
+6-5
src/view/com/util/error/ErrorMessage.tsx
···11import React from 'react'
22import {
33+ StyleProp,
34 StyleSheet,
45 TouchableOpacity,
55- StyleProp,
66 View,
77 ViewStyle,
88} from 'react-native'
···1010 FontAwesomeIcon,
1111 FontAwesomeIconStyle,
1212} from '@fortawesome/react-native-fontawesome'
1313+import {msg} from '@lingui/macro'
1414+import {useLingui} from '@lingui/react'
1515+1616+import {usePalette} from '#/lib/hooks/usePalette'
1717+import {useTheme} from '#/lib/ThemeContext'
1318import {Text} from '../text/Text'
1414-import {useTheme} from 'lib/ThemeContext'
1515-import {usePalette} from 'lib/hooks/usePalette'
1616-import {useLingui} from '@lingui/react'
1717-import {msg} from '@lingui/macro'
18191920export function ErrorMessage({
2021 message,
+8-7
src/view/com/util/error/ErrorScreen.tsx
···44 FontAwesomeIcon,
55 FontAwesomeIconStyle,
66} from '@fortawesome/react-native-fontawesome'
77+import {msg, Trans} from '@lingui/macro'
88+import {useLingui} from '@lingui/react'
99+1010+import {usePalette} from '#/lib/hooks/usePalette'
1111+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
1212+import {useTheme} from '#/lib/ThemeContext'
1313+import {ViewHeader} from '#/view/com/util/ViewHeader'
1414+import {Button} from '../forms/Button'
715import {Text} from '../text/Text'
88-import {useTheme} from 'lib/ThemeContext'
99-import {usePalette} from 'lib/hooks/usePalette'
1010-import {Button} from '../forms/Button'
1116import {CenteredView} from '../Views'
1212-import {Trans, msg} from '@lingui/macro'
1313-import {useLingui} from '@lingui/react'
1414-import {ViewHeader} from 'view/com/util/ViewHeader'
1515-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
16171718export function ErrorScreen({
1819 title,
+4-4
src/view/com/util/forms/DateInput.tsx
···77} from '@fortawesome/react-native-fontawesome'
88import {useLingui} from '@lingui/react'
991010-import {usePalette} from 'lib/hooks/usePalette'
1111-import {TypographyVariant} from 'lib/ThemeContext'
1212-import {useTheme} from 'lib/ThemeContext'
1313-import {isAndroid, isIOS} from 'platform/detection'
1010+import {usePalette} from '#/lib/hooks/usePalette'
1111+import {TypographyVariant} from '#/lib/ThemeContext'
1212+import {useTheme} from '#/lib/ThemeContext'
1313+import {isAndroid, isIOS} from '#/platform/detection'
1414import {Text} from '../text/Text'
1515import {Button, ButtonType} from './Button'
1616
+3-2
src/view/com/util/forms/DateInput.web.tsx
···11-import React, {useState, useCallback} from 'react'
11+import React, {useCallback, useState} from 'react'
22import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native'
33// @ts-ignore types not available -prf
44import {unstable_createElement} from 'react-native-web'
55-import {usePalette} from 'lib/hooks/usePalette'
55+66+import {usePalette} from '#/lib/hooks/usePalette'
6778interface Props {
89 testID?: string
+1-1
src/view/com/util/forms/RadioGroup.tsx
···11import React, {useState} from 'react'
22import {View} from 'react-native'
3344-import {s} from 'lib/styles'
44+import {s} from '#/lib/styles'
55import {ButtonType} from './Button'
66import {RadioButton} from './RadioButton'
77
+4-3
src/view/com/util/forms/SelectableBtn.tsx
···11import React from 'react'
22-import {Pressable, ViewStyle, StyleProp, StyleSheet} from 'react-native'
22+import {Pressable, StyleProp, StyleSheet, ViewStyle} from 'react-native'
33+44+import {usePalette} from '#/lib/hooks/usePalette'
55+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
36import {Text} from '../text/Text'
44-import {usePalette} from 'lib/hooks/usePalette'
55-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
6778interface SelectableBtnProps {
89 testID?: string
+3-2
src/view/com/util/layouts/withBreakpoints.tsx
···11import React from 'react'
22-import {isNative} from 'platform/detection'
33-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
22+33+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
44+import {isNative} from '#/platform/detection'
4556export const withBreakpoints = <P extends object>(
67 Mobile: React.ComponentType<P>,
+10-9
src/view/com/util/text/RichText.tsx
···11import React from 'react'
22-import {TextStyle, StyleProp} from 'react-native'
33-import {RichText as RichTextObj, AppBskyRichtextFacet} from '@atproto/api'
22+import {StyleProp, TextStyle} from 'react-native'
33+import {AppBskyRichtextFacet, RichText as RichTextObj} from '@atproto/api'
44+55+import {usePalette} from '#/lib/hooks/usePalette'
66+import {makeTagLink} from '#/lib/routes/links'
77+import {toShortUrl} from '#/lib/strings/url-helpers'
88+import {lh} from '#/lib/styles'
99+import {TypographyVariant, useTheme} from '#/lib/ThemeContext'
1010+import {isNative} from '#/platform/detection'
1111+import {TagMenu, useTagMenuControl} from '#/components/TagMenu'
412import {TextLink} from '../Link'
513import {Text} from './Text'
66-import {lh} from 'lib/styles'
77-import {toShortUrl} from 'lib/strings/url-helpers'
88-import {useTheme, TypographyVariant} from 'lib/ThemeContext'
99-import {usePalette} from 'lib/hooks/usePalette'
1010-import {makeTagLink} from 'lib/routes/links'
1111-import {TagMenu, useTagMenuControl} from '#/components/TagMenu'
1212-import {isNative} from '#/platform/detection'
13141415const WORD_WRAP = {wordWrap: 1}
1516
+1-1
src/view/icons/Logotype.tsx
···11import React from 'react'
22-import Svg, {Path, SvgProps, PathProps} from 'react-native-svg'
22+import Svg, {Path, PathProps, SvgProps} from 'react-native-svg'
3344import {usePalette} from '#/lib/hooks/usePalette'
55
+1-1
src/view/screens/Settings/Email2FAToggle.tsx
···4455import {useModalControls} from '#/state/modals'
66import {useAgent, useSession} from '#/state/session'
77-import {ToggleButton} from 'view/com/util/forms/ToggleButton'
77+import {ToggleButton} from '#/view/com/util/forms/ToggleButton'
88import {useDialogControl} from '#/components/Dialog'
99import {DisableEmail2FADialog} from './DisableEmail2FADialog'
1010
+2-2
src/view/screens/Storybook/Breakpoints.tsx
···11import React from 'react'
22import {View} from 'react-native'
3344-import {atoms as a, useTheme, useBreakpoints} from '#/alf'
55-import {Text, H3} from '#/components/Typography'
44+import {atoms as a, useBreakpoints, useTheme} from '#/alf'
55+import {H3, Text} from '#/components/Typography'
6677export function Breakpoints() {
88 const t = useTheme()
+2-2
src/view/screens/Storybook/ListContained.tsx
···11import React from 'react'
22import {FlatList, View} from 'react-native'
3344-import {ScrollProvider} from 'lib/ScrollContext'
55-import {List} from 'view/com/util/List'
44+import {ScrollProvider} from '#/lib/ScrollContext'
55+import {List} from '#/view/com/util/List'
66import {Button, ButtonText} from '#/components/Button'
77import * as Toggle from '#/components/forms/Toggle'
88import {Text} from '#/components/Typography'
+1-1
src/view/screens/Storybook/Spacing.tsx
···22import {View} from 'react-native'
3344import {atoms as a, useTheme} from '#/alf'
55-import {Text, H1} from '#/components/Typography'
55+import {H1, Text} from '#/components/Typography'
6677export function Spacing() {
88 const t = useTheme()
+1-1
src/view/screens/Storybook/Typography.tsx
···22import {View} from 'react-native'
3344import {atoms as a} from '#/alf'
55-import {Text} from '#/components/Typography'
65import {RichText} from '#/components/RichText'
66+import {Text} from '#/components/Typography'
7788export function Typography() {
99 return (
+3-3
src/view/shell/bottom-bar/BottomBarWeb.tsx
···1313import {makeProfileLink} from '#/lib/routes/links'
1414import {CommonNavigatorParams} from '#/lib/routes/types'
1515import {s} from '#/lib/styles'
1616+import {useUnreadMessageCount} from '#/state/queries/messages/list-converations'
1717+import {useUnreadNotifications} from '#/state/queries/notifications/unread'
1618import {useSession} from '#/state/session'
1719import {useLoggedOutViewControls} from '#/state/shell/logged-out'
1820import {useCloseAllActiveElements} from '#/state/util'
1919-import {useUnreadMessageCount} from 'state/queries/messages/list-converations'
2020-import {useUnreadNotifications} from 'state/queries/notifications/unread'
2121import {Button} from '#/view/com/util/forms/Button'
2222+import {Link} from '#/view/com/util/Link'
2223import {Text} from '#/view/com/util/text/Text'
2324import {Logo} from '#/view/icons/Logo'
2425import {Logotype} from '#/view/icons/Logotype'
2525-import {Link} from 'view/com/util/Link'
2626import {
2727 Bell_Filled_Corner0_Rounded as BellFilled,
2828 Bell_Stroke2_Corner0_Rounded as Bell,