···1111 View,
1212 ViewStyle,
1313} from 'react-native'
1414-import LinearGradient from 'react-native-linear-gradient'
1414+import LinearGradient from 'expo-linear-gradient'
1515import {Trans} from '@lingui/macro'
16161717import {android, atoms as a, flatten, tokens, useTheme} from '#/alf'
+1-1
src/components/GradientFill.tsx
···11import React from 'react'
22-import LinearGradient from 'react-native-linear-gradient'
22+import LinearGradient from 'expo-linear-gradient'
3344import {atoms as a, tokens} from '#/alf'
55
+7-8
src/screens/Onboarding/StepAlgoFeeds/FeedCard.tsx
···11import React from 'react'
22import {View} from 'react-native'
33-import LinearGradient from 'react-native-linear-gradient'
43import {Image} from 'expo-image'
55-import {useLingui} from '@lingui/react'
44+import LinearGradient from 'expo-linear-gradient'
65import {msg} from '@lingui/macro'
66+import {useLingui} from '@lingui/react'
7788-import {useTheme, atoms as a} from '#/alf'
88+import {FeedSourceInfo, useFeedSourceInfoQuery} from '#/state/queries/feed'
99+import {FeedConfig} from '#/screens/Onboarding/StepAlgoFeeds'
1010+import {atoms as a, useTheme} from '#/alf'
911import * as Toggle from '#/components/forms/Toggle'
1010-import {useFeedSourceInfoQuery, FeedSourceInfo} from '#/state/queries/feed'
1111-import {Text} from '#/components/Typography'
1212+import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check'
1213import {RichText} from '#/components/RichText'
1313-1414-import {Check_Stroke2_Corner0_Rounded as Check} from '#/components/icons/Check'
1515-import {FeedConfig} from '#/screens/Onboarding/StepAlgoFeeds'
1414+import {Text} from '#/components/Typography'
16151716function PrimaryFeedCardInner({
1817 feed,
+1-1
src/view/com/composer/Composer.tsx
···1111 TouchableOpacity,
1212 View,
1313} from 'react-native'
1414-import LinearGradient from 'react-native-linear-gradient'
1514import {useSafeAreaInsets} from 'react-native-safe-area-context'
1515+import LinearGradient from 'expo-linear-gradient'
1616import {RichText} from '@atproto/api'
1717import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
1818import {msg, Trans} from '@lingui/macro'
+14-13
src/view/com/modals/AltImage.tsx
···11-import React, {useMemo, useCallback, useState} from 'react'
11+import React, {useCallback, useMemo, useState} from 'react'
22import {
33 ImageStyle,
44+ ScrollView as RNScrollView,
45 StyleSheet,
66+ TextInput as RNTextInput,
57 TouchableOpacity,
66- View,
77- TextInput as RNTextInput,
88 useWindowDimensions,
99- ScrollView as RNScrollView,
99+ View,
1010} from 'react-native'
1111-import {ScrollView, TextInput} from './util'
1211import {Image} from 'expo-image'
1212+import LinearGradient from 'expo-linear-gradient'
1313+import {msg, Trans} from '@lingui/macro'
1414+import {useLingui} from '@lingui/react'
1515+1616+import {useModalControls} from '#/state/modals'
1717+import {MAX_ALT_TEXT} from 'lib/constants'
1818+import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible'
1319import {usePalette} from 'lib/hooks/usePalette'
1414-import {gradients, s} from 'lib/styles'
1520import {enforceLen} from 'lib/strings/helpers'
1616-import {MAX_ALT_TEXT} from 'lib/constants'
2121+import {gradients, s} from 'lib/styles'
1722import {useTheme} from 'lib/ThemeContext'
1818-import {useIsKeyboardVisible} from 'lib/hooks/useIsKeyboardVisible'
1919-import {Text} from '../util/text/Text'
2020-import LinearGradient from 'react-native-linear-gradient'
2123import {isWeb} from 'platform/detection'
2224import {ImageModel} from 'state/models/media/image'
2323-import {useLingui} from '@lingui/react'
2424-import {Trans, msg} from '@lingui/macro'
2525-import {useModalControls} from '#/state/modals'
2525+import {Text} from '../util/text/Text'
2626+import {ScrollView, TextInput} from './util'
26272728export const snapPoints = ['100%']
2829
+19-18
src/view/com/modals/CreateOrEditList.tsx
···11-import React, {useState, useCallback, useMemo} from 'react'
11+import React, {useCallback, useMemo, useState} from 'react'
22import {
33 ActivityIndicator,
44 KeyboardAvoidingView,
···88 TouchableOpacity,
99 View,
1010} from 'react-native'
1111+import {Image as RNImage} from 'react-native-image-crop-picker'
1212+import LinearGradient from 'expo-linear-gradient'
1113import {
1214 AppBskyGraphDefs,
1315 AppBskyRichtextFacet,
1416 RichText as RichTextAPI,
1517} from '@atproto/api'
1616-import LinearGradient from 'react-native-linear-gradient'
1717-import {Image as RNImage} from 'react-native-image-crop-picker'
1818-import {Text} from '../util/text/Text'
1919-import {ErrorMessage} from '../util/error/ErrorMessage'
2020-import * as Toast from '../util/Toast'
2121-import {s, colors, gradients} from 'lib/styles'
2222-import {enforceLen} from 'lib/strings/helpers'
2323-import {compressIfNeeded} from 'lib/media/manip'
2424-import {EditableUserAvatar} from '../util/UserAvatar'
2525-import {usePalette} from 'lib/hooks/usePalette'
2626-import {useTheme} from 'lib/ThemeContext'
2727-import {useAnalytics} from 'lib/analytics/analytics'
2828-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
2929-import {cleanError, isNetworkError} from 'lib/strings/errors'
3030-import {Trans, msg} from '@lingui/macro'
1818+import {msg, Trans} from '@lingui/macro'
3119import {useLingui} from '@lingui/react'
2020+2121+import {richTextToString} from '#/lib/strings/rich-text-helpers'
2222+import {shortenLinks} from '#/lib/strings/rich-text-manip'
3223import {useModalControls} from '#/state/modals'
3324import {
3425 useListCreateMutation,
3526 useListMetadataMutation,
3627} from '#/state/queries/list'
3737-import {richTextToString} from '#/lib/strings/rich-text-helpers'
3838-import {shortenLinks} from '#/lib/strings/rich-text-manip'
3928import {getAgent} from '#/state/session'
2929+import {useAnalytics} from 'lib/analytics/analytics'
3030+import {usePalette} from 'lib/hooks/usePalette'
3131+import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
3232+import {compressIfNeeded} from 'lib/media/manip'
3333+import {cleanError, isNetworkError} from 'lib/strings/errors'
3434+import {enforceLen} from 'lib/strings/helpers'
3535+import {colors, gradients, s} from 'lib/styles'
3636+import {useTheme} from 'lib/ThemeContext'
3737+import {ErrorMessage} from '../util/error/ErrorMessage'
3838+import {Text} from '../util/text/Text'
3939+import * as Toast from '../util/Toast'
4040+import {EditableUserAvatar} from '../util/UserAvatar'
40414142const MAX_NAME = 64 // todo
4243const MAX_DESCRIPTION = 300 // todo
+1-1
src/view/com/modals/DeleteAccount.tsx
···66 TouchableOpacity,
77 View,
88} from 'react-native'
99-import LinearGradient from 'react-native-linear-gradient'
99+import LinearGradient from 'expo-linear-gradient'
1010import {msg, Trans} from '@lingui/macro'
1111import {useLingui} from '@lingui/react'
1212
+17-16
src/view/com/modals/EditImage.tsx
···11import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react'
22import {Pressable, StyleSheet, View} from 'react-native'
33+import {useWindowDimensions} from 'react-native'
44+import LinearGradient from 'expo-linear-gradient'
55+import {MaterialIcons} from '@expo/vector-icons'
66+import {msg, Trans} from '@lingui/macro'
77+import {useLingui} from '@lingui/react'
88+import {Slider} from '@miblanchard/react-native-slider'
99+import {observer} from 'mobx-react-lite'
1010+import ImageEditor, {Position} from 'react-avatar-editor'
1111+1212+import {useModalControls} from '#/state/modals'
1313+import {MAX_ALT_TEXT} from 'lib/constants'
314import {usePalette} from 'lib/hooks/usePalette'
44-import {useWindowDimensions} from 'react-native'
1515+import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
1616+import {RectTallIcon, RectWideIcon, SquareIcon} from 'lib/icons'
1717+import {enforceLen} from 'lib/strings/helpers'
518import {gradients, s} from 'lib/styles'
619import {useTheme} from 'lib/ThemeContext'
2020+import {getKeys} from 'lib/type-assertions'
2121+import {GalleryModel} from 'state/models/media/gallery'
2222+import {ImageModel} from 'state/models/media/image'
723import {Text} from '../util/text/Text'
88-import LinearGradient from 'react-native-linear-gradient'
99-import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
1010-import ImageEditor, {Position} from 'react-avatar-editor'
1124import {TextInput} from './util'
1212-import {enforceLen} from 'lib/strings/helpers'
1313-import {MAX_ALT_TEXT} from 'lib/constants'
1414-import {GalleryModel} from 'state/models/media/gallery'
1515-import {ImageModel} from 'state/models/media/image'
1616-import {SquareIcon, RectWideIcon, RectTallIcon} from 'lib/icons'
1717-import {Slider} from '@miblanchard/react-native-slider'
1818-import {MaterialIcons} from '@expo/vector-icons'
1919-import {observer} from 'mobx-react-lite'
2020-import {getKeys} from 'lib/type-assertions'
2121-import {Trans, msg} from '@lingui/macro'
2222-import {useLingui} from '@lingui/react'
2323-import {useModalControls} from '#/state/modals'
24252526export const snapPoints = ['80%']
2627
+20-19
src/view/com/modals/EditProfile.tsx
···11-import React, {useState, useCallback} from 'react'
22-import * as Toast from '../util/Toast'
11+import React, {useCallback, useState} from 'react'
32import {
43 ActivityIndicator,
54 KeyboardAvoidingView,
···98 TouchableOpacity,
109 View,
1110} from 'react-native'
1212-import LinearGradient from 'react-native-linear-gradient'
1311import {Image as RNImage} from 'react-native-image-crop-picker'
1212+import Animated, {FadeOut} from 'react-native-reanimated'
1313+import LinearGradient from 'expo-linear-gradient'
1414import {AppBskyActorDefs} from '@atproto/api'
1515-import {Text} from '../util/text/Text'
1616-import {ErrorMessage} from '../util/error/ErrorMessage'
1717-import {s, colors, gradients} from 'lib/styles'
1515+import {msg, Trans} from '@lingui/macro'
1616+import {useLingui} from '@lingui/react'
1717+1818+import {logger} from '#/logger'
1919+import {useModalControls} from '#/state/modals'
2020+import {useProfileUpdateMutation} from '#/state/queries/profile'
2121+import {useAnalytics} from 'lib/analytics/analytics'
2222+import {MAX_DESCRIPTION, MAX_DISPLAY_NAME} from 'lib/constants'
2323+import {usePalette} from 'lib/hooks/usePalette'
2424+import {compressIfNeeded} from 'lib/media/manip'
2525+import {cleanError} from 'lib/strings/errors'
1826import {enforceLen} from 'lib/strings/helpers'
1919-import {MAX_DISPLAY_NAME, MAX_DESCRIPTION} from 'lib/constants'
2020-import {compressIfNeeded} from 'lib/media/manip'
2121-import {UserBanner} from '../util/UserBanner'
2222-import {EditableUserAvatar} from '../util/UserAvatar'
2323-import {usePalette} from 'lib/hooks/usePalette'
2727+import {colors, gradients, s} from 'lib/styles'
2428import {useTheme} from 'lib/ThemeContext'
2525-import {useAnalytics} from 'lib/analytics/analytics'
2626-import {cleanError} from 'lib/strings/errors'
2727-import Animated, {FadeOut} from 'react-native-reanimated'
2829import {isWeb} from 'platform/detection'
2929-import {Trans, msg} from '@lingui/macro'
3030-import {useLingui} from '@lingui/react'
3131-import {useModalControls} from '#/state/modals'
3232-import {useProfileUpdateMutation} from '#/state/queries/profile'
3333-import {logger} from '#/logger'
3030+import {ErrorMessage} from '../util/error/ErrorMessage'
3131+import {Text} from '../util/text/Text'
3232+import * as Toast from '../util/Toast'
3333+import {EditableUserAvatar} from '../util/UserAvatar'
3434+import {UserBanner} from '../util/UserBanner'
34353536const AnimatedTouchableOpacity =
3637 Animated.createAnimatedComponent(TouchableOpacity)
+9-8
src/view/com/modals/EmbedConsent.tsx
···11import React from 'react'
22import {StyleSheet, TouchableOpacity, View} from 'react-native'
33-import LinearGradient from 'react-native-linear-gradient'
44-import {s, colors, gradients} from 'lib/styles'
55-import {Text} from '../util/text/Text'
66-import {ScrollView} from './util'
77-import {usePalette} from 'lib/hooks/usePalette'
33+import LinearGradient from 'expo-linear-gradient'
44+import {msg, Trans} from '@lingui/macro'
55+import {useLingui} from '@lingui/react'
66+77+import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
88import {
99 EmbedPlayerSource,
1010 embedPlayerSources,
1111 externalEmbedLabels,
1212} from '#/lib/strings/embed-player'
1313-import {msg, Trans} from '@lingui/macro'
1414-import {useLingui} from '@lingui/react'
1513import {useModalControls} from '#/state/modals'
1614import {useSetExternalEmbedPref} from '#/state/preferences/external-embeds-prefs'
1717-import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
1515+import {usePalette} from 'lib/hooks/usePalette'
1616+import {colors, gradients, s} from 'lib/styles'
1717+import {Text} from '../util/text/Text'
1818+import {ScrollView} from './util'
18191920export const snapPoints = [450]
2021
+7-6
src/view/com/modals/Repost.tsx
···11import React from 'react'
22import {StyleSheet, TouchableOpacity, View} from 'react-native'
33-import LinearGradient from 'react-native-linear-gradient'
44-import {s, colors, gradients} from 'lib/styles'
55-import {Text} from '../util/text/Text'
66-import {usePalette} from 'lib/hooks/usePalette'
77-import {RepostIcon} from 'lib/icons'
33+import LinearGradient from 'expo-linear-gradient'
84import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
99-import {Trans, msg} from '@lingui/macro'
55+import {msg, Trans} from '@lingui/macro'
106import {useLingui} from '@lingui/react'
77+118import {useModalControls} from '#/state/modals'
99+import {usePalette} from 'lib/hooks/usePalette'
1010+import {RepostIcon} from 'lib/icons'
1111+import {colors, gradients, s} from 'lib/styles'
1212+import {Text} from '../util/text/Text'
12131314export const snapPoints = [250]
1415
+11-10
src/view/com/modals/crop-image/CropImage.web.tsx
···11import React from 'react'
22import {StyleSheet, TouchableOpacity, View} from 'react-native'
33+import {Image as RNImage} from 'react-native-image-crop-picker'
44+import LinearGradient from 'expo-linear-gradient'
55+import {msg, Trans} from '@lingui/macro'
66+import {useLingui} from '@lingui/react'
77+import {Slider} from '@miblanchard/react-native-slider'
38import ImageEditor from 'react-avatar-editor'
44-import {Slider} from '@miblanchard/react-native-slider'
55-import LinearGradient from 'react-native-linear-gradient'
66-import {Text} from 'view/com/util/text/Text'
99+1010+import {useModalControls} from '#/state/modals'
1111+import {usePalette} from 'lib/hooks/usePalette'
1212+import {RectTallIcon, RectWideIcon, SquareIcon} from 'lib/icons'
713import {Dimensions} from 'lib/media/types'
814import {getDataUriSize} from 'lib/media/util'
99-import {s, gradients} from 'lib/styles'
1010-import {usePalette} from 'lib/hooks/usePalette'
1111-import {SquareIcon, RectWideIcon, RectTallIcon} from 'lib/icons'
1212-import {Image as RNImage} from 'react-native-image-crop-picker'
1313-import {Trans, msg} from '@lingui/macro'
1414-import {useLingui} from '@lingui/react'
1515-import {useModalControls} from '#/state/modals'
1515+import {gradients, s} from 'lib/styles'
1616+import {Text} from 'view/com/util/text/Text'
16171718enum AspectRatio {
1819 Square = 'square',
···11import React from 'react'
22-import {StyleSheet, Text, View, Pressable} from 'react-native'
33-import LinearGradient from 'react-native-linear-gradient'
44-import {s, colors, gradients} from 'lib/styles'
22+import {Pressable, StyleSheet, Text, View} from 'react-native'
33+import LinearGradient from 'expo-linear-gradient'
44+import {msg, Trans} from '@lingui/macro'
55+import {useLingui} from '@lingui/react'
66+57import {usePalette} from 'lib/hooks/usePalette'
68import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
77-import {Trans, msg} from '@lingui/macro'
88-import {useLingui} from '@lingui/react'
99+import {colors, gradients, s} from 'lib/styles'
9101011export const ConfirmLanguagesButton = ({
1112 onPress,
+7-6
src/view/com/util/fab/FABInner.tsx
···11import React, {ComponentProps} from 'react'
22import {StyleSheet, TouchableWithoutFeedback} from 'react-native'
33-import LinearGradient from 'react-native-linear-gradient'
44-import {gradients} from 'lib/styles'
33+import Animated from 'react-native-reanimated'
44+import {useSafeAreaInsets} from 'react-native-safe-area-context'
55+import LinearGradient from 'expo-linear-gradient'
66+77+import {isWeb} from '#/platform/detection'
88+import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode'
59import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
66-import {useSafeAreaInsets} from 'react-native-safe-area-context'
710import {clamp} from 'lib/numbers'
88-import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode'
99-import {isWeb} from '#/platform/detection'
1010-import Animated from 'react-native-reanimated'
1111+import {gradients} from 'lib/styles'
11121213export interface FABProps
1314 extends ComponentProps<typeof TouchableWithoutFeedback> {