Bluesky app fork with some witchin' additions 💫 witchsky.app
bluesky fork client

Leverage jsx transform to remove unnecessary react imports and update eslint config (#6516)

* update eslint config with jsx runtime

* leverage jsx transform to remove unnecessary react imports and update eslint config

* run yarn lint --fix to remove eslint disables related to react/prop-types that is now disabled

authored by

Paul Coroneos and committed by
GitHub
ff5ad382 cfc653a5

+55 -148
+2
.eslintrc.js
··· 3 3 extends: [ 4 4 '@react-native-community', 5 5 'plugin:react/recommended', 6 + 'plugin:react/jsx-runtime', 6 7 'plugin:react-native-a11y/ios', 7 8 'prettier', 8 9 ], ··· 19 20 // Temporary until https://github.com/facebook/react-native/pull/43756 gets into a release. 20 21 'prettier/prettier': 0, 21 22 'react/no-unescaped-entities': 0, 23 + 'react/prop-types': 0, 22 24 'react-native/no-inline-styles': 0, 23 25 'bsky-internal/avoid-unwrapped-text': [ 24 26 'error',
-1
src/components/AvatarStack.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {moderateProfile} from '@atproto/api' 4 3
-1
src/components/Divider.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, flatten, useTheme, ViewStyleProp} from '#/alf'
-1
src/components/Error.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {msg, Trans} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
-1
src/components/GradientFill.tsx
··· 1 - import React from 'react' 2 1 import {LinearGradient} from 'expo-linear-gradient' 3 2 4 3 import {atoms as a, tokens} from '#/alf'
-1
src/components/IconCircle.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {
+1 -1
src/components/LikesDialog.tsx
··· 1 - import React, {useCallback, useMemo} from 'react' 1 + import {useCallback, useMemo} from 'react' 2 2 import {ActivityIndicator, FlatList, View} from 'react-native' 3 3 import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro'
-1
src/components/Loader.web.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, flatten, useTheme} from '#/alf'
-2
src/components/Menu/index.web.tsx
··· 1 - /* eslint-disable react/prop-types */ 2 - 3 1 import React from 'react' 4 2 import {Pressable, StyleProp, View, ViewStyle} from 'react-native' 5 3 import {msg} from '@lingui/macro'
-1
src/components/ProgressGuide/List.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, View, ViewStyle} from 'react-native' 3 2 import {msg, Trans} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
-1
src/components/ProgressGuide/Task.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import * as Progress from 'react-native-progress' 4 3
-1
src/components/ReportDialog/SelectLabelerView.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {AppBskyLabelerDefs} from '@atproto/api' 4 3 import {msg, Trans} from '@lingui/macro'
-1
src/components/StarterPack/ShareDialog.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {Image} from 'expo-image' 4 3 import {requestMediaLibraryPermissionsAsync} from 'expo-image-picker'
+1 -1
src/components/StarterPack/Wizard/WizardEditListDialog.tsx
··· 1 - import React, {useRef} from 'react' 1 + import {useRef} from 'react' 2 2 import type {ListRenderItemInfo} from 'react-native' 3 3 import {View} from 'react-native' 4 4 import {AppBskyActorDefs, ModerationOpts} from '@atproto/api'
-1
src/components/StarterPack/Wizard/WizardListCard.tsx
··· 1 - import React from 'react' 2 1 import {Keyboard, View} from 'react-native' 3 2 import { 4 3 AppBskyActorDefs,
-1
src/components/SubtleWebHover.web.tsx
··· 1 - import React from 'react' 2 1 import {StyleSheet, View} from 'react-native' 3 2 4 3 import {isTouchDevice} from '#/lib/browser'
+1 -1
src/components/dialogs/EmbedConsent.tsx
··· 1 - import React, {useCallback} from 'react' 1 + import {useCallback} from 'react' 2 2 import {View} from 'react-native' 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
+1 -1
src/components/dialogs/SwitchAccount.tsx
··· 1 - import React, {useCallback} from 'react' 1 + import {useCallback} from 'react' 2 2 import {View} from 'react-native' 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
+1 -1
src/components/dms/ConvoMenu.tsx
··· 115 115 {...props} 116 116 onPress={() => { 117 117 Keyboard.dismiss() 118 - // eslint-disable-next-line react/prop-types -- eslint is confused by the name `props` 118 + 119 119 props.onPress() 120 120 }} 121 121 style={[
-1
src/components/dms/LeaveConvoPrompt.tsx
··· 1 - import React from 'react' 2 1 import {msg} from '@lingui/macro' 3 2 import {useLingui} from '@lingui/react' 4 3 import {useNavigation} from '@react-navigation/native'
-1
src/components/dms/ReportConversationPrompt.tsx
··· 1 - import React from 'react' 2 1 import {msg} from '@lingui/macro' 3 2 import {useLingui} from '@lingui/react' 4 3
+1 -1
src/components/dms/dialogs/NewChatDialog.tsx
··· 1 - import React, {useCallback} from 'react' 1 + import {useCallback} from 'react' 2 2 import {msg} from '@lingui/macro' 3 3 import {useLingui} from '@lingui/react' 4 4
+1 -1
src/components/dms/dialogs/ShareViaChatDialog.tsx
··· 1 - import React, {useCallback} from 'react' 1 + import {useCallback} from 'react' 2 2 import {msg} from '@lingui/macro' 3 3 import {useLingui} from '@lingui/react' 4 4
-1
src/components/forms/DateField/index.shared.tsx
··· 1 - import React from 'react' 2 1 import {Pressable, View} from 'react-native' 3 2 import {useLingui} from '@lingui/react' 4 3
-1
src/components/forms/FormError.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, useTheme} from '#/alf'
-1
src/components/icons/common.tsx
··· 1 - import React from 'react' 2 1 import {StyleSheet, TextProps} from 'react-native' 3 2 import type {PathProps, SvgProps} from 'react-native-svg' 4 3 import {Defs, LinearGradient, Stop} from 'react-native-svg'
-1
src/components/moderation/LabelsOnMe.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, View, ViewStyle} from 'react-native' 3 2 import {AppBskyFeedDefs, ComAtprotoLabelDefs} from '@atproto/api' 4 3 import {msg, Plural} from '@lingui/macro'
-1
src/components/moderation/ModerationDetailsDialog.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {ModerationCause} from '@atproto/api' 4 3 import {msg, Trans} from '@lingui/macro'
-1
src/components/moderation/PostAlerts.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, ViewStyle} from 'react-native' 3 2 import {ModerationCause, ModerationUI} from '@atproto/api' 4 3
-1
src/components/moderation/ProfileHeaderAlerts.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, ViewStyle} from 'react-native' 3 2 import {ModerationDecision} from '@atproto/api' 4 3
-1
src/components/video/PlayButtonIcon.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, useTheme} from '#/alf'
-1
src/lib/custom-animations/LikeIcon.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import Animated, { 4 3 Keyframe,
-1
src/lib/custom-animations/PressableScale.tsx
··· 1 - import React from 'react' 2 1 import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' 3 2 import Animated, { 4 3 cancelAnimation,
-1
src/lib/icons.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, TextStyle, ViewStyle} from 'react-native' 3 2 import Svg, {Ellipse, Line, Path, Rect} from 'react-native-svg' 4 3
-1
src/screens/Login/PasswordUpdatedForm.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {msg, Trans} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
+1 -1
src/screens/Login/SetNewPasswordForm.tsx
··· 1 - import React, {useState} from 'react' 1 + import {useState} from 'react' 2 2 import {ActivityIndicator, View} from 'react-native' 3 3 import {BskyAgent} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro'
+1 -1
src/screens/Messages/ChatList.tsx
··· 1 - import React, {useCallback, useEffect, useMemo, useState} from 'react' 1 + import {useCallback, useEffect, useMemo, useState} from 'react' 2 2 import {View} from 'react-native' 3 3 import {ChatBskyConvoDefs} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro'
+1 -1
src/screens/Messages/Settings.tsx
··· 1 - import React, {useCallback} from 'react' 1 + import {useCallback} from 'react' 2 2 import {View} from 'react-native' 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
+1 -1
src/screens/Messages/components/ChatDisabled.tsx
··· 1 - import React, {useCallback, useState} from 'react' 1 + import {useCallback, useState} from 'react' 2 2 import {View} from 'react-native' 3 3 import {ComAtprotoModerationDefs} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro'
+1 -1
src/screens/Messages/components/MessageInputEmbed.tsx
··· 1 - import React, {useCallback, useEffect, useMemo, useState} from 'react' 1 + import {useCallback, useEffect, useMemo, useState} from 'react' 2 2 import {LayoutAnimation, View} from 'react-native' 3 3 import { 4 4 AppBskyFeedPost,
-1
src/screens/Profile/Header/DisplayName.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {AppBskyActorDefs, ModerationDecision} from '@atproto/api' 4 3
+1 -1
src/screens/Profile/Header/EditProfileDialog.tsx
··· 1 - import React, {useCallback, useEffect, useState} from 'react' 1 + import {useCallback, useEffect, useState} from 'react' 2 2 import {Dimensions, View} from 'react-native' 3 3 import {Image as RNImage} from 'react-native-image-crop-picker' 4 4 import {AppBskyActorDefs} from '@atproto/api'
-1
src/screens/Profile/Header/Handle.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {AppBskyActorDefs} from '@atproto/api' 4 3 import {msg, Trans} from '@lingui/macro'
-1
src/screens/Profile/Header/Metrics.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {AppBskyActorDefs} from '@atproto/api' 4 3 import {msg, plural} from '@lingui/macro'
-1
src/screens/Settings/AboutSettings.tsx
··· 1 - import React from 'react' 2 1 import {Platform} from 'react-native' 3 2 import {setStringAsync} from 'expo-clipboard' 4 3 import {msg, Trans} from '@lingui/macro'
-1
src/screens/Settings/AccessibilitySettings.tsx
··· 1 - import React from 'react' 2 1 import {msg, Trans} from '@lingui/macro' 3 2 import {useLingui} from '@lingui/react' 4 3 import {NativeStackScreenProps} from '@react-navigation/native-stack'
-1
src/screens/Settings/AccountSettings.tsx
··· 1 - import React from 'react' 2 1 import {msg, Trans} from '@lingui/macro' 3 2 import {useLingui} from '@lingui/react' 4 3 import {NativeStackScreenProps} from '@react-navigation/native-stack'
+1 -1
src/screens/Settings/AppPasswords.tsx
··· 1 - import React, {useCallback} from 'react' 1 + import {useCallback} from 'react' 2 2 import {View} from 'react-native' 3 3 import Animated, { 4 4 FadeIn,
-1
src/screens/Settings/ContentAndMediaSettings.tsx
··· 1 - import React from 'react' 2 1 import {msg, Trans} from '@lingui/macro' 3 2 import {useLingui} from '@lingui/react' 4 3 import {NativeStackScreenProps} from '@react-navigation/native-stack'
+1 -1
src/screens/Settings/ExternalMediaPreferences.tsx
··· 1 - import React, {Fragment} from 'react' 1 + import {Fragment} from 'react' 2 2 import {View} from 'react-native' 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
-1
src/screens/Settings/FollowingFeedPreferences.tsx
··· 1 - import React from 'react' 2 1 import {msg, Trans} from '@lingui/macro' 3 2 import {useLingui} from '@lingui/react' 4 3
+1 -1
src/screens/Settings/LanguageSettings.tsx
··· 1 - import React, {useCallback, useMemo} from 'react' 1 + import {useCallback, useMemo} from 'react' 2 2 import {View} from 'react-native' 3 3 import RNPickerSelect, {PickerSelectProps} from 'react-native-picker-select' 4 4 import {msg, Trans} from '@lingui/macro'
-1
src/screens/Settings/NotificationSettings.tsx
··· 1 - import React from 'react' 2 1 import {Text} from 'react-native' 3 2 import {msg, Trans} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
-1
src/screens/Settings/PrivacyAndSecuritySettings.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {msg, Trans} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
+1 -1
src/screens/Settings/Settings.tsx
··· 1 - import React, {useState} from 'react' 1 + import {useState} from 'react' 2 2 import {LayoutAnimation, Pressable, View} from 'react-native' 3 3 import {Linking} from 'react-native' 4 4 import {useReducedMotion} from 'react-native-reanimated'
-1
src/screens/Settings/ThreadPreferences.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {msg, Trans} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
+1 -1
src/screens/Settings/components/AddAppPasswordDialog.tsx
··· 1 - import React, {useEffect, useMemo, useState} from 'react' 1 + import {useEffect, useMemo, useState} from 'react' 2 2 import {useWindowDimensions, View} from 'react-native' 3 3 import Animated, { 4 4 FadeIn,
+1 -1
src/screens/Settings/components/ChangeHandleDialog.tsx
··· 1 - import React, {useCallback, useMemo, useState} from 'react' 1 + import {useCallback, useMemo, useState} from 'react' 2 2 import {useWindowDimensions, View} from 'react-native' 3 3 import Animated, { 4 4 FadeIn,
+1 -1
src/screens/Settings/components/CopyButton.tsx
··· 1 - import React, {useCallback, useEffect, useState} from 'react' 1 + import {useCallback, useEffect, useState} from 'react' 2 2 import {GestureResponderEvent, View} from 'react-native' 3 3 import Animated, { 4 4 FadeOutUp,
+1 -1
src/screens/Settings/components/DisableEmail2FADialog.tsx
··· 1 - import React, {useState} from 'react' 1 + import {useState} from 'react' 2 2 import {View} from 'react-native' 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
-1
src/screens/Settings/components/SettingsList.tsx
··· 213 213 } 214 214 215 215 export function ItemText({ 216 - // eslint-disable-next-line react/prop-types 217 216 style, 218 217 ...props 219 218 }: React.ComponentProps<typeof Button.ButtonText>) {
-1
src/screens/Signup/BackNextButtons.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {msg, Trans} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
+1 -1
src/screens/Signup/StepInfo/Policies.tsx
··· 1 - import React, {ReactElement} from 'react' 1 + import {ReactElement} from 'react' 2 2 import {View} from 'react-native' 3 3 import {ComAtprotoServerDescribeServer} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro'
-1
src/screens/StarterPack/Wizard/StepDetails.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {msg, Trans} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
+1 -1
src/screens/StarterPack/Wizard/StepFeeds.tsx
··· 1 - import React, {useState} from 'react' 1 + import {useState} from 'react' 2 2 import {ListRenderItemInfo, View} from 'react-native' 3 3 import {KeyboardAwareScrollView} from 'react-native-keyboard-controller' 4 4 import {AppBskyFeedDefs, ModerationOpts} from '@atproto/api'
+1 -1
src/screens/StarterPack/Wizard/StepProfiles.tsx
··· 1 - import React, {useState} from 'react' 1 + import {useState} from 'react' 2 2 import {ListRenderItemInfo, View} from 'react-native' 3 3 import {KeyboardAwareScrollView} from 'react-native-keyboard-controller' 4 4 import {AppBskyActorDefs, ModerationOpts} from '@atproto/api'
-1
src/view/com/auth/SplashScreen.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {useSafeAreaInsets} from 'react-native-safe-area-context' 4 3 import {msg, Trans} from '@lingui/macro'
-1
src/view/com/auth/util/HelpTip.tsx
··· 1 - import React from 'react' 2 1 import {StyleSheet, View} from 'react-native' 3 2 4 3 import {useColorSchemeStyle} from '#/lib/hooks/useColorSchemeStyle'
+1 -1
src/view/com/auth/util/TextInput.tsx
··· 1 - import React, {ComponentProps} from 'react' 1 + import {ComponentProps} from 'react' 2 2 import {StyleSheet, TextInput as RNTextInput, View} from 'react-native' 3 3 import {IconProp} from '@fortawesome/fontawesome-svg-core' 4 4 import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
-1
src/view/com/composer/ExternalEmbedRemoveBtn.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {msg} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
+1 -1
src/view/com/composer/GifAltText.tsx
··· 1 - import React, {useState} from 'react' 1 + import {useState} from 'react' 2 2 import {TouchableOpacity, View} from 'react-native' 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
-1
src/view/com/composer/char-progress/CharProgress.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, TextStyle, View, ViewStyle} from 'react-native' 3 2 // @ts-ignore no type definition -prf 4 3 import ProgressCircle from 'react-native-progress/Circle'
-1
src/view/com/composer/labels/LabelsBtn.tsx
··· 1 - import React from 'react' 2 1 import {Keyboard, View} from 'react-native' 3 2 import {msg, Trans} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
+1 -1
src/view/com/composer/photos/OpenCameraBtn.tsx
··· 1 - import React, {useCallback} from 'react' 1 + import {useCallback} from 'react' 2 2 import * as MediaLibrary from 'expo-media-library' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
+1 -1
src/view/com/composer/photos/SelectGifBtn.tsx
··· 1 - import React, {useCallback, useRef} from 'react' 1 + import {useCallback, useRef} from 'react' 2 2 import {Keyboard} from 'react-native' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
+1 -1
src/view/com/composer/photos/SelectPhotoBtn.tsx
··· 1 1 /* eslint-disable react-native-a11y/has-valid-accessibility-ignores-invert-colors */ 2 - import React, {useCallback} from 'react' 2 + import {useCallback} from 'react' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5
+1 -1
src/view/com/composer/select-language/SelectLangBtn.tsx
··· 1 - import React, {useCallback, useMemo} from 'react' 1 + import {useCallback, useMemo} from 'react' 2 2 import {Keyboard, StyleSheet} from 'react-native' 3 3 import { 4 4 FontAwesomeIcon,
+1 -1
src/view/com/composer/select-language/SuggestedLanguage.tsx
··· 1 - import React, {useEffect, useState} from 'react' 1 + import {useEffect, useState} from 'react' 2 2 import {StyleSheet, View} from 'react-native' 3 3 import { 4 4 FontAwesomeIcon,
+1 -1
src/view/com/composer/text-input/mobile/Autocomplete.tsx
··· 1 - import React, {useRef} from 'react' 1 + import {useRef} from 'react' 2 2 import {View} from 'react-native' 3 3 import Animated, {FadeInDown, FadeOut} from 'react-native-reanimated' 4 4 import {AppBskyActorDefs} from '@atproto/api'
+1 -6
src/view/com/composer/text-input/web/Autocomplete.tsx
··· 1 - import React, { 2 - forwardRef, 3 - useEffect, 4 - useImperativeHandle, 5 - useState, 6 - } from 'react' 1 + import {forwardRef, useEffect, useImperativeHandle, useState} from 'react' 7 2 import {Pressable, StyleSheet, View} from 'react-native' 8 3 import {Trans} from '@lingui/macro' 9 4 import {ReactRenderer} from '@tiptap/react'
-1
src/view/com/composer/threadgate/ThreadgateBtn.tsx
··· 1 - import React from 'react' 2 1 import {Keyboard, StyleProp, ViewStyle} from 'react-native' 3 2 import {AnimatedStyle} from 'react-native-reanimated' 4 3 import {AppBskyFeedPostgate} from '@atproto/api'
+1 -1
src/view/com/composer/videos/SelectVideoBtn.tsx
··· 1 - import React, {useCallback} from 'react' 1 + import {useCallback} from 'react' 2 2 import {Keyboard} from 'react-native' 3 3 import { 4 4 ImagePickerAsset,
+1 -1
src/view/com/composer/videos/SubtitleDialog.tsx
··· 1 - import React, {useCallback, useState} from 'react' 1 + import {useCallback, useState} from 'react' 2 2 import {Keyboard, StyleProp, View, ViewStyle} from 'react-native' 3 3 import RNPickerSelect from 'react-native-picker-select' 4 4 import {msg, Trans} from '@lingui/macro'
+1 -1
src/view/com/composer/videos/VideoPreview.web.tsx
··· 1 - import React, {useEffect, useRef} from 'react' 1 + import {useEffect, useRef} from 'react' 2 2 import {View} from 'react-native' 3 3 import {ImagePickerAsset} from 'expo-image-picker' 4 4 import {msg} from '@lingui/macro'
-1
src/view/com/composer/videos/VideoTranscodeBackdrop.tsx
··· 1 - import React from 'react' 2 1 import {clearCache, createVideoThumbnail} from 'react-native-compressor' 3 2 import Animated, {FadeIn} from 'react-native-reanimated' 4 3 import {Image} from 'expo-image'
-1
src/view/com/composer/videos/VideoTranscodeProgress.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 // @ts-expect-error no type definition 4 3 import ProgressPie from 'react-native-progress/Pie'
-1
src/view/com/lightbox/ImageViewing/components/ImageDefaultHeader.tsx
··· 5 5 * LICENSE file in the root directory of this source tree. 6 6 * 7 7 */ 8 - import React from 'react' 9 8 import { 10 9 SafeAreaView, 11 10 StyleSheet,
+1 -1
src/view/com/modals/ChangeEmail.tsx
··· 1 - import React, {useState} from 'react' 1 + import {useState} from 'react' 2 2 import {ActivityIndicator, SafeAreaView, StyleSheet, View} from 'react-native' 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
+1 -1
src/view/com/modals/ChangePassword.tsx
··· 1 - import React, {useState} from 'react' 1 + import {useState} from 'react' 2 2 import { 3 3 ActivityIndicator, 4 4 SafeAreaView,
+1 -1
src/view/com/modals/CreateOrEditList.tsx
··· 1 - import React, {useCallback, useMemo, useState} from 'react' 1 + import {useCallback, useMemo, useState} from 'react' 2 2 import { 3 3 ActivityIndicator, 4 4 KeyboardAvoidingView,
+1 -1
src/view/com/modals/EditProfile.tsx
··· 1 - import React, {useCallback, useState} from 'react' 1 + import {useCallback, useState} from 'react' 2 2 import { 3 3 ActivityIndicator, 4 4 KeyboardAvoidingView,
+1 -1
src/view/com/modals/Modal.tsx
··· 1 - import React, {Fragment, useEffect, useRef} from 'react' 1 + import {Fragment, useEffect, useRef} from 'react' 2 2 import {StyleSheet} from 'react-native' 3 3 import {SafeAreaView} from 'react-native-safe-area-context' 4 4 import BottomSheet from '@discord/bottom-sheet/src'
-1
src/view/com/modals/Modal.web.tsx
··· 1 - import React from 'react' 2 1 import {StyleSheet, TouchableWithoutFeedback, View} from 'react-native' 3 2 import Animated, {FadeIn, FadeOut} from 'react-native-reanimated' 4 3
-1
src/view/com/modals/lang-settings/ConfirmLanguagesButton.tsx
··· 1 - import React from 'react' 2 1 import {Pressable, StyleSheet, Text, View} from 'react-native' 3 2 import {LinearGradient} from 'expo-linear-gradient' 4 3 import {msg, Trans} from '@lingui/macro'
-1
src/view/com/modals/lang-settings/LanguageToggle.tsx
··· 1 - import React from 'react' 2 1 import {StyleSheet} from 'react-native' 3 2 4 3 import {usePalette} from '#/lib/hooks/usePalette'
+1 -1
src/view/com/post-thread/PostLikedBy.tsx
··· 1 - import React, {useCallback, useMemo, useState} from 'react' 1 + import {useCallback, useMemo, useState} from 'react' 2 2 import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
+1 -1
src/view/com/post-thread/PostQuotes.tsx
··· 1 - import React, {useCallback, useState} from 'react' 1 + import {useCallback, useState} from 'react' 2 2 import { 3 3 AppBskyFeedDefs, 4 4 AppBskyFeedPost,
+1 -1
src/view/com/post-thread/PostRepostedBy.tsx
··· 1 - import React, {useCallback, useMemo, useState} from 'react' 1 + import {useCallback, useMemo, useState} from 'react' 2 2 import {AppBskyActorDefs as ActorDefs} from '@atproto/api' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
-1
src/view/com/post-thread/PostThreadComposePrompt.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {msg, Trans} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
-1
src/view/com/post-thread/PostThreadShowHiddenReplies.tsx
··· 1 - import * as React from 'react' 2 1 import {View} from 'react-native' 3 2 import {msg} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
-1
src/view/com/posts/DiscoverFallbackHeader.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {Trans} from '@lingui/macro' 4 3
-1
src/view/com/profile/FollowButton.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, TextStyle, View} from 'react-native' 3 2 import {AppBskyActorDefs} from '@atproto/api' 4 3 import {msg} from '@lingui/macro'
-1
src/view/com/testing/TestCtrls.e2e.tsx
··· 1 - import React from 'react' 2 1 import {LogBox, Pressable, View} from 'react-native' 3 2 import {useQueryClient} from '@tanstack/react-query' 4 3
-1
src/view/com/util/EmptyState.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' 3 2 import {IconProp} from '@fortawesome/fontawesome-svg-core' 4 3 import {
-1
src/view/com/util/EmptyStateWithButton.tsx
··· 1 - import React from 'react' 2 1 import {StyleSheet, View} from 'react-native' 3 2 import {IconProp} from '@fortawesome/fontawesome-svg-core' 4 3 import {
+1 -1
src/view/com/util/ErrorBoundary.tsx
··· 1 - import React, {Component, ErrorInfo, ReactNode} from 'react' 1 + import {Component, ErrorInfo, ReactNode} from 'react' 2 2 import {StyleProp, ViewStyle} from 'react-native' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
-1
src/view/com/util/FeedInfoText.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, StyleSheet, TextStyle} from 'react-native' 3 2 4 3 import {sanitizeDisplayName} from '#/lib/strings/display-names'
-1
src/view/com/util/LoadMoreRetryBtn.tsx
··· 1 - import React from 'react' 2 1 import {StyleSheet} from 'react-native' 3 2 import { 4 3 FontAwesomeIcon,
-1
src/view/com/util/LoadingPlaceholder.tsx
··· 1 - import React from 'react' 2 1 import { 3 2 DimensionValue, 4 3 StyleProp,
-1
src/view/com/util/LoadingScreen.tsx
··· 1 - import React from 'react' 2 1 import {ActivityIndicator, View} from 'react-native' 3 2 4 3 import {s} from '#/lib/styles'
+1 -1
src/view/com/util/PressableWithHover.tsx
··· 1 - import React, {forwardRef, PropsWithChildren} from 'react' 1 + import {forwardRef, PropsWithChildren} from 'react' 2 2 import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' 3 3 import {View} from 'react-native' 4 4
+1 -1
src/view/com/util/Selector.tsx
··· 1 - import React, {createRef, useMemo, useRef, useState} from 'react' 1 + import {createRef, useMemo, useRef, useState} from 'react' 2 2 import {Animated, Pressable, StyleSheet, View} from 'react-native' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react'
+1 -1
src/view/com/util/Toast.tsx
··· 1 - import React, {useEffect, useState} from 'react' 1 + import {useEffect, useState} from 'react' 2 2 import {View} from 'react-native' 3 3 import Animated, {FadeInUp, FadeOutUp} from 'react-native-reanimated' 4 4 import RootSiblings from 'react-native-root-siblings'
-1
src/view/com/util/UserInfoText.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, StyleSheet, TextStyle} from 'react-native' 3 2 import {AppBskyActorGetProfile as GetProfile} from '@atproto/api' 4 3
-1
src/view/com/util/error/ErrorMessage.tsx
··· 1 - import React from 'react' 2 1 import { 3 2 StyleProp, 4 3 StyleSheet,
-1
src/view/com/util/error/ErrorScreen.tsx
··· 1 - import React from 'react' 2 1 import {StyleSheet, View} from 'react-native' 3 2 import { 4 3 FontAwesomeIcon,
-1
src/view/com/util/fab/FAB.web.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
+1 -1
src/view/com/util/fab/FABInner.tsx
··· 1 - import React, {ComponentProps} from 'react' 1 + import {ComponentProps} from 'react' 2 2 import {StyleSheet, TouchableWithoutFeedback} from 'react-native' 3 3 import Animated from 'react-native-reanimated' 4 4 import {useSafeAreaInsets} from 'react-native-safe-area-context'
+1 -1
src/view/com/util/forms/DateInput.tsx
··· 1 - import React, {useCallback, useState} from 'react' 1 + import {useCallback, useState} from 'react' 2 2 import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' 3 3 import DatePicker from 'react-native-date-picker' 4 4 import {
+1 -1
src/view/com/util/forms/DateInput.web.tsx
··· 1 - import React, {useCallback, useState} from 'react' 1 + import {useCallback, useState} from 'react' 2 2 import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' 3 3 // @ts-ignore types not available -prf 4 4 import {unstable_createElement} from 'react-native-web'
-1
src/view/com/util/forms/RadioButton.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' 3 2 4 3 import {choose} from '#/lib/functions'
+1 -1
src/view/com/util/forms/RadioGroup.tsx
··· 1 - import React, {useState} from 'react' 1 + import {useState} from 'react' 2 2 import {View} from 'react-native' 3 3 4 4 import {s} from '#/lib/styles'
-1
src/view/com/util/forms/SelectableBtn.tsx
··· 1 - import React from 'react' 2 1 import {Pressable, StyleProp, StyleSheet, ViewStyle} from 'react-native' 3 2 4 3 import {usePalette} from '#/lib/hooks/usePalette'
-1
src/view/com/util/forms/ToggleButton.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' 3 2 4 3 import {choose} from '#/lib/functions'
-1
src/view/com/util/images/Image.tsx
··· 1 - import React from 'react' 2 1 import {Image, ImageProps, ImageSource} from 'expo-image' 3 2 4 3 interface HighPriorityImageProps extends ImageProps {
-1
src/view/com/util/load-latest/LoadLatestBtn.tsx
··· 1 - import React from 'react' 2 1 import {StyleSheet, TouchableOpacity, View} from 'react-native' 3 2 import Animated from 'react-native-reanimated' 4 3 import {useSafeAreaInsets} from 'react-native-safe-area-context'
-1
src/view/com/util/post-embeds/VideoEmbedInner/TimeIndicator.tsx
··· 1 - import React from 'react' 2 1 import {StyleProp, ViewStyle} from 'react-native' 3 2 import {View} from 'react-native' 4 3
-1
src/view/icons/Logomark.tsx
··· 1 - import React from 'react' 2 1 import Svg, {Path, PathProps, SvgProps} from 'react-native-svg' 3 2 4 3 import {usePalette} from '#/lib/hooks/usePalette'
-1
src/view/icons/Logotype.tsx
··· 1 - import React from 'react' 2 1 import Svg, {Path, PathProps, SvgProps} from 'react-native-svg' 3 2 4 3 import {usePalette} from '#/lib/hooks/usePalette'
-1
src/view/screens/Storybook/Admonitions.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a} from '#/alf'
-1
src/view/screens/Storybook/Breakpoints.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, useBreakpoints, useTheme} from '#/alf'
-1
src/view/screens/Storybook/Icons.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, useTheme} from '#/alf'
-1
src/view/screens/Storybook/Links.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, useTheme} from '#/alf'
-1
src/view/screens/Storybook/Menus.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, useTheme} from '#/alf'
-1
src/view/screens/Storybook/Palette.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, useTheme} from '#/alf'
-1
src/view/screens/Storybook/Settings.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import * as Toast from '#/view/com/util/Toast'
-1
src/view/screens/Storybook/Shadows.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, useTheme} from '#/alf'
-1
src/view/screens/Storybook/Spacing.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, useTheme} from '#/alf'
-1
src/view/screens/Storybook/Theming.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a, useTheme} from '#/alf'
-1
src/view/screens/Storybook/Typography.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 4 3 import {atoms as a} from '#/alf'
+1 -1
src/view/shell/Composer.tsx
··· 1 - import React, {useEffect} from 'react' 1 + import {useEffect} from 'react' 2 2 import {Animated, Easing, StyleSheet, View} from 'react-native' 3 3 4 4 import {useAnimatedValue} from '#/lib/hooks/useAnimatedValue'
-1
src/view/shell/desktop/Feeds.tsx
··· 1 - import React from 'react' 2 1 import {StyleSheet, View} from 'react-native' 3 2 import {msg} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'
-1
src/view/shell/desktop/RightNav.tsx
··· 1 - import React from 'react' 2 1 import {StyleSheet, View} from 'react-native' 3 2 import {msg, Trans} from '@lingui/macro' 4 3 import {useLingui} from '@lingui/react'