Bluesky app fork with some witchin' additions 💫

run `yarn lint --fix` (#9013)

authored by samuel.fm and committed by GitHub 53e43a95 bb30b592

Changed files
+555 -433
src
alf
components
lib
locale
logger
screens
state
types
view
+1 -1
src/Splash.tsx
··· 15 15 withTiming, 16 16 } from 'react-native-reanimated' 17 17 import {useSafeAreaInsets} from 'react-native-safe-area-context' 18 - import Svg, {Path, SvgProps} from 'react-native-svg' 18 + import Svg, {Path, type SvgProps} from 'react-native-svg' 19 19 import {Image} from 'expo-image' 20 20 import * as SplashScreen from 'expo-splash-screen' 21 21
+1 -1
src/alf/themes.ts
··· 1 1 import {atoms} from '#/alf/atoms' 2 - import {Palette, Theme} from '#/alf/types' 2 + import {type Palette, type Theme} from '#/alf/types' 3 3 import { 4 4 BLUE_HUE, 5 5 defaultScale,
+1 -1
src/alf/types.ts
··· 1 - import {StyleProp, TextStyle, ViewStyle} from 'react-native' 1 + import {type StyleProp, type TextStyle, type ViewStyle} from 'react-native' 2 2 3 3 export type TextStyleProp = { 4 4 style?: StyleProp<TextStyle>
+1 -1
src/alf/util/themeSelector.ts
··· 1 - import {ThemeName} from '#/alf/types' 1 + import {type ThemeName} from '#/alf/types' 2 2 3 3 export function select<T>(name: ThemeName, options: Record<ThemeName, T>) { 4 4 switch (name) {
+2 -2
src/alf/util/useColorModeTheme.ts
··· 1 1 import React from 'react' 2 - import {ColorSchemeName, useColorScheme} from 'react-native' 2 + import {type ColorSchemeName, useColorScheme} from 'react-native' 3 3 4 4 import {isWeb} from '#/platform/detection' 5 5 import {useThemePrefs} from '#/state/shell' 6 6 import {dark, dim, light} from '#/alf/themes' 7 - import {ThemeName} from '#/alf/types' 7 + import {type ThemeName} from '#/alf/types' 8 8 9 9 export function useColorModeTheme(): ThemeName { 10 10 const theme = useThemeName()
+1 -1
src/alf/util/useGutters.ts
··· 1 1 import React from 'react' 2 2 3 - import {Breakpoint, useBreakpoints} from '#/alf/breakpoints' 3 + import {type Breakpoint, useBreakpoints} from '#/alf/breakpoints' 4 4 import * as tokens from '#/alf/tokens' 5 5 6 6 type Gutter = 'compact' | 'base' | 'wide' | 0
+1 -1
src/components/Dialog/utils.ts
··· 1 1 import React from 'react' 2 2 3 - import {DialogControlProps} from '#/components/Dialog/types' 3 + import {type DialogControlProps} from '#/components/Dialog/types' 4 4 5 5 export function useAutoOpen(control: DialogControlProps, showTimeout?: number) { 6 6 React.useEffect(() => {
+2 -2
src/components/Fill.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 2 + import type React from 'react' 3 3 4 - import {atoms as a, ViewStyleProp} from '#/alf' 4 + import {atoms as a, type ViewStyleProp} from '#/alf' 5 5 6 6 export function Fill({ 7 7 children,
+1 -1
src/components/GradientFill.tsx
··· 1 1 import {LinearGradient} from 'expo-linear-gradient' 2 2 3 - import {atoms as a, tokens, ViewStyleProp} from '#/alf' 3 + import {atoms as a, type tokens, type ViewStyleProp} from '#/alf' 4 4 5 5 export function GradientFill({ 6 6 gradient,
+4 -4
src/components/IconCircle.tsx
··· 3 3 import { 4 4 atoms as a, 5 5 flatten, 6 - TextStyleProp, 6 + type TextStyleProp, 7 7 useTheme, 8 - ViewStyleProp, 8 + type ViewStyleProp, 9 9 } from '#/alf' 10 - import {Props} from '#/components/icons/common' 11 - import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth' 10 + import {type Props} from '#/components/icons/common' 11 + import {type Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth' 12 12 13 13 export function IconCircle({ 14 14 icon: Icon,
+4 -4
src/components/LabelingServiceCard/index.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 - import {AppBskyLabelerDefs} from '@atproto/api' 2 + import {type AppBskyLabelerDefs} from '@atproto/api' 4 3 import {msg, Plural, Trans} from '@lingui/macro' 5 4 import {useLingui} from '@lingui/react' 5 + import type React from 'react' 6 6 7 7 import {getLabelingServiceTitle} from '#/lib/moderation' 8 8 import {sanitizeHandle} from '#/lib/strings/handles' 9 9 import {useLabelerInfoQuery} from '#/state/queries/labeler' 10 10 import {UserAvatar} from '#/view/com/util/UserAvatar' 11 - import {atoms as a, useTheme, ViewStyleProp} from '#/alf' 11 + import {atoms as a, useTheme, type ViewStyleProp} from '#/alf' 12 12 import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag' 13 - import {Link as InternalLink, LinkProps} from '#/components/Link' 13 + import {Link as InternalLink, type LinkProps} from '#/components/Link' 14 14 import {RichText} from '#/components/RichText' 15 15 import {Text} from '#/components/Typography' 16 16 import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '../icons/Chevron'
+1 -1
src/components/LikedByList.tsx
··· 1 1 import React from 'react' 2 - import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' 2 + import {type AppBskyFeedGetLikes as GetLikes} from '@atproto/api' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5
+2 -2
src/components/LinearGradientBackground.tsx
··· 1 - import React from 'react' 2 - import {StyleProp, ViewStyle} from 'react-native' 1 + import {type StyleProp, type ViewStyle} from 'react-native' 3 2 import {LinearGradient} from 'expo-linear-gradient' 3 + import type React from 'react' 4 4 5 5 import {gradients} from '#/alf/tokens' 6 6
+1 -1
src/components/Loader.tsx
··· 8 8 } from 'react-native-reanimated' 9 9 10 10 import {atoms as a, flatten, useTheme} from '#/alf' 11 - import {Props, useCommonSVGProps} from '#/components/icons/common' 11 + import {type Props, useCommonSVGProps} from '#/components/icons/common' 12 12 import {Loader_Stroke2_Corner0_Rounded as Icon} from '#/components/icons/Loader' 13 13 14 14 export function Loader(props: Props) {
+1 -1
src/components/Loader.web.tsx
··· 1 1 import {View} from 'react-native' 2 2 3 3 import {atoms as a, flatten, useTheme} from '#/alf' 4 - import {Props, useCommonSVGProps} from '#/components/icons/common' 4 + import {type Props, useCommonSVGProps} from '#/components/icons/common' 5 5 import {Loader_Stroke2_Corner0_Rounded as Icon} from '#/components/icons/Loader' 6 6 7 7 export function Loader(props: Props) {
+2 -2
src/components/MediaInsetBorder.tsx
··· 1 - import React from 'react' 1 + import type React from 'react' 2 2 3 - import {atoms as a, useTheme, ViewStyleProp} from '#/alf' 3 + import {atoms as a, useTheme, type ViewStyleProp} from '#/alf' 4 4 import {Fill} from '#/components/Fill' 5 5 6 6 /**
+8 -8
src/components/Menu/types.ts
··· 1 - import React from 'react' 2 1 import { 3 - AccessibilityProps, 4 - AccessibilityRole, 5 - GestureResponderEvent, 6 - PressableProps, 2 + type AccessibilityProps, 3 + type AccessibilityRole, 4 + type GestureResponderEvent, 5 + type PressableProps, 7 6 } from 'react-native' 7 + import type React from 'react' 8 8 9 - import {TextStyleProp, ViewStyleProp} from '#/alf' 10 - import * as Dialog from '#/components/Dialog' 11 - import {Props as SVGIconProps} from '#/components/icons/common' 9 + import {type TextStyleProp, type ViewStyleProp} from '#/alf' 10 + import type * as Dialog from '#/components/Dialog' 11 + import {type Props as SVGIconProps} from '#/components/icons/common' 12 12 13 13 export type ContextType = { 14 14 control: Dialog.DialogOuterProps['control']
+1 -1
src/components/NewskieDialog.tsx
··· 1 1 import React from 'react' 2 2 import {View} from 'react-native' 3 - import {AppBskyActorDefs, moderateProfile} from '@atproto/api' 3 + import {type AppBskyActorDefs, moderateProfile} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6 import {differenceInSeconds} from 'date-fns'
+2 -2
src/components/Pills.tsx
··· 1 1 import React from 'react' 2 2 import {View} from 'react-native' 3 - import {BSKY_LABELER_DID, ModerationCause} from '@atproto/api' 3 + import {BSKY_LABELER_DID, type ModerationCause} from '@atproto/api' 4 4 import {Trans} from '@lingui/macro' 5 5 6 6 import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' 7 7 import {UserAvatar} from '#/view/com/util/UserAvatar' 8 - import {atoms as a, useTheme, ViewStyleProp} from '#/alf' 8 + import {atoms as a, useTheme, type ViewStyleProp} from '#/alf' 9 9 import {Button} from '#/components/Button' 10 10 import { 11 11 ModerationDetailsDialog,
+1 -1
src/components/ProgressGuide/List.tsx
··· 1 - import {StyleProp, View, ViewStyle} from 'react-native' 1 + import {type StyleProp, View, type ViewStyle} from 'react-native' 2 2 import {msg, Trans} from '@lingui/macro' 3 3 import {useLingui} from '@lingui/react' 4 4
+2 -2
src/components/ReportDialog/SelectLabelerView.tsx
··· 1 1 import {View} from 'react-native' 2 - import {AppBskyLabelerDefs} from '@atproto/api' 2 + import {type AppBskyLabelerDefs} from '@atproto/api' 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 ··· 9 9 import {Divider} from '#/components/Divider' 10 10 import * as LabelingServiceCard from '#/components/LabelingServiceCard' 11 11 import {Text} from '#/components/Typography' 12 - import {ReportDialogProps} from './types' 12 + import {type ReportDialogProps} from './types' 13 13 14 14 export function SelectLabelerView({ 15 15 ...props
+6 -3
src/components/ReportDialog/SelectReportOptionView.tsx
··· 1 1 import React from 'react' 2 2 import {View} from 'react-native' 3 - import {AppBskyLabelerDefs} from '@atproto/api' 3 + import {type AppBskyLabelerDefs} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6 7 - import {ReportOption, useReportOptions} from '#/lib/moderation/useReportOptions' 7 + import { 8 + type ReportOption, 9 + useReportOptions, 10 + } from '#/lib/moderation/useReportOptions' 8 11 import {Link} from '#/components/Link' 9 12 import {DMCA_LINK} from '#/components/ReportDialog/const' 10 13 export {useDialogControl as useReportDialogControl} from '#/components/Dialog' ··· 23 26 } from '#/components/icons/Chevron' 24 27 import {SquareArrowTopRight_Stroke2_Corner0_Rounded as SquareArrowTopRight} from '#/components/icons/SquareArrowTopRight' 25 28 import {Text} from '#/components/Typography' 26 - import {ReportDialogProps} from './types' 29 + import {type ReportDialogProps} from './types' 27 30 28 31 export function SelectReportOptionView(props: { 29 32 params: ReportDialogProps['params']
+3 -3
src/components/ReportDialog/SubmitView.tsx
··· 1 1 import React from 'react' 2 2 import {View} from 'react-native' 3 - import {AppBskyLabelerDefs} from '@atproto/api' 3 + import {type AppBskyLabelerDefs} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6 7 7 import {getLabelingServiceTitle} from '#/lib/moderation' 8 - import {ReportOption} from '#/lib/moderation/useReportOptions' 8 + import {type ReportOption} from '#/lib/moderation/useReportOptions' 9 9 import {isAndroid} from '#/platform/detection' 10 10 import {useAgent} from '#/state/session' 11 11 import {CharProgress} from '#/view/com/composer/char-progress/CharProgress' ··· 19 19 import {PaperPlane_Stroke2_Corner0_Rounded as SendIcon} from '#/components/icons/PaperPlane' 20 20 import {Loader} from '#/components/Loader' 21 21 import {Text} from '#/components/Typography' 22 - import {ReportDialogProps} from './types' 22 + import {type ReportDialogProps} from './types' 23 23 24 24 export function SubmitView({ 25 25 params,
+4 -4
src/components/ReportDialog/index.tsx
··· 1 1 import React from 'react' 2 2 import {Pressable, View} from 'react-native' 3 - import {ScrollView} from 'react-native-gesture-handler' 3 + import {type ScrollView} from 'react-native-gesture-handler' 4 4 import {msg, Trans} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6 7 - import {ReportOption} from '#/lib/moderation/useReportOptions' 7 + import {type ReportOption} from '#/lib/moderation/useReportOptions' 8 8 import {useMyLabelersQuery} from '#/state/queries/preferences' 9 9 export {useDialogControl as useReportDialogControl} from '#/components/Dialog' 10 10 11 - import {AppBskyLabelerDefs} from '@atproto/api' 11 + import {type AppBskyLabelerDefs} from '@atproto/api' 12 12 13 13 import {atoms as a} from '#/alf' 14 14 import * as Dialog from '#/components/Dialog' ··· 18 18 import {SelectLabelerView} from './SelectLabelerView' 19 19 import {SelectReportOptionView} from './SelectReportOptionView' 20 20 import {SubmitView} from './SubmitView' 21 - import {ReportDialogProps} from './types' 21 + import {type ReportDialogProps} from './types' 22 22 23 23 export function ReportDialog(props: ReportDialogProps) { 24 24 return (
+1 -1
src/components/ReportDialog/types.ts
··· 1 - import * as Dialog from '#/components/Dialog' 1 + import type * as Dialog from '#/components/Dialog' 2 2 3 3 export type ReportDialogProps = { 4 4 control: Dialog.DialogOuterProps['control']
+2 -2
src/components/RichTextTag.tsx
··· 1 1 import React from 'react' 2 - import {StyleProp, Text as RNText, TextStyle} from 'react-native' 2 + import {type StyleProp, Text as RNText, type TextStyle} from 'react-native' 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 import {useNavigation} from '@react-navigation/native' 6 6 7 - import {NavigationProp} from '#/lib/routes/types' 7 + import {type NavigationProp} from '#/lib/routes/types' 8 8 import {isInvalidHandle} from '#/lib/strings/handles' 9 9 import {isNative, isWeb} from '#/platform/detection' 10 10 import {
+3 -3
src/components/StarterPack/Main/PostsList.tsx
··· 4 4 import {useLingui} from '@lingui/react' 5 5 6 6 import {isNative} from '#/platform/detection' 7 - import {FeedDescriptor} from '#/state/queries/post-feed' 7 + import {type FeedDescriptor} from '#/state/queries/post-feed' 8 8 import {PostFeed} from '#/view/com/posts/PostFeed' 9 9 import {EmptyState} from '#/view/com/util/EmptyState' 10 - import {ListRef} from '#/view/com/util/List' 11 - import {SectionRef} from '#/screens/Profile/Sections/types' 10 + import {type ListRef} from '#/view/com/util/List' 11 + import {type SectionRef} from '#/screens/Profile/Sections/types' 12 12 13 13 interface ProfilesListProps { 14 14 listUri: string
+10 -7
src/components/StarterPack/Main/ProfilesList.tsx
··· 1 1 import React, {useCallback} from 'react' 2 - import {ListRenderItemInfo, View} from 'react-native' 2 + import {type ListRenderItemInfo, View} from 'react-native' 3 3 import { 4 - AppBskyActorDefs, 5 - AppBskyGraphGetList, 4 + type AppBskyActorDefs, 5 + type AppBskyGraphGetList, 6 6 AtUri, 7 - ModerationOpts, 7 + type ModerationOpts, 8 8 } from '@atproto/api' 9 - import {InfiniteData, UseInfiniteQueryResult} from '@tanstack/react-query' 9 + import { 10 + type InfiniteData, 11 + type UseInfiniteQueryResult, 12 + } from '@tanstack/react-query' 10 13 11 14 import {useBottomBarOffset} from '#/lib/hooks/useBottomBarOffset' 12 15 import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' ··· 14 17 import {isNative, isWeb} from '#/platform/detection' 15 18 import {useAllListMembersQuery} from '#/state/queries/list-members' 16 19 import {useSession} from '#/state/session' 17 - import {List, ListRef} from '#/view/com/util/List' 18 - import {SectionRef} from '#/screens/Profile/Sections/types' 20 + import {List, type ListRef} from '#/view/com/util/List' 21 + import {type SectionRef} from '#/screens/Profile/Sections/types' 19 22 import {atoms as a, useTheme} from '#/alf' 20 23 import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' 21 24 import {Default as ProfileCard} from '#/components/ProfileCard'
+1 -1
src/components/StarterPack/QrCode.tsx
··· 3 3 // @ts-expect-error missing types 4 4 import QRCode from 'react-native-qrcode-styled' 5 5 import type ViewShot from 'react-native-view-shot' 6 - import {AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' 6 + import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' 7 7 import {Trans} from '@lingui/macro' 8 8 9 9 import {isWeb} from '#/platform/detection'
+2 -2
src/components/StarterPack/Wizard/ScreenTransition.tsx
··· 1 - import React from 'react' 2 - import {StyleProp, ViewStyle} from 'react-native' 1 + import {type StyleProp, type ViewStyle} from 'react-native' 3 2 import Animated, { 4 3 FadeIn, 5 4 FadeOut, 6 5 SlideInLeft, 7 6 SlideInRight, 8 7 } from 'react-native-reanimated' 8 + import type React from 'react' 9 9 10 10 import {isWeb} from '#/platform/detection' 11 11
+1 -1
src/components/SubtleWebHover.tsx
··· 1 - import {ViewStyleProp} from '#/alf' 1 + import {type ViewStyleProp} from '#/alf' 2 2 3 3 export function SubtleWebHover({}: ViewStyleProp & {hover: boolean}) { 4 4 return null
+4 -4
src/components/TrendingTopics.tsx
··· 1 1 import React from 'react' 2 2 import {View} from 'react-native' 3 - import {AtUri} from '@atproto/api' 3 + import {type AtUri} from '@atproto/api' 4 4 import {msg} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6 ··· 10 10 // import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag' 11 11 // import {CloseQuote_Filled_Stroke2_Corner0_Rounded as Quote} from '#/components/icons/Quote' 12 12 // import {UserAvatar} from '#/view/com/util/UserAvatar' 13 - import type {TrendingTopic} from '#/state/queries/trending/useTrendingTopics' 14 - import {atoms as a, native, useTheme, ViewStyleProp} from '#/alf' 13 + import {type TrendingTopic} from '#/state/queries/trending/useTrendingTopics' 14 + import {atoms as a, native, useTheme, type ViewStyleProp} from '#/alf' 15 15 import {StarterPack as StarterPackIcon} from '#/components/icons/StarterPack' 16 - import {Link as InternalLink, LinkProps} from '#/components/Link' 16 + import {Link as InternalLink, type LinkProps} from '#/components/Link' 17 17 import {Text} from '#/components/Typography' 18 18 19 19 export function TrendingTopic({
+4 -4
src/components/VideoPostCard.tsx
··· 3 3 import {Image} from 'expo-image' 4 4 import {LinearGradient} from 'expo-linear-gradient' 5 5 import { 6 - AppBskyActorDefs, 6 + type AppBskyActorDefs, 7 7 AppBskyEmbedVideo, 8 - AppBskyFeedDefs, 8 + type AppBskyFeedDefs, 9 9 AppBskyFeedPost, 10 - ModerationDecision, 10 + type ModerationDecision, 11 11 } from '@atproto/api' 12 12 import {msg} from '@lingui/macro' 13 13 import {useLingui} from '@lingui/react' ··· 15 15 import {sanitizeHandle} from '#/lib/strings/handles' 16 16 import {formatCount} from '#/view/com/util/numeric/format' 17 17 import {UserAvatar} from '#/view/com/util/UserAvatar' 18 - import {VideoFeedSourceContext} from '#/screens/VideoFeed/types' 18 + import {type VideoFeedSourceContext} from '#/screens/VideoFeed/types' 19 19 import {atoms as a, useTheme} from '#/alf' 20 20 import {BLUE_HUE} from '#/alf/util/colorGeneration' 21 21 import {select} from '#/alf/util/themeSelector'
+1 -1
src/components/anim/AnimatedCheck.tsx
··· 8 8 } from 'react-native-reanimated' 9 9 import Svg, {Circle, Path} from 'react-native-svg' 10 10 11 - import {Props, useCommonSVGProps} from '#/components/icons/common' 11 + import {type Props, useCommonSVGProps} from '#/components/icons/common' 12 12 13 13 const AnimatedPath = Animated.createAnimatedComponent(Path) 14 14 const AnimatedCircle = Animated.createAnimatedComponent(Circle)
+1 -1
src/components/dialogs/Embed.tsx
··· 1 1 import {memo, useEffect, useMemo, useState} from 'react' 2 2 import {View} from 'react-native' 3 - import {AppBskyActorDefs, AppBskyFeedPost, AtUri} from '@atproto/api' 3 + import {type AppBskyActorDefs, type AppBskyFeedPost, AtUri} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6
+2 -2
src/components/dialogs/MutedWords.tsx
··· 1 1 import React from 'react' 2 2 import {View} from 'react-native' 3 - import {AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api' 3 + import {type AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6 ··· 16 16 native, 17 17 useBreakpoints, 18 18 useTheme, 19 - ViewStyleProp, 19 + type ViewStyleProp, 20 20 web, 21 21 } from '#/alf' 22 22 import {Button, ButtonIcon, ButtonText} from '#/components/Button'
+2 -2
src/components/dms/BlockedByListDialog.tsx
··· 1 1 import React from 'react' 2 2 import {View} from 'react-native' 3 - import {ModerationCause} from '@atproto/api' 3 + import {type ModerationCause} from '@atproto/api' 4 4 import {msg} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6 7 7 import {listUriToHref} from '#/lib/strings/url-helpers' 8 8 import {atoms as a, useTheme} from '#/alf' 9 9 import * as Dialog from '#/components/Dialog' 10 - import {DialogControlProps} from '#/components/Dialog' 10 + import {type DialogControlProps} from '#/components/Dialog' 11 11 import {InlineLinkText} from '#/components/Link' 12 12 import * as Prompt from '#/components/Prompt' 13 13 import {Text} from '#/components/Typography'
+2 -2
src/components/dms/LeaveConvoPrompt.tsx
··· 2 2 import {useLingui} from '@lingui/react' 3 3 import {StackActions, useNavigation} from '@react-navigation/native' 4 4 5 - import {NavigationProp} from '#/lib/routes/types' 5 + import {type NavigationProp} from '#/lib/routes/types' 6 6 import {isNative} from '#/platform/detection' 7 7 import {useLeaveConvo} from '#/state/queries/messages/leave-conversation' 8 8 import * as Toast from '#/view/com/util/Toast' 9 - import {DialogOuterProps} from '#/components/Dialog' 9 + import {type DialogOuterProps} from '#/components/Dialog' 10 10 import * as Prompt from '#/components/Prompt' 11 11 12 12 export function LeaveConvoPrompt({
+2 -2
src/components/dms/MessagesListBlockedFooter.tsx
··· 1 1 import React from 'react' 2 2 import {View} from 'react-native' 3 - import {ModerationDecision} from '@atproto/api' 3 + import {type ModerationDecision} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6 ··· 14 14 import {LeaveConvoPrompt} from '#/components/dms/LeaveConvoPrompt' 15 15 import {ReportConversationPrompt} from '#/components/dms/ReportConversationPrompt' 16 16 import {Text} from '#/components/Typography' 17 - import * as bsky from '#/types/bsky' 17 + import type * as bsky from '#/types/bsky' 18 18 19 19 export function MessagesListBlockedFooter({ 20 20 recipient: initialRecipient,
+1 -1
src/components/dms/ReportConversationPrompt.tsx
··· 1 1 import {msg} from '@lingui/macro' 2 2 import {useLingui} from '@lingui/react' 3 3 4 - import {DialogControlProps} from '#/components/Dialog' 4 + import {type DialogControlProps} from '#/components/Dialog' 5 5 import * as Prompt from '#/components/Prompt' 6 6 7 7 export function ReportConversationPrompt({
+2 -2
src/components/feeds/PostFeedVideoGridRow.tsx
··· 2 2 import {AppBskyEmbedVideo} from '@atproto/api' 3 3 4 4 import {logEvent} from '#/lib/statsig/statsig' 5 - import {FeedPostSliceItem} from '#/state/queries/post-feed' 6 - import {VideoFeedSourceContext} from '#/screens/VideoFeed/types' 5 + import {type FeedPostSliceItem} from '#/state/queries/post-feed' 6 + import {type VideoFeedSourceContext} from '#/screens/VideoFeed/types' 7 7 import {atoms as a, useGutters} from '#/alf' 8 8 import * as Grid from '#/components/Grid' 9 9 import {
+2 -2
src/components/forms/DateField/index.web.tsx
··· 1 1 import React from 'react' 2 - import {StyleSheet, TextInput, TextInputProps} from 'react-native' 2 + import {StyleSheet, type TextInput, type TextInputProps} from 'react-native' 3 3 // @ts-expect-error untyped 4 4 import {unstable_createElement} from 'react-native-web' 5 5 6 - import {DateFieldProps} from '#/components/forms/DateField/types' 6 + import {type DateFieldProps} from '#/components/forms/DateField/types' 7 7 import {toSimpleDateString} from '#/components/forms/DateField/utils' 8 8 import * as TextField from '#/components/forms/TextField' 9 9 import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays'
+1 -1
src/components/forms/SearchInput.tsx
··· 1 1 import React from 'react' 2 - import {TextInput, View} from 'react-native' 2 + import {type TextInput, View} from 'react-native' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5
+3 -3
src/components/hooks/useFollowMethods.ts
··· 2 2 import {msg} from '@lingui/macro' 3 3 import {useLingui} from '@lingui/react' 4 4 5 - import {LogEvents} from '#/lib/statsig/statsig' 5 + import {type LogEvents} from '#/lib/statsig/statsig' 6 6 import {logger} from '#/logger' 7 - import {Shadow} from '#/state/cache/types' 7 + import {type Shadow} from '#/state/cache/types' 8 8 import {useProfileFollowMutationQueue} from '#/state/queries/profile' 9 9 import {useRequireAuth} from '#/state/session' 10 10 import * as Toast from '#/view/com/util/Toast' 11 - import * as bsky from '#/types/bsky' 11 + import type * as bsky from '#/types/bsky' 12 12 13 13 export function useFollowMethods({ 14 14 profile,
+1 -1
src/components/icons/TEMPLATE.tsx
··· 1 1 import React from 'react' 2 2 import Svg, {Path} from 'react-native-svg' 3 3 4 - import {Props, useCommonSVGProps} from '#/components/icons/common' 4 + import {type Props, useCommonSVGProps} from '#/components/icons/common' 5 5 6 6 export const IconTemplate_Stroke2_Corner0_Rounded = React.forwardRef( 7 7 function LogoImpl(props: Props, ref) {
+1 -1
src/components/intents/VerifyEmailIntentDialog.tsx
··· 8 8 import {atoms as a, useBreakpoints, useTheme} from '#/alf' 9 9 import {Button, ButtonIcon, ButtonText} from '#/components/Button' 10 10 import * as Dialog from '#/components/Dialog' 11 - import {DialogControlProps} from '#/components/Dialog' 11 + import {type DialogControlProps} from '#/components/Dialog' 12 12 import {Divider} from '#/components/Divider' 13 13 import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Resend} from '#/components/icons/ArrowRotateCounterClockwise' 14 14 import {useIntentDialogs} from '#/components/intents/IntentDialogs'
+8 -3
src/components/moderation/LabelsOnMe.tsx
··· 1 - import {StyleProp, View, ViewStyle} from 'react-native' 2 - import {AppBskyFeedDefs, ComAtprotoLabelDefs} from '@atproto/api' 1 + import {type StyleProp, View, type ViewStyle} from 'react-native' 2 + import {type AppBskyFeedDefs, type ComAtprotoLabelDefs} from '@atproto/api' 3 3 import {msg, Plural, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 6 6 import {useSession} from '#/state/session' 7 7 import {atoms as a} from '#/alf' 8 - import {Button, ButtonIcon, ButtonSize, ButtonText} from '#/components/Button' 8 + import { 9 + Button, 10 + ButtonIcon, 11 + type ButtonSize, 12 + ButtonText, 13 + } from '#/components/Button' 9 14 import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' 10 15 import { 11 16 LabelsOnMeDialog,
+1 -1
src/components/moderation/LabelsOnMeDialog.tsx
··· 1 1 import React from 'react' 2 2 import {View} from 'react-native' 3 - import {ComAtprotoLabelDefs, ComAtprotoModerationDefs} from '@atproto/api' 3 + import {type ComAtprotoLabelDefs, ComAtprotoModerationDefs} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6 import {useMutation} from '@tanstack/react-query'
+2 -2
src/components/moderation/ModerationDetailsDialog.tsx
··· 1 1 import {View} from 'react-native' 2 - import {ModerationCause} from '@atproto/api' 2 + import {type ModerationCause} from '@atproto/api' 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 ··· 12 12 import {atoms as a, useGutters, useTheme} from '#/alf' 13 13 import * as Dialog from '#/components/Dialog' 14 14 import {InlineLinkText} from '#/components/Link' 15 - import {AppModerationCause} from '#/components/Pills' 15 + import {type AppModerationCause} from '#/components/Pills' 16 16 import {Text} from '#/components/Typography' 17 17 18 18 export {useDialogControl as useModerationDetailsDialogControl} from '#/components/Dialog'
+2 -2
src/components/moderation/PostAlerts.tsx
··· 1 - import {StyleProp, ViewStyle} from 'react-native' 2 - import {ModerationCause, ModerationUI} from '@atproto/api' 1 + import {type StyleProp, type ViewStyle} from 'react-native' 2 + import {type ModerationCause, type ModerationUI} from '@atproto/api' 3 3 4 4 import {getModerationCauseKey, unique} from '#/lib/moderation' 5 5 import * as Pills from '#/components/Pills'
+2 -2
src/components/moderation/ProfileHeaderAlerts.tsx
··· 1 - import {StyleProp, ViewStyle} from 'react-native' 2 - import {ModerationDecision} from '@atproto/api' 1 + import {type StyleProp, type ViewStyle} from 'react-native' 2 + import {type ModerationDecision} from '@atproto/api' 3 3 4 4 import {getModerationCauseKey, unique} from '#/lib/moderation' 5 5 import * as Pills from '#/components/Pills'
+5 -5
src/components/moderation/ReportDialog/action.ts
··· 1 1 import { 2 - $Typed, 3 - ChatBskyConvoDefs, 4 - ComAtprotoModerationCreateReport, 2 + type $Typed, 3 + type ChatBskyConvoDefs, 4 + type ComAtprotoModerationCreateReport, 5 5 } from '@atproto/api' 6 6 import {msg} from '@lingui/macro' 7 7 import {useLingui} from '@lingui/react' ··· 9 9 10 10 import {logger} from '#/logger' 11 11 import {useAgent} from '#/state/session' 12 - import {ReportState} from './state' 13 - import {ParsedReportSubject} from './types' 12 + import {type ReportState} from './state' 13 + import {type ParsedReportSubject} from './types' 14 14 15 15 export function useSubmitReportMutation() { 16 16 const {_} = useLingui()
+1 -1
src/components/moderation/ReportDialog/copy.ts
··· 2 2 import {msg} from '@lingui/macro' 3 3 import {useLingui} from '@lingui/react' 4 4 5 - import {ParsedReportSubject} from './types' 5 + import {type ParsedReportSubject} from './types' 6 6 7 7 export function useCopyForSubject(subject: ParsedReportSubject) { 8 8 const {_} = useLingui()
+2 -2
src/components/moderation/ReportDialog/state.ts
··· 1 - import {AppBskyLabelerDefs, ComAtprotoModerationDefs} from '@atproto/api' 1 + import {type AppBskyLabelerDefs, ComAtprotoModerationDefs} from '@atproto/api' 2 2 3 - import {ReportOption} from './utils/useReportOptions' 3 + import {type ReportOption} from './utils/useReportOptions' 4 4 5 5 export type ReportState = { 6 6 selectedOption?: ReportOption
+6 -6
src/components/moderation/ReportDialog/types.ts
··· 1 1 import { 2 - $Typed, 3 - AppBskyActorDefs, 4 - AppBskyFeedDefs, 5 - AppBskyGraphDefs, 6 - ChatBskyConvoDefs, 2 + type $Typed, 3 + type AppBskyActorDefs, 4 + type AppBskyFeedDefs, 5 + type AppBskyGraphDefs, 6 + type ChatBskyConvoDefs, 7 7 } from '@atproto/api' 8 8 9 - import * as Dialog from '#/components/Dialog' 9 + import type * as Dialog from '#/components/Dialog' 10 10 11 11 export type ReportSubject = 12 12 | $Typed<AppBskyActorDefs.ProfileViewBasic>
+2 -2
src/components/moderation/ReportDialog/utils/parseReportSubject.ts
··· 6 6 } from '@atproto/api' 7 7 8 8 import { 9 - ParsedReportSubject, 10 - ReportSubject, 9 + type ParsedReportSubject, 10 + type ReportSubject, 11 11 } from '#/components/moderation/ReportDialog/types' 12 12 import * as bsky from '#/types/bsky' 13 13
+4 -4
src/components/moderation/ScreenHider.tsx
··· 1 1 import React from 'react' 2 2 import { 3 - StyleProp, 3 + type StyleProp, 4 4 TouchableWithoutFeedback, 5 5 View, 6 - ViewStyle, 6 + type ViewStyle, 7 7 } from 'react-native' 8 - import {ModerationUI} from '@atproto/api' 8 + import {type ModerationUI} from '@atproto/api' 9 9 import {msg, Trans} from '@lingui/macro' 10 10 import {useLingui} from '@lingui/react' 11 11 import {useNavigation} from '@react-navigation/native' 12 12 13 13 import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' 14 14 import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' 15 - import {NavigationProp} from '#/lib/routes/types' 15 + import {type NavigationProp} from '#/lib/routes/types' 16 16 import {CenteredView} from '#/view/com/util/Views' 17 17 import {atoms as a, useTheme, web} from '#/alf' 18 18 import {Button, ButtonText} from '#/components/Button'
+3 -3
src/lib/api/feed/custom.ts
··· 1 1 import { 2 - AppBskyFeedDefs, 3 - AppBskyFeedGetFeed as GetCustomFeed, 2 + type AppBskyFeedDefs, 3 + type AppBskyFeedGetFeed as GetCustomFeed, 4 4 BskyAgent, 5 5 jsonStringToLex, 6 6 } from '@atproto/api' ··· 9 9 getAppLanguageAsContentLanguage, 10 10 getContentLanguages, 11 11 } from '#/state/preferences/languages' 12 - import {FeedAPI, FeedAPIResponse} from './types' 12 + import {type FeedAPI, type FeedAPIResponse} from './types' 13 13 import {createBskyTopicsHeader, isBlueskyOwnedFeed} from './utils' 14 14 15 15 export class CustomFeedAPI implements FeedAPI {
+2 -2
src/lib/api/feed/following.ts
··· 1 - import {AppBskyFeedDefs, BskyAgent} from '@atproto/api' 1 + import {type AppBskyFeedDefs, type BskyAgent} from '@atproto/api' 2 2 3 - import {FeedAPI, FeedAPIResponse} from './types' 3 + import {type FeedAPI, type FeedAPIResponse} from './types' 4 4 5 5 export class FollowingFeedAPI implements FeedAPI { 6 6 agent: BskyAgent
+4 -4
src/lib/api/feed/likes.ts
··· 1 1 import { 2 - AppBskyFeedDefs, 3 - AppBskyFeedGetActorLikes as GetActorLikes, 4 - BskyAgent, 2 + type AppBskyFeedDefs, 3 + type AppBskyFeedGetActorLikes as GetActorLikes, 4 + type BskyAgent, 5 5 } from '@atproto/api' 6 6 7 - import {FeedAPI, FeedAPIResponse} from './types' 7 + import {type FeedAPI, type FeedAPIResponse} from './types' 8 8 9 9 export class LikesFeedAPI implements FeedAPI { 10 10 agent: BskyAgent
+12 -4
src/lib/api/feed/merge.ts
··· 1 - import {AppBskyFeedDefs, AppBskyFeedGetTimeline, BskyAgent} from '@atproto/api' 1 + import { 2 + type AppBskyFeedDefs, 3 + type AppBskyFeedGetTimeline, 4 + type BskyAgent, 5 + } from '@atproto/api' 2 6 import shuffle from 'lodash.shuffle' 3 7 4 8 import {bundleAsync} from '#/lib/async/bundle' 5 9 import {timeout} from '#/lib/async/timeout' 6 10 import {feedUriToHref} from '#/lib/strings/url-helpers' 7 11 import {getContentLanguages} from '#/state/preferences/languages' 8 - import {FeedParams} from '#/state/queries/post-feed' 12 + import {type FeedParams} from '#/state/queries/post-feed' 9 13 import {FeedTuner} from '../feed-manip' 10 - import {FeedTunerFn} from '../feed-manip' 11 - import {FeedAPI, FeedAPIResponse, ReasonFeedSource} from './types' 14 + import {type FeedTunerFn} from '../feed-manip' 15 + import { 16 + type FeedAPI, 17 + type FeedAPIResponse, 18 + type ReasonFeedSource, 19 + } from './types' 12 20 import {createBskyTopicsHeader, isBlueskyOwnedFeed} from './utils' 13 21 14 22 const REQUEST_WAIT_MS = 500 // 500ms
+1 -1
src/lib/api/feed/types.ts
··· 1 - import {AppBskyFeedDefs} from '@atproto/api' 1 + import {type AppBskyFeedDefs} from '@atproto/api' 2 2 3 3 export interface FeedAPIResponse { 4 4 cursor?: string
+1 -1
src/lib/api/feed/utils.ts
··· 2 2 3 3 import {BSKY_FEED_OWNER_DIDS} from '#/lib/constants' 4 4 import {isWeb} from '#/platform/detection' 5 - import {UsePreferencesQueryResponse} from '#/state/queries/preferences' 5 + import {type UsePreferencesQueryResponse} from '#/state/queries/preferences' 6 6 7 7 let debugTopics = '' 8 8 if (isWeb && typeof window !== 'undefined') {
+1 -1
src/lib/api/upload-blob.ts
··· 1 1 import {copyAsync} from 'expo-file-system' 2 - import {BskyAgent, ComAtprotoRepoUploadBlob} from '@atproto/api' 2 + import {type BskyAgent, type ComAtprotoRepoUploadBlob} from '@atproto/api' 3 3 4 4 import {safeDeleteAsync} from '#/lib/media/manip' 5 5
+1 -1
src/lib/api/upload-blob.web.ts
··· 1 - import {BskyAgent, ComAtprotoRepoUploadBlob} from '@atproto/api' 1 + import {type BskyAgent, type ComAtprotoRepoUploadBlob} from '@atproto/api' 2 2 3 3 /** 4 4 * @note It is recommended, on web, to use the `file` instance of the file
+1 -1
src/lib/assets.native.ts
··· 1 - import {ImageRequireSource} from 'react-native' 1 + import {type ImageRequireSource} from 'react-native' 2 2 3 3 export const DEF_AVATAR: ImageRequireSource = require('../../assets/default-avatar.png') 4 4 export const CLOUD_SPLASH: ImageRequireSource = require('../../assets/splash.png')
+1 -1
src/lib/assets.ts
··· 1 - import {ImageRequireSource} from 'react-native' 1 + import {type ImageRequireSource} from 'react-native' 2 2 3 3 // @ts-ignore we need to pretend -prf 4 4 export const DEF_AVATAR: ImageRequireSource = {uri: '/img/default-avatar.png'}
+1 -1
src/lib/custom-animations/GestureActionView.web.tsx
··· 1 - import React from 'react' 1 + import type React from 'react' 2 2 3 3 export function GestureActionView({children}: {children: React.ReactNode}) { 4 4 return children
+6 -1
src/lib/custom-animations/PressableScale.tsx
··· 1 - import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' 1 + import { 2 + Pressable, 3 + type PressableProps, 4 + type StyleProp, 5 + type ViewStyle, 6 + } from 'react-native' 2 7 import Animated, { 3 8 cancelAnimation, 4 9 useAnimatedStyle,
+2 -2
src/lib/hooks/useAccountSwitcher.ts
··· 4 4 5 5 import {logger} from '#/logger' 6 6 import {isWeb} from '#/platform/detection' 7 - import {SessionAccount, useSessionApi} from '#/state/session' 7 + import {type SessionAccount, useSessionApi} from '#/state/session' 8 8 import {useLoggedOutViewControls} from '#/state/shell/logged-out' 9 9 import * as Toast from '#/view/com/util/Toast' 10 10 import {logEvent} from '../statsig/statsig' 11 - import {LogEvents} from '../statsig/statsig' 11 + import {type LogEvents} from '../statsig/statsig' 12 12 13 13 export function useAccountSwitcher() { 14 14 const [pendingDid, setPendingDid] = useState<string | null>(null)
+1 -1
src/lib/hooks/useGoBack.ts
··· 1 1 import {StackActions, useNavigation} from '@react-navigation/native' 2 2 3 - import {NavigationProp} from '#/lib/routes/types' 3 + import {type NavigationProp} from '#/lib/routes/types' 4 4 import {router} from '#/routes' 5 5 6 6 export function useGoBack(onGoBack?: () => unknown) {
+1 -1
src/lib/hooks/useSetTitle.ts
··· 1 1 import {useEffect} from 'react' 2 2 import {useNavigation} from '@react-navigation/native' 3 3 4 - import {NavigationProp} from '#/lib/routes/types' 4 + import {type NavigationProp} from '#/lib/routes/types' 5 5 import {bskyTitle} from '#/lib/strings/headings' 6 6 import {useUnreadNotifications} from '#/state/queries/notifications/unread' 7 7
+1 -1
src/lib/hooks/useTimeAgo.ts
··· 1 1 import {useCallback} from 'react' 2 - import {I18n} from '@lingui/core' 2 + import {type I18n} from '@lingui/core' 3 3 import {defineMessage, msg, plural} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 import {differenceInSeconds} from 'date-fns'
+1 -1
src/lib/hooks/useWebScrollRestoration.ts
··· 1 1 import {useEffect, useMemo, useState} from 'react' 2 - import {EventArg, useNavigation} from '@react-navigation/core' 2 + import {type EventArg, useNavigation} from '@react-navigation/core' 3 3 4 4 if ('scrollRestoration' in history) { 5 5 // Tell the brower not to mess with the scroll.
+2 -2
src/lib/media/video/compress.web.ts
··· 1 - import {ImagePickerAsset} from 'expo-image-picker' 1 + import {type ImagePickerAsset} from 'expo-image-picker' 2 2 3 3 import {VIDEO_MAX_SIZE} from '#/lib/constants' 4 4 import {VideoTooLargeError} from '#/lib/media/video/errors' 5 - import {CompressedVideo} from './types' 5 + import {type CompressedVideo} from './types' 6 6 7 7 // doesn't actually compress, converts to ArrayBuffer 8 8 export async function compressVideo(
+2 -2
src/lib/media/video/upload.shared.ts
··· 1 - import {BskyAgent} from '@atproto/api' 2 - import {I18n} from '@lingui/core' 1 + import {type BskyAgent} from '@atproto/api' 2 + import {type I18n} from '@lingui/core' 3 3 import {msg} from '@lingui/macro' 4 4 5 5 import {VIDEO_SERVICE_DID} from '#/lib/constants'
+3 -3
src/lib/media/video/upload.ts
··· 1 1 import {createUploadTask, FileSystemUploadType} from 'expo-file-system' 2 - import {AppBskyVideoDefs, BskyAgent} from '@atproto/api' 3 - import {I18n} from '@lingui/core' 2 + import {type AppBskyVideoDefs, type BskyAgent} from '@atproto/api' 3 + import {type I18n} from '@lingui/core' 4 4 import {msg} from '@lingui/macro' 5 5 import {nanoid} from 'nanoid/non-secure' 6 6 7 7 import {AbortError} from '#/lib/async/cancelable' 8 8 import {ServerError} from '#/lib/media/video/errors' 9 - import {CompressedVideo} from '#/lib/media/video/types' 9 + import {type CompressedVideo} from '#/lib/media/video/types' 10 10 import {getServiceAuthToken, getVideoUploadLimits} from './upload.shared' 11 11 import {createVideoEndpointUrl, mimeToExt} from './util' 12 12
+4 -4
src/lib/media/video/upload.web.ts
··· 1 - import {AppBskyVideoDefs} from '@atproto/api' 2 - import {BskyAgent} from '@atproto/api' 3 - import {I18n} from '@lingui/core' 1 + import {type AppBskyVideoDefs} from '@atproto/api' 2 + import {type BskyAgent} from '@atproto/api' 3 + import {type I18n} from '@lingui/core' 4 4 import {msg} from '@lingui/macro' 5 5 import {nanoid} from 'nanoid/non-secure' 6 6 7 7 import {AbortError} from '#/lib/async/cancelable' 8 8 import {ServerError} from '#/lib/media/video/errors' 9 - import {CompressedVideo} from '#/lib/media/video/types' 9 + import {type CompressedVideo} from '#/lib/media/video/types' 10 10 import {getServiceAuthToken, getVideoUploadLimits} from './upload.shared' 11 11 import {createVideoEndpointUrl, mimeToExt} from './util' 12 12
+1 -1
src/lib/media/video/util.ts
··· 1 1 import {AtpAgent} from '@atproto/api' 2 2 3 - import {SupportedMimeTypes, VIDEO_SERVICE} from '#/lib/constants' 3 + import {type SupportedMimeTypes, VIDEO_SERVICE} from '#/lib/constants' 4 4 5 5 export const createVideoEndpointUrl = ( 6 6 route: string,
+1 -1
src/lib/moderation/blocked-and-muted.ts
··· 1 - import * as bsky from '#/types/bsky' 1 + import type * as bsky from '#/types/bsky' 2 2 3 3 export function isBlockedOrBlocking(profile: bsky.profile.AnyProfileView) { 4 4 return profile.viewer?.blockedBy || profile.viewer?.blocking
+4 -1
src/lib/moderation/useLabelBehaviorDescription.ts
··· 1 - import {InterpretedLabelValueDefinition, LabelPreference} from '@atproto/api' 1 + import { 2 + type InterpretedLabelValueDefinition, 3 + type LabelPreference, 4 + } from '@atproto/api' 2 5 import {msg} from '@lingui/macro' 3 6 import {useLingui} from '@lingui/react' 4 7
+4 -4
src/lib/moderation/useLabelInfo.ts
··· 1 1 import { 2 - AppBskyLabelerDefs, 3 - ComAtprotoLabelDefs, 4 - InterpretedLabelValueDefinition, 2 + type AppBskyLabelerDefs, 3 + type ComAtprotoLabelDefs, 4 + type InterpretedLabelValueDefinition, 5 5 interpretLabelValueDefinition, 6 6 LABELS, 7 7 } from '@atproto/api' ··· 9 9 import * as bcp47Match from 'bcp-47-match' 10 10 11 11 import { 12 - GlobalLabelStrings, 12 + type GlobalLabelStrings, 13 13 useGlobalLabelStrings, 14 14 } from '#/lib/moderation/useGlobalLabelStrings' 15 15 import {useLabelDefinitions} from '#/state/preferences'
+4 -3
src/lib/react-query.tsx
··· 1 - import React, {useRef, useState} from 'react' 2 - import {AppState, AppStateStatus} from 'react-native' 1 + import {useRef, useState} from 'react' 2 + import {AppState, type AppStateStatus} from 'react-native' 3 3 import AsyncStorage from '@react-native-async-storage/async-storage' 4 4 import {createAsyncStoragePersister} from '@tanstack/query-async-storage-persister' 5 5 import {focusManager, onlineManager, QueryClient} from '@tanstack/react-query' 6 6 import { 7 7 PersistQueryClientProvider, 8 - PersistQueryClientProviderProps, 8 + type PersistQueryClientProviderProps, 9 9 } from '@tanstack/react-query-persist-client' 10 + import type React from 'react' 10 11 11 12 import {isNative} from '#/platform/detection' 12 13 import {listenNetworkConfirmed, listenNetworkLost} from '#/state/events'
+2 -2
src/lib/routes/helpers.ts
··· 1 - import {NavigationProp} from '@react-navigation/native' 1 + import {type NavigationProp} from '@react-navigation/native' 2 2 3 - import {RouteParams, State} from './types' 3 + import {type RouteParams, type State} from './types' 4 4 5 5 export function getRootNavigation<T extends {}>( 6 6 nav: NavigationProp<T>,
+1 -1
src/lib/strings/display-names.ts
··· 1 - import {ModerationUI} from '@atproto/api' 1 + import {type ModerationUI} from '@atproto/api' 2 2 3 3 // \u2705 = ✅ 4 4 // \u2713 = ✓
+1 -1
src/lib/strings/rich-text-helpers.ts
··· 1 - import {AppBskyRichtextFacet, RichText} from '@atproto/api' 1 + import {AppBskyRichtextFacet, type RichText} from '@atproto/api' 2 2 3 3 import {linkRequiresWarning} from './url-helpers' 4 4
+1 -1
src/lib/strings/rich-text-manip.ts
··· 1 - import {AppBskyRichtextFacet, RichText, UnicodeString} from '@atproto/api' 1 + import {AppBskyRichtextFacet, type RichText, UnicodeString} from '@atproto/api' 2 2 3 3 import {toShortUrl} from './url-helpers' 4 4
+1 -1
src/lib/strings/time.ts
··· 1 - import {I18n} from '@lingui/core' 1 + import {type I18n} from '@lingui/core' 2 2 3 3 export function niceDate(i18n: I18n, date: number | string | Date) { 4 4 const d = new Date(date)
+1 -1
src/lib/themes.ts
··· 4 4 import {darkPalette, dimPalette, lightPalette} from '#/alf/themes' 5 5 import {fontWeight} from '#/alf/tokens' 6 6 import {colors} from './styles' 7 - import type {Theme} from './ThemeContext' 7 + import {type Theme} from './ThemeContext' 8 8 9 9 export const defaultTheme: Theme = { 10 10 colorScheme: 'light',
+1 -1
src/locale/deviceLocales.ts
··· 1 - import {getLocales as defaultGetLocales, Locale} from 'expo-localization' 1 + import {getLocales as defaultGetLocales, type Locale} from 'expo-localization' 2 2 3 3 import {dedupArray} from '#/lib/functions' 4 4
+1 -1
src/locale/i18nProvider.tsx
··· 1 - import React from 'react' 2 1 import {i18n} from '@lingui/core' 3 2 import {I18nProvider as DefaultI18nProvider} from '@lingui/react' 3 + import type React from 'react' 4 4 5 5 import {useLocaleLanguage} from './i18n' 6 6
+1 -1
src/logger/__tests__/logDump.test.ts
··· 1 1 import {expect, test} from '@jest/globals' 2 2 3 - import {add, ConsoleTransportEntry, getEntries} from '#/logger/logDump' 3 + import {add, type ConsoleTransportEntry, getEntries} from '#/logger/logDump' 4 4 import {LogContext, LogLevel} from '#/logger/types' 5 5 6 6 test('works', () => {
+1 -1
src/logger/logDump.ts
··· 1 - import type {LogContext, LogLevel, Metadata} from '#/logger/types' 1 + import {type LogContext, type LogLevel, type Metadata} from '#/logger/types' 2 2 3 3 export type ConsoleTransportEntry = { 4 4 id: string
+1 -1
src/logger/transports/bitdrift.ts
··· 1 1 import {debug, error, info, warn} from '#/logger/bitdrift/lib' 2 - import {LogLevel, Transport} from '#/logger/types' 2 + import {LogLevel, type Transport} from '#/logger/types' 3 3 import {prepareMetadata} from '#/logger/util' 4 4 5 5 const logFunctions = {
+1 -1
src/logger/transports/console.ts
··· 1 1 import format from 'date-fns/format' 2 2 3 - import {LogLevel, Transport} from '#/logger/types' 3 + import {LogLevel, type Transport} from '#/logger/types' 4 4 import {prepareMetadata} from '#/logger/util' 5 5 import {isWeb} from '#/platform/detection' 6 6
+1 -1
src/logger/util.ts
··· 1 - import {LogLevel, Metadata, Serializable} from '#/logger/types' 1 + import {LogLevel, type Metadata, type Serializable} from '#/logger/types' 2 2 3 3 export const enabledLogLevels: { 4 4 [key in LogLevel]: LogLevel[]
+1 -1
src/screens/Home/NoFeedsPinned.tsx
··· 6 6 7 7 import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants' 8 8 import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences' 9 - import {UsePreferencesQueryResponse} from '#/state/queries/preferences' 9 + import {type UsePreferencesQueryResponse} from '#/state/queries/preferences' 10 10 import {CenteredView} from '#/view/com/util/Views' 11 11 import {atoms as a} from '#/alf' 12 12 import {Button, ButtonIcon, ButtonText} from '#/components/Button'
+1 -1
src/screens/List/ListHiddenScreen.tsx
··· 11 11 import {RQKEY_ROOT as listQueryRoot} from '#/state/queries/list' 12 12 import {useListBlockMutation, useListMuteMutation} from '#/state/queries/list' 13 13 import { 14 - UsePreferencesQueryResponse, 14 + type UsePreferencesQueryResponse, 15 15 useRemoveFeedMutation, 16 16 } from '#/state/queries/preferences' 17 17 import {useSession} from '#/state/session'
+1 -1
src/screens/Login/ChooseAccountForm.tsx
··· 5 5 6 6 import {logEvent} from '#/lib/statsig/statsig' 7 7 import {logger} from '#/logger' 8 - import {SessionAccount, useSession, useSessionApi} from '#/state/session' 8 + import {type SessionAccount, useSession, useSessionApi} from '#/state/session' 9 9 import {useLoggedOutViewControls} from '#/state/shell/logged-out' 10 10 import * as Toast from '#/view/com/util/Toast' 11 11 import {atoms as a} from '#/alf'
+1 -1
src/screens/Login/FormContainer.tsx
··· 1 - import React from 'react' 2 1 import {type StyleProp, View, type ViewStyle} from 'react-native' 2 + import type React from 'react' 3 3 4 4 import {atoms as a, useBreakpoints, useTheme} from '#/alf' 5 5 import {Text} from '#/components/Typography'
+2 -2
src/screens/Login/ScreenTransition.tsx
··· 1 - import React from 'react' 2 - import {StyleProp, ViewStyle} from 'react-native' 1 + import {type StyleProp, type ViewStyle} from 'react-native' 3 2 import Animated, {FadeInRight, FadeOutLeft} from 'react-native-reanimated' 3 + import type React from 'react' 4 4 5 5 export function ScreenTransition({ 6 6 style,
+1 -1
src/screens/Messages/components/ChatStatusInfo.tsx
··· 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 6 - import {ActiveConvoStates} from '#/state/messages/convo' 6 + import {type ActiveConvoStates} from '#/state/messages/convo' 7 7 import {useModerationOpts} from '#/state/preferences/moderation-opts' 8 8 import {useSession} from '#/state/session' 9 9 import {atoms as a, useTheme} from '#/alf'
+5 -2
src/screens/Messages/components/MessageInputEmbed.tsx
··· 9 9 } from '@atproto/api' 10 10 import {msg} from '@lingui/macro' 11 11 import {useLingui} from '@lingui/react' 12 - import {RouteProp, useNavigation, useRoute} from '@react-navigation/native' 12 + import {type RouteProp, useNavigation, useRoute} from '@react-navigation/native' 13 13 14 14 import {makeProfileLink} from '#/lib/routes/links' 15 - import {CommonNavigatorParams, NavigationProp} from '#/lib/routes/types' 15 + import { 16 + type CommonNavigatorParams, 17 + type NavigationProp, 18 + } from '#/lib/routes/types' 16 19 import { 17 20 convertBskyAppUrlIfNeeded, 18 21 isBskyPostUrl,
+1 -1
src/screens/Messages/components/MessageListError.tsx
··· 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 6 - import {ConvoItem, ConvoItemError} from '#/state/messages/convo/types' 6 + import {type ConvoItem, ConvoItemError} from '#/state/messages/convo/types' 7 7 import {atoms as a, useTheme} from '#/alf' 8 8 import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' 9 9 import {InlineLinkText} from '#/components/Link'
+1 -1
src/screens/ModerationInteractionSettings/index.tsx
··· 9 9 import {createPostgateRecord} from '#/state/queries/postgate/util' 10 10 import { 11 11 usePreferencesQuery, 12 - UsePreferencesQueryResponse, 12 + type UsePreferencesQueryResponse, 13 13 } from '#/state/queries/preferences' 14 14 import { 15 15 threadgateAllowUISettingToAllowRecordValue,
+1 -1
src/screens/Onboarding/StepInterests/InterestButton.tsx
··· 1 1 import React from 'react' 2 - import {TextStyle, View, ViewStyle} from 'react-native' 2 + import {type TextStyle, View, type ViewStyle} from 'react-native' 3 3 4 4 import {capitalize} from '#/lib/strings/capitalize' 5 5 import {useInterestsDisplayNames} from '#/screens/Onboarding/state'
+1 -1
src/screens/Onboarding/StepProfile/AvatarCreatorCircle.tsx
··· 1 1 import React from 'react' 2 2 import {View} from 'react-native' 3 3 4 - import {Avatar} from '#/screens/Onboarding/StepProfile/index' 4 + import {type Avatar} from '#/screens/Onboarding/StepProfile/index' 5 5 import {atoms as a, useTheme} from '#/alf' 6 6 7 7 export function AvatarCreatorCircle({
+3 -3
src/screens/Onboarding/StepProfile/AvatarCreatorItems.tsx
··· 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 6 - import {Avatar} from '#/screens/Onboarding/StepProfile/index' 6 + import {type Avatar} from '#/screens/Onboarding/StepProfile/index' 7 7 import { 8 - AvatarColor, 8 + type AvatarColor, 9 9 avatarColors, 10 10 emojiItems, 11 - EmojiName, 11 + type EmojiName, 12 12 emojiNames, 13 13 } from '#/screens/Onboarding/StepProfile/types' 14 14 import {atoms as a, useTheme} from '#/alf'
+4 -1
src/screens/Post/PostLikedBy.tsx
··· 2 2 import {Plural, Trans} from '@lingui/macro' 3 3 import {useFocusEffect} from '@react-navigation/native' 4 4 5 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 5 + import { 6 + type CommonNavigatorParams, 7 + type NativeStackScreenProps, 8 + } from '#/lib/routes/types' 6 9 import {makeRecordUri} from '#/lib/strings/url-helpers' 7 10 import {usePostThreadQuery} from '#/state/queries/post-thread' 8 11 import {useSetMinimalShellMode} from '#/state/shell'
+4 -1
src/screens/Post/PostQuotes.tsx
··· 2 2 import {Plural, Trans} from '@lingui/macro' 3 3 import {useFocusEffect} from '@react-navigation/native' 4 4 5 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 5 + import { 6 + type CommonNavigatorParams, 7 + type NativeStackScreenProps, 8 + } from '#/lib/routes/types' 6 9 import {makeRecordUri} from '#/lib/strings/url-helpers' 7 10 import {usePostThreadQuery} from '#/state/queries/post-thread' 8 11 import {useSetMinimalShellMode} from '#/state/shell'
+4 -1
src/screens/Post/PostRepostedBy.tsx
··· 2 2 import {Plural, Trans} from '@lingui/macro' 3 3 import {useFocusEffect} from '@react-navigation/native' 4 4 5 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 5 + import { 6 + type CommonNavigatorParams, 7 + type NativeStackScreenProps, 8 + } from '#/lib/routes/types' 6 9 import {makeRecordUri} from '#/lib/strings/url-helpers' 7 10 import {usePostThreadQuery} from '#/state/queries/post-thread' 8 11 import {useSetMinimalShellMode} from '#/state/shell'
+1 -1
src/screens/Profile/ErrorState.tsx
··· 4 4 import {useLingui} from '@lingui/react' 5 5 import {useNavigation} from '@react-navigation/native' 6 6 7 - import {NavigationProp} from '#/lib/routes/types' 7 + import {type NavigationProp} from '#/lib/routes/types' 8 8 import {atoms as a, useTheme} from '#/alf' 9 9 import {Button, ButtonText} from '#/components/Button' 10 10 import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo'
+2 -2
src/screens/Profile/Header/DisplayName.tsx
··· 1 1 import {View} from 'react-native' 2 - import {AppBskyActorDefs, ModerationDecision} from '@atproto/api' 2 + import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api' 3 3 4 4 import {sanitizeDisplayName} from '#/lib/strings/display-names' 5 5 import {sanitizeHandle} from '#/lib/strings/handles' 6 - import {Shadow} from '#/state/cache/types' 6 + import {type Shadow} from '#/state/cache/types' 7 7 import {atoms as a, useBreakpoints, useTheme} from '#/alf' 8 8 import {Text} from '#/components/Typography' 9 9
+3 -3
src/screens/Profile/Header/GrowableAvatar.tsx
··· 1 - import React from 'react' 2 - import {StyleProp, View, ViewStyle} from 'react-native' 1 + import {type StyleProp, View, type ViewStyle} from 'react-native' 3 2 import Animated, { 4 3 Extrapolation, 5 4 interpolate, 6 - SharedValue, 5 + type SharedValue, 7 6 useAnimatedStyle, 8 7 } from 'react-native-reanimated' 8 + import type React from 'react' 9 9 10 10 import {isIOS} from '#/platform/detection' 11 11 import {usePagerHeaderContext} from '#/view/com/pager/PagerHeaderContext'
+3 -2
src/screens/Profile/Header/GrowableBanner.tsx
··· 1 - import React, {useEffect, useState} from 'react' 1 + import {useEffect, useState} from 'react' 2 2 import {View} from 'react-native' 3 3 import {ActivityIndicator} from 'react-native' 4 4 import Animated, { 5 5 Extrapolation, 6 6 interpolate, 7 7 runOnJS, 8 - SharedValue, 8 + type SharedValue, 9 9 useAnimatedProps, 10 10 useAnimatedReaction, 11 11 useAnimatedStyle, ··· 13 13 import {useSafeAreaInsets} from 'react-native-safe-area-context' 14 14 import {BlurView} from 'expo-blur' 15 15 import {useIsFetching} from '@tanstack/react-query' 16 + import type React from 'react' 16 17 17 18 import {isIOS} from '#/platform/detection' 18 19 import {RQKEY_ROOT as STARTERPACK_RQKEY_ROOT} from '#/state/queries/actor-starter-packs'
+2 -2
src/screens/Profile/Header/Metrics.tsx
··· 1 1 import {View} from 'react-native' 2 - import {AppBskyActorDefs} from '@atproto/api' 2 + import {type AppBskyActorDefs} from '@atproto/api' 3 3 import {msg, plural} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 6 6 import {makeProfileLink} from '#/lib/routes/links' 7 - import {Shadow} from '#/state/cache/types' 7 + import {type Shadow} from '#/state/cache/types' 8 8 import {formatCount} from '#/view/com/util/numeric/format' 9 9 import {atoms as a, useTheme} from '#/alf' 10 10 import {InlineLinkText} from '#/components/Link'
+4 -1
src/screens/Profile/Header/StatusBarShadow.tsx
··· 1 - import Animated, {SharedValue, useAnimatedStyle} from 'react-native-reanimated' 1 + import Animated, { 2 + type SharedValue, 3 + useAnimatedStyle, 4 + } from 'react-native-reanimated' 2 5 import {useSafeAreaInsets} from 'react-native-safe-area-context' 3 6 import {LinearGradient} from 'expo-linear-gradient' 4 7
+5 -5
src/screens/Profile/Header/index.tsx
··· 1 1 import React, {memo, useState} from 'react' 2 - import {LayoutChangeEvent, StyleSheet, View} from 'react-native' 2 + import {type LayoutChangeEvent, StyleSheet, View} from 'react-native' 3 3 import Animated, { 4 4 runOnJS, 5 5 useAnimatedReaction, ··· 8 8 } from 'react-native-reanimated' 9 9 import {useSafeAreaInsets} from 'react-native-safe-area-context' 10 10 import { 11 - AppBskyActorDefs, 12 - AppBskyLabelerDefs, 13 - ModerationOpts, 14 - RichText as RichTextAPI, 11 + type AppBskyActorDefs, 12 + type AppBskyLabelerDefs, 13 + type ModerationOpts, 14 + type RichText as RichTextAPI, 15 15 } from '@atproto/api' 16 16 import {useIsFocused} from '@react-navigation/native' 17 17
+5 -2
src/screens/Profile/KnownFollowers.tsx
··· 1 1 import React from 'react' 2 - import {AppBskyActorDefs} from '@atproto/api' 2 + import {type AppBskyActorDefs} from '@atproto/api' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 import {useFocusEffect} from '@react-navigation/native' 6 6 7 7 import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' 8 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 8 + import { 9 + type CommonNavigatorParams, 10 + type NativeStackScreenProps, 11 + } from '#/lib/routes/types' 9 12 import {cleanError} from '#/lib/strings/errors' 10 13 import {logger} from '#/logger' 11 14 import {useProfileKnownFollowersQuery} from '#/state/queries/known-followers'
+4 -1
src/screens/Profile/ProfileFollowers.tsx
··· 2 2 import {Plural} from '@lingui/macro' 3 3 import {useFocusEffect} from '@react-navigation/native' 4 4 5 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 5 + import { 6 + type CommonNavigatorParams, 7 + type NativeStackScreenProps, 8 + } from '#/lib/routes/types' 6 9 import {sanitizeDisplayName} from '#/lib/strings/display-names' 7 10 import {useProfileQuery} from '#/state/queries/profile' 8 11 import {useResolveDidQuery} from '#/state/queries/resolve-uri'
+4 -1
src/screens/Profile/ProfileFollows.tsx
··· 2 2 import {Plural} from '@lingui/macro' 3 3 import {useFocusEffect} from '@react-navigation/native' 4 4 5 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 5 + import { 6 + type CommonNavigatorParams, 7 + type NativeStackScreenProps, 8 + } from '#/lib/routes/types' 6 9 import {sanitizeDisplayName} from '#/lib/strings/display-names' 7 10 import {useProfileQuery} from '#/state/queries/profile' 8 11 import {useResolveDidQuery} from '#/state/queries/resolve-uri'
+4 -1
src/screens/Profile/ProfileLabelerLikedBy.tsx
··· 3 3 import {useLingui} from '@lingui/react' 4 4 import {useFocusEffect} from '@react-navigation/native' 5 5 6 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 6 + import { 7 + type CommonNavigatorParams, 8 + type NativeStackScreenProps, 9 + } from '#/lib/routes/types' 7 10 import {makeRecordUri} from '#/lib/strings/url-helpers' 8 11 import {useSetMinimalShellMode} from '#/state/shell' 9 12 import {ViewHeader} from '#/view/com/util/ViewHeader'
+1 -1
src/screens/Settings/AppIconSettings/AppIconImage.tsx
··· 1 1 import {Image} from 'expo-image' 2 2 3 - import {AppIconSet} from '#/screens/Settings/AppIconSettings/types' 3 + import {type AppIconSet} from '#/screens/Settings/AppIconSettings/types' 4 4 import {atoms as a, platform, useTheme} from '#/alf' 5 5 6 6 export function AppIconImage({
+1 -1
src/screens/Settings/components/AddAppPasswordDialog.tsx
··· 8 8 SlideInRight, 9 9 SlideOutLeft, 10 10 } from 'react-native-reanimated' 11 - import {ComAtprotoServerCreateAppPassword} from '@atproto/api' 11 + import {type ComAtprotoServerCreateAppPassword} from '@atproto/api' 12 12 import {msg, Trans} from '@lingui/macro' 13 13 import {useLingui} from '@lingui/react' 14 14 import {useMutation} from '@tanstack/react-query'
+2 -2
src/screens/Settings/components/CopyButton.tsx
··· 1 1 import {useCallback, useEffect, useState} from 'react' 2 - import {GestureResponderEvent, View} from 'react-native' 2 + import {type GestureResponderEvent, View} from 'react-native' 3 3 import Animated, { 4 4 FadeOutUp, 5 5 useReducedMotion, ··· 9 9 import {Trans} from '@lingui/macro' 10 10 11 11 import {atoms as a, useTheme} from '#/alf' 12 - import {Button, ButtonProps} from '#/components/Button' 12 + import {Button, type ButtonProps} from '#/components/Button' 13 13 import {Text} from '#/components/Typography' 14 14 15 15 export function CopyButton({
+1 -1
src/screens/Settings/components/DeactivateAccountDialog.tsx
··· 7 7 import {useAgent, useSessionApi} from '#/state/session' 8 8 import {atoms as a, useBreakpoints, useTheme} from '#/alf' 9 9 import {Button, ButtonIcon, ButtonText} from '#/components/Button' 10 - import {DialogOuterProps} from '#/components/Dialog' 10 + import {type DialogOuterProps} from '#/components/Dialog' 11 11 import {Divider} from '#/components/Divider' 12 12 import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' 13 13 import {Loader} from '#/components/Loader'
+1 -1
src/screens/Settings/components/PwiOptOut.tsx
··· 1 1 import React from 'react' 2 2 import {View} from 'react-native' 3 - import {$Typed, ComAtprotoLabelDefs} from '@atproto/api' 3 + import {type $Typed, ComAtprotoLabelDefs} from '@atproto/api' 4 4 import {msg, Trans} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6
+2 -2
src/screens/StarterPack/Wizard/StepFeeds.tsx
··· 1 1 import {useState} from 'react' 2 - import {ListRenderItemInfo, View} from 'react-native' 2 + import {type ListRenderItemInfo, View} from 'react-native' 3 3 import {KeyboardAwareScrollView} from 'react-native-keyboard-controller' 4 - import {AppBskyFeedDefs, ModerationOpts} from '@atproto/api' 4 + import {type AppBskyFeedDefs, type ModerationOpts} from '@atproto/api' 5 5 import {Trans} from '@lingui/macro' 6 6 7 7 import {DISCOVER_FEED_URI} from '#/lib/constants'
+3 -3
src/screens/StarterPack/Wizard/StepProfiles.tsx
··· 1 1 import {useState} from 'react' 2 - import {ListRenderItemInfo, View} from 'react-native' 2 + import {type ListRenderItemInfo, View} from 'react-native' 3 3 import {KeyboardAwareScrollView} from 'react-native-keyboard-controller' 4 - import {AppBskyActorDefs, ModerationOpts} from '@atproto/api' 4 + import {type AppBskyActorDefs, type ModerationOpts} from '@atproto/api' 5 5 import {Trans} from '@lingui/macro' 6 6 7 7 import {isNative} from '#/platform/detection' ··· 16 16 import {ScreenTransition} from '#/components/StarterPack/Wizard/ScreenTransition' 17 17 import {WizardProfileCard} from '#/components/StarterPack/Wizard/WizardListCard' 18 18 import {Text} from '#/components/Typography' 19 - import * as bsky from '#/types/bsky' 19 + import type * as bsky from '#/types/bsky' 20 20 21 21 function keyExtractor(item: AppBskyActorDefs.ProfileViewBasic) { 22 22 return item?.did ?? ''
+4 -4
src/screens/VideoFeed/components/Header.tsx
··· 1 1 import {useCallback} from 'react' 2 - import {GestureResponderEvent, View} from 'react-native' 2 + import {type GestureResponderEvent, View} from 'react-native' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 import {useNavigation} from '@react-navigation/native' 6 6 7 7 import {HITSLOP_30} from '#/lib/constants' 8 - import {NavigationProp} from '#/lib/routes/types' 8 + import {type NavigationProp} from '#/lib/routes/types' 9 9 import {sanitizeHandle} from '#/lib/strings/handles' 10 10 import {useFeedSourceInfoQuery} from '#/state/queries/feed' 11 11 import {UserAvatar} from '#/view/com/util/UserAvatar' 12 - import {VideoFeedSourceContext} from '#/screens/VideoFeed/types' 12 + import {type VideoFeedSourceContext} from '#/screens/VideoFeed/types' 13 13 import {atoms as a, useBreakpoints} from '#/alf' 14 - import {Button, ButtonProps} from '#/components/Button' 14 + import {Button, type ButtonProps} from '#/components/Button' 15 15 import {ArrowLeft_Stroke2_Corner0_Rounded as ArrowLeft} from '#/components/icons/Arrow' 16 16 import * as Layout from '#/components/Layout' 17 17 import {BUTTON_VISUAL_ALIGNMENT_OFFSET} from '#/components/Layout/const'
+1 -1
src/screens/VideoFeed/types.ts
··· 1 - import {AuthorFilter} from '#/state/queries/post-feed' 1 + import {type AuthorFilter} from '#/state/queries/post-feed' 2 2 3 3 /** 4 4 * Kind of like `FeedDescriptor` but not
+5 -5
src/state/messages/convo/util.ts
··· 1 1 import { 2 - ConvoState, 3 - ConvoStateBackgrounded, 4 - ConvoStateDisabled, 5 - ConvoStateReady, 6 - ConvoStateSuspended, 2 + type ConvoState, 3 + type ConvoStateBackgrounded, 4 + type ConvoStateDisabled, 5 + type ConvoStateReady, 6 + type ConvoStateSuspended, 7 7 ConvoStatus, 8 8 } from './types' 9 9
+1 -1
src/state/messages/events/types.ts
··· 1 - import {BskyAgent, ChatBskyConvoGetLog} from '@atproto/api' 1 + import {type BskyAgent, type ChatBskyConvoGetLog} from '@atproto/api' 2 2 3 3 export type MessagesEventBusParams = { 4 4 agent: BskyAgent
+1 -1
src/state/messages/index.tsx
··· 1 - import React from 'react' 1 + import type React from 'react' 2 2 3 3 import {CurrentConvoIdProvider} from '#/state/messages/current-convo-id' 4 4 import {MessagesEventBusProvider} from '#/state/messages/events'
+2 -2
src/state/persisted/index.web.ts
··· 4 4 import {logger} from '#/logger' 5 5 import { 6 6 defaults, 7 - Schema, 7 + type Schema, 8 8 tryParse, 9 9 tryStringify, 10 10 } from '#/state/persisted/schema' 11 - import {PersistedApi} from './types' 11 + import {type PersistedApi} from './types' 12 12 import {normalizeData} from './util' 13 13 14 14 export type {PersistedAccount, Schema} from '#/state/persisted/schema'
+1 -1
src/state/persisted/types.ts
··· 1 - import type {Schema} from './schema' 1 + import {type Schema} from './schema' 2 2 3 3 export type PersistedApi = { 4 4 init(): Promise<void>
+1 -1
src/state/persisted/util.ts
··· 2 2 3 3 import {dedupArray} from '#/lib/functions' 4 4 import {logger} from '#/logger' 5 - import {Schema} from '#/state/persisted/schema' 5 + import {type Schema} from '#/state/persisted/schema' 6 6 7 7 export function normalizeData(data: Schema) { 8 8 const next = {...data}
+1 -1
src/state/preferences/index.tsx
··· 1 - import React from 'react' 1 + import type React from 'react' 2 2 3 3 import {Provider as AltTextRequiredProvider} from './alt-text-required' 4 4 import {Provider as AutoplayProvider} from './autoplay'
+5 -1
src/state/queries/actor-autocomplete.ts
··· 1 1 import React from 'react' 2 - import {AppBskyActorDefs, moderateProfile, ModerationOpts} from '@atproto/api' 2 + import { 3 + type AppBskyActorDefs, 4 + moderateProfile, 5 + type ModerationOpts, 6 + } from '@atproto/api' 3 7 import {keepPreviousData, useQuery, useQueryClient} from '@tanstack/react-query' 4 8 5 9 import {isJustAMute, moduiContainsHideableOffense} from '#/lib/moderation'
+1 -1
src/state/queries/app-passwords.ts
··· 1 - import {ComAtprotoServerCreateAppPassword} from '@atproto/api' 1 + import {type ComAtprotoServerCreateAppPassword} from '@atproto/api' 2 2 import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' 3 3 4 4 import {STALE} from '#/state/queries'
+1 -1
src/state/queries/invites.ts
··· 1 - import {ComAtprotoServerDefs} from '@atproto/api' 1 + import {type ComAtprotoServerDefs} from '@atproto/api' 2 2 import {useQuery} from '@tanstack/react-query' 3 3 4 4 import {cleanError} from '#/lib/strings/errors'
+7 -4
src/state/queries/known-followers.ts
··· 1 - import {AppBskyActorDefs, AppBskyGraphGetKnownFollowers} from '@atproto/api' 2 1 import { 3 - InfiniteData, 4 - QueryClient, 5 - QueryKey, 2 + type AppBskyActorDefs, 3 + type AppBskyGraphGetKnownFollowers, 4 + } from '@atproto/api' 5 + import { 6 + type InfiniteData, 7 + type QueryClient, 8 + type QueryKey, 6 9 useInfiniteQuery, 7 10 } from '@tanstack/react-query' 8 11
+4 -4
src/state/queries/my-blocked-accounts.ts
··· 1 - import {AppBskyActorDefs, AppBskyGraphGetBlocks} from '@atproto/api' 1 + import {type AppBskyActorDefs, type AppBskyGraphGetBlocks} from '@atproto/api' 2 2 import { 3 - InfiniteData, 4 - QueryClient, 5 - QueryKey, 3 + type InfiniteData, 4 + type QueryClient, 5 + type QueryKey, 6 6 useInfiniteQuery, 7 7 } from '@tanstack/react-query' 8 8
+2 -2
src/state/queries/my-lists.ts
··· 1 - import {AppBskyGraphDefs} from '@atproto/api' 2 - import {QueryClient, useQuery} from '@tanstack/react-query' 1 + import {type AppBskyGraphDefs} from '@atproto/api' 2 + import {type QueryClient, useQuery} from '@tanstack/react-query' 3 3 4 4 import {accumulate} from '#/lib/async/accumulate' 5 5 import {STALE} from '#/state/queries'
+4 -4
src/state/queries/my-muted-accounts.ts
··· 1 - import {AppBskyActorDefs, AppBskyGraphGetMutes} from '@atproto/api' 1 + import {type AppBskyActorDefs, type AppBskyGraphGetMutes} from '@atproto/api' 2 2 import { 3 - InfiniteData, 4 - QueryClient, 5 - QueryKey, 3 + type InfiniteData, 4 + type QueryClient, 5 + type QueryKey, 6 6 useInfiniteQuery, 7 7 } from '@tanstack/react-query' 8 8
+1 -1
src/state/queries/nuxs/types.ts
··· 1 - import {AppBskyActorDefs} from '@atproto/api' 1 + import {type AppBskyActorDefs} from '@atproto/api' 2 2 3 3 export type Data = Record<string, unknown> | undefined 4 4
+3 -3
src/state/queries/nuxs/util.ts
··· 1 - import {AppBskyActorDefs, nuxSchema} from '@atproto/api' 1 + import {type AppBskyActorDefs, nuxSchema} from '@atproto/api' 2 2 3 3 import { 4 - AppNux, 5 - Nux, 4 + type AppNux, 5 + type Nux, 6 6 nuxNames, 7 7 NuxSchemas, 8 8 } from '#/state/queries/nuxs/definitions'
+1 -1
src/state/queries/post-interaction-settings.ts
··· 1 - import {AppBskyActorDefs} from '@atproto/api' 1 + import {type AppBskyActorDefs} from '@atproto/api' 2 2 import {useMutation, useQueryClient} from '@tanstack/react-query' 3 3 4 4 import {preferencesQueryKey} from '#/state/queries/preferences'
+4 -4
src/state/queries/post-liked-by.ts
··· 1 - import {AppBskyActorDefs, AppBskyFeedGetLikes} from '@atproto/api' 1 + import {type AppBskyActorDefs, type AppBskyFeedGetLikes} from '@atproto/api' 2 2 import { 3 - InfiniteData, 4 - QueryClient, 5 - QueryKey, 3 + type InfiniteData, 4 + type QueryClient, 5 + type QueryKey, 6 6 useInfiniteQuery, 7 7 } from '@tanstack/react-query' 8 8
+6 -6
src/state/queries/post-quotes.ts
··· 1 1 import { 2 - AppBskyActorDefs, 2 + type AppBskyActorDefs, 3 3 AppBskyEmbedRecord, 4 - AppBskyFeedDefs, 5 - AppBskyFeedGetQuotes, 4 + type AppBskyFeedDefs, 5 + type AppBskyFeedGetQuotes, 6 6 AtUri, 7 7 } from '@atproto/api' 8 8 import { 9 - InfiniteData, 10 - QueryClient, 11 - QueryKey, 9 + type InfiniteData, 10 + type QueryClient, 11 + type QueryKey, 12 12 useInfiniteQuery, 13 13 } from '@tanstack/react-query' 14 14
+7 -4
src/state/queries/post-reposted-by.ts
··· 1 - import {AppBskyActorDefs, AppBskyFeedGetRepostedBy} from '@atproto/api' 2 1 import { 3 - InfiniteData, 4 - QueryClient, 5 - QueryKey, 2 + type AppBskyActorDefs, 3 + type AppBskyFeedGetRepostedBy, 4 + } from '@atproto/api' 5 + import { 6 + type InfiniteData, 7 + type QueryClient, 8 + type QueryKey, 6 9 useInfiniteQuery, 7 10 } from '@tanstack/react-query' 8 11
+3 -3
src/state/queries/preferences/types.ts
··· 1 1 import { 2 - BskyFeedViewPreference, 3 - BskyPreferences, 4 - BskyThreadViewPreference, 2 + type BskyFeedViewPreference, 3 + type BskyPreferences, 4 + type BskyThreadViewPreference, 5 5 } from '@atproto/api' 6 6 7 7 export type UsePreferencesQueryResponse = Omit<
+9 -2
src/state/queries/profile-feedgens.ts
··· 1 - import {AppBskyFeedGetActorFeeds, moderateFeedGenerator} from '@atproto/api' 2 - import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query' 1 + import { 2 + type AppBskyFeedGetActorFeeds, 3 + moderateFeedGenerator, 4 + } from '@atproto/api' 5 + import { 6 + type InfiniteData, 7 + type QueryKey, 8 + useInfiniteQuery, 9 + } from '@tanstack/react-query' 3 10 4 11 import {useAgent} from '#/state/session' 5 12 import {useModerationOpts} from '../preferences/moderation-opts'
+7 -4
src/state/queries/profile-followers.ts
··· 1 - import {AppBskyActorDefs, AppBskyGraphGetFollowers} from '@atproto/api' 2 1 import { 3 - InfiniteData, 4 - QueryClient, 5 - QueryKey, 2 + type AppBskyActorDefs, 3 + type AppBskyGraphGetFollowers, 4 + } from '@atproto/api' 5 + import { 6 + type InfiniteData, 7 + type QueryClient, 8 + type QueryKey, 6 9 useInfiniteQuery, 7 10 } from '@tanstack/react-query' 8 11
+4 -4
src/state/queries/profile-follows.ts
··· 1 - import {AppBskyActorDefs, AppBskyGraphGetFollows} from '@atproto/api' 1 + import {type AppBskyActorDefs, type AppBskyGraphGetFollows} from '@atproto/api' 2 2 import { 3 - InfiniteData, 4 - QueryClient, 5 - QueryKey, 3 + type InfiniteData, 4 + type QueryClient, 5 + type QueryKey, 6 6 useInfiniteQuery, 7 7 } from '@tanstack/react-query' 8 8
+6 -2
src/state/queries/profile-lists.ts
··· 1 - import {AppBskyGraphGetLists, moderateUserList} from '@atproto/api' 2 - import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query' 1 + import {type AppBskyGraphGetLists, moderateUserList} from '@atproto/api' 2 + import { 3 + type InfiniteData, 4 + type QueryKey, 5 + useInfiniteQuery, 6 + } from '@tanstack/react-query' 3 7 4 8 import {useAgent} from '#/state/session' 5 9 import {useModerationOpts} from '../preferences/moderation-opts'
+4 -4
src/state/queries/resolve-link.ts
··· 1 - import {QueryClient, useQuery} from '@tanstack/react-query' 1 + import {type QueryClient, useQuery} from '@tanstack/react-query' 2 2 3 3 import {STALE} from '#/state/queries/index' 4 4 import {useAgent} from '../session' ··· 9 9 const RQKEY_GIF_ROOT = 'resolve-gif' 10 10 export const RQKEY_GIF = (url: string) => [RQKEY_GIF_ROOT, url] 11 11 12 - import {BskyAgent} from '@atproto/api' 12 + import {type BskyAgent} from '@atproto/api' 13 13 14 - import {ResolvedLink, resolveGif, resolveLink} from '#/lib/api/resolve' 15 - import {Gif} from './tenor' 14 + import {type ResolvedLink, resolveGif, resolveLink} from '#/lib/api/resolve' 15 + import {type Gif} from './tenor' 16 16 17 17 export function useResolveLinkQuery(url: string) { 18 18 const agent = useAgent()
+5 -1
src/state/queries/resolve-uri.ts
··· 1 1 import {AtUri} from '@atproto/api' 2 - import {QueryClient, useQuery, UseQueryResult} from '@tanstack/react-query' 2 + import { 3 + type QueryClient, 4 + useQuery, 5 + type UseQueryResult, 6 + } from '@tanstack/react-query' 3 7 4 8 import {STALE} from '#/state/queries' 5 9 import {useAgent} from '#/state/session'
+6 -6
src/state/queries/search-posts.ts
··· 1 1 import React from 'react' 2 2 import { 3 - AppBskyActorDefs, 4 - AppBskyFeedDefs, 5 - AppBskyFeedSearchPosts, 3 + type AppBskyActorDefs, 4 + type AppBskyFeedDefs, 5 + type AppBskyFeedSearchPosts, 6 6 AtUri, 7 7 moderatePost, 8 8 } from '@atproto/api' 9 9 import { 10 - InfiniteData, 11 - QueryClient, 12 - QueryKey, 10 + type InfiniteData, 11 + type QueryClient, 12 + type QueryKey, 13 13 useInfiniteQuery, 14 14 } from '@tanstack/react-query' 15 15
+6 -2
src/state/queries/suggested-feeds.ts
··· 1 - import {AppBskyFeedGetSuggestedFeeds} from '@atproto/api' 2 - import {InfiniteData, QueryKey, useInfiniteQuery} from '@tanstack/react-query' 1 + import {type AppBskyFeedGetSuggestedFeeds} from '@atproto/api' 2 + import { 3 + type InfiniteData, 4 + type QueryKey, 5 + useInfiniteQuery, 6 + } from '@tanstack/react-query' 3 7 4 8 import {STALE} from '#/state/queries' 5 9 import {useAgent} from '#/state/session'
+3 -3
src/state/queries/threadgate/index.ts
··· 1 1 import { 2 2 AppBskyFeedDefs, 3 - AppBskyFeedGetPostThread, 3 + type AppBskyFeedGetPostThread, 4 4 AppBskyFeedThreadgate, 5 5 AtUri, 6 - BskyAgent, 6 + type BskyAgent, 7 7 } from '@atproto/api' 8 8 import {useMutation, useQuery, useQueryClient} from '@tanstack/react-query' 9 9 ··· 11 11 import {until} from '#/lib/async/until' 12 12 import {STALE} from '#/state/queries' 13 13 import {RQKEY_ROOT as postThreadQueryKeyRoot} from '#/state/queries/post-thread' 14 - import {ThreadgateAllowUISetting} from '#/state/queries/threadgate/types' 14 + import {type ThreadgateAllowUISetting} from '#/state/queries/threadgate/types' 15 15 import { 16 16 createThreadgateRecord, 17 17 mergeThreadgateRecords,
+2 -2
src/state/queries/threadgate/util.ts
··· 1 - import {AppBskyFeedDefs, AppBskyFeedThreadgate} from '@atproto/api' 1 + import {type AppBskyFeedDefs, AppBskyFeedThreadgate} from '@atproto/api' 2 2 3 - import {ThreadgateAllowUISetting} from '#/state/queries/threadgate/types' 3 + import {type ThreadgateAllowUISetting} from '#/state/queries/threadgate/types' 4 4 import * as bsky from '#/types/bsky' 5 5 6 6 export function threadgateViewToAllowUISetting(
+2 -2
src/state/queries/unstable-profile-cache.ts
··· 1 1 import {useCallback} from 'react' 2 - import {QueryClient, useQueryClient} from '@tanstack/react-query' 2 + import {type QueryClient, useQueryClient} from '@tanstack/react-query' 3 3 4 - import * as bsky from '#/types/bsky' 4 + import type * as bsky from '#/types/bsky' 5 5 6 6 const unstableProfileViewCacheQueryKeyRoot = 'unstableProfileViewCache' 7 7 export const unstableProfileViewCacheQueryKey = (didOrHandle: string) => [
+8 -4
src/state/queries/util.ts
··· 1 1 import { 2 - AppBskyActorDefs, 2 + type AppBskyActorDefs, 3 3 AppBskyEmbedRecord, 4 4 AppBskyEmbedRecordWithMedia, 5 - AppBskyFeedDefs, 5 + type AppBskyFeedDefs, 6 6 AppBskyFeedPost, 7 - AtUri, 7 + type AtUri, 8 8 } from '@atproto/api' 9 - import {InfiniteData, QueryClient, QueryKey} from '@tanstack/react-query' 9 + import { 10 + type InfiniteData, 11 + type QueryClient, 12 + type QueryKey, 13 + } from '@tanstack/react-query' 10 14 11 15 import * as bsky from '#/types/bsky' 12 16
+1 -1
src/state/session/__tests__/session-test.ts
··· 2 2 import {describe, expect, it, jest} from '@jest/globals' 3 3 4 4 import {agentToSessionAccountOrThrow} from '../agent' 5 - import {Action, getInitialState, reducer, State} from '../reducer' 5 + import {type Action, getInitialState, reducer, type State} from '../reducer' 6 6 7 7 jest.mock('jwt-decode', () => ({ 8 8 jwtDecode(_token: string) {
+1 -1
src/state/session/moderation.ts
··· 3 3 import {IS_TEST_USER} from '#/lib/constants' 4 4 import {configureAdditionalModerationAuthorities} from './additional-moderation-authorities' 5 5 import {readLabelers} from './agent-config' 6 - import {SessionAccount} from './types' 6 + import {type SessionAccount} from './types' 7 7 8 8 export function configureModerationForGuest() { 9 9 // This global mutation is *only* OK because this code is only relevant for testing.
+1 -1
src/state/session/util.ts
··· 3 3 import {hasProp} from '#/lib/type-guards' 4 4 import {logger} from '#/logger' 5 5 import * as persisted from '#/state/persisted' 6 - import {SessionAccount} from './types' 6 + import {type SessionAccount} from './types' 7 7 8 8 export function readLastActiveAccount() { 9 9 const {currentAccount, accounts} = persisted.get('session')
+1 -1
src/state/shell/reminders.ts
··· 1 1 import {simpleAreDatesEqual} from '#/lib/strings/time' 2 2 import {logger} from '#/logger' 3 3 import * as persisted from '#/state/persisted' 4 - import {SessionAccount} from '../session' 4 + import {type SessionAccount} from '../session' 5 5 import {isOnboardingActive} from './onboarding' 6 6 7 7 export function shouldRequestEmailConfirmation(account: SessionAccount) {
+1 -1
src/types/bsky/index.ts
··· 1 - import {ValidationResult} from '@atproto/lexicon' 1 + import {type ValidationResult} from '@atproto/lexicon' 2 2 3 3 export * as post from '#/types/bsky/post' 4 4 export * as profile from '#/types/bsky/profile'
+1 -1
src/types/bsky/post.ts
··· 1 1 import { 2 - $Typed, 2 + type $Typed, 3 3 AppBskyEmbedExternal, 4 4 AppBskyEmbedImages, 5 5 AppBskyEmbedRecord,
+1 -1
src/view/com/composer/AltTextCounterWrapper.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 2 + import type React from 'react' 3 3 4 4 import {MAX_ALT_TEXT} from '#/lib/constants' 5 5 import {CharProgress} from '#/view/com/composer/char-progress/CharProgress'
+1 -1
src/view/com/composer/KeyboardAccessory.tsx
··· 1 - import React from 'react' 2 1 import {View} from 'react-native' 3 2 import {KeyboardStickyView} from 'react-native-keyboard-controller' 4 3 import {useSafeAreaInsets} from 'react-native-safe-area-context' 4 + import type React from 'react' 5 5 6 6 import {isWeb} from '#/platform/detection' 7 7 import {atoms as a, useTheme} from '#/alf'
+6 -1
src/view/com/composer/char-progress/CharProgress.tsx
··· 1 - import {StyleProp, TextStyle, View, ViewStyle} from 'react-native' 1 + import { 2 + type StyleProp, 3 + type TextStyle, 4 + View, 5 + type ViewStyle, 6 + } from 'react-native' 2 7 // @ts-ignore no type definition -prf 3 8 import ProgressCircle from 'react-native-progress/Circle' 4 9 // @ts-ignore no type definition -prf
+1 -1
src/view/com/composer/photos/SelectGifBtn.tsx
··· 4 4 import {useLingui} from '@lingui/react' 5 5 6 6 import {logEvent} from '#/lib/statsig/statsig' 7 - import {Gif} from '#/state/queries/tenor' 7 + import {type Gif} from '#/state/queries/tenor' 8 8 import {atoms as a, useTheme} from '#/alf' 9 9 import {Button} from '#/components/Button' 10 10 import {GifSelectDialog} from '#/components/dialogs/GifSelect'
+1 -1
src/view/com/composer/text-input/text-input-util.ts
··· 1 - import {AppBskyRichtextFacet, RichText} from '@atproto/api' 1 + import {type AppBskyRichtextFacet, type RichText} from '@atproto/api' 2 2 3 3 export type LinkFacetMatch = { 4 4 rt: RichText
+1 -1
src/view/com/composer/text-input/web/LinkDecorator.ts
··· 16 16 17 17 import {URL_REGEX} from '@atproto/api' 18 18 import {Mark} from '@tiptap/core' 19 - import {Node as ProsemirrorNode} from '@tiptap/pm/model' 19 + import {type Node as ProsemirrorNode} from '@tiptap/pm/model' 20 20 import {Plugin, PluginKey} from '@tiptap/pm/state' 21 21 import {Decoration, DecorationSet} from '@tiptap/pm/view' 22 22
+1 -1
src/view/com/composer/text-input/web/TagDecorator.ts
··· 16 16 17 17 import {TAG_REGEX, TRAILING_PUNCTUATION_REGEX} from '@atproto/api' 18 18 import {Mark} from '@tiptap/core' 19 - import {Node as ProsemirrorNode} from '@tiptap/pm/model' 19 + import {type Node as ProsemirrorNode} from '@tiptap/pm/model' 20 20 import {Plugin, PluginKey} from '@tiptap/pm/state' 21 21 import {Decoration, DecorationSet} from '@tiptap/pm/view' 22 22
+4 -4
src/view/com/composer/threadgate/ThreadgateBtn.tsx
··· 1 - import {Keyboard, StyleProp, ViewStyle} from 'react-native' 2 - import {AnimatedStyle} from 'react-native-reanimated' 3 - import {AppBskyFeedPostgate} from '@atproto/api' 1 + import {Keyboard, type StyleProp, type ViewStyle} from 'react-native' 2 + import {type AnimatedStyle} from 'react-native-reanimated' 3 + import {type AppBskyFeedPostgate} from '@atproto/api' 4 4 import {msg} from '@lingui/macro' 5 5 import {useLingui} from '@lingui/react' 6 6 7 7 import {isNative} from '#/platform/detection' 8 - import {ThreadgateAllowUISetting} from '#/state/queries/threadgate' 8 + import {type ThreadgateAllowUISetting} from '#/state/queries/threadgate' 9 9 import {native} from '#/alf' 10 10 import {Button, ButtonIcon, ButtonText} from '#/components/Button' 11 11 import * as Dialog from '#/components/Dialog'
+2 -1
src/view/com/composer/videos/SubtitleFilePicker.tsx
··· 1 - import React, {useRef} from 'react' 1 + import {useRef} from 'react' 2 2 import {View} from 'react-native' 3 3 import {msg, Trans} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 + import type React from 'react' 5 6 6 7 import {logger} from '#/logger' 7 8 import * as Toast from '#/view/com/util/Toast'
+2 -2
src/view/com/composer/videos/VideoPreview.web.tsx
··· 1 1 import {View} from 'react-native' 2 - import {ImagePickerAsset} from 'expo-image-picker' 2 + import {type ImagePickerAsset} from 'expo-image-picker' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5 6 - import {CompressedVideo} from '#/lib/media/video/types' 6 + import {type CompressedVideo} from '#/lib/media/video/types' 7 7 import {clamp} from '#/lib/numbers' 8 8 import {useAutoplayDisabled} from '#/state/preferences' 9 9 import {ExternalEmbedRemoveBtn} from '#/view/com/composer/ExternalEmbedRemoveBtn'
+1 -1
src/view/com/composer/videos/VideoTranscodeProgress.tsx
··· 1 1 import {View} from 'react-native' 2 2 // @ts-expect-error no type definition 3 3 import ProgressPie from 'react-native-progress/Pie' 4 - import {ImagePickerAsset} from 'expo-image-picker' 4 + import {type ImagePickerAsset} from 'expo-image-picker' 5 5 6 6 import {clamp} from '#/lib/numbers' 7 7 import {isWeb} from '#/platform/detection'
+1 -1
src/view/com/composer/videos/pickVideo.web.ts
··· 1 - import {ImagePickerAsset, ImagePickerResult} from 'expo-image-picker' 1 + import {type ImagePickerAsset, type ImagePickerResult} from 'expo-image-picker' 2 2 3 3 import {SUPPORTED_MIME_TYPES} from '#/lib/constants' 4 4
+2 -2
src/view/com/lightbox/ImageViewing/@types/index.ts
··· 6 6 * 7 7 */ 8 8 9 - import {TransformsStyle} from 'react-native' 10 - import {MeasuredDimensions} from 'react-native-reanimated' 9 + import {type TransformsStyle} from 'react-native' 10 + import {type MeasuredDimensions} from 'react-native-reanimated' 11 11 12 12 export type Dimensions = { 13 13 width: number
+1 -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 {StyleSheet, TouchableOpacity, ViewStyle} from 'react-native' 8 + import {StyleSheet, TouchableOpacity, type ViewStyle} from 'react-native' 9 9 import {SafeAreaView} from 'react-native-safe-area-context' 10 10 import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' 11 11 import {msg} from '@lingui/macro'
+7 -7
src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.android.tsx
··· 3 3 import { 4 4 Gesture, 5 5 GestureDetector, 6 - PanGesture, 6 + type PanGesture, 7 7 } from 'react-native-gesture-handler' 8 8 import Animated, { 9 9 runOnJS, 10 - SharedValue, 10 + type SharedValue, 11 11 useAnimatedReaction, 12 12 useAnimatedRef, 13 13 useAnimatedStyle, ··· 16 16 } from 'react-native-reanimated' 17 17 import {Image} from 'expo-image' 18 18 19 - import type { 20 - Dimensions as ImageDimensions, 21 - ImageSource, 22 - Transform, 19 + import { 20 + type Dimensions as ImageDimensions, 21 + type ImageSource, 22 + type Transform, 23 23 } from '../../@types' 24 24 import { 25 25 applyRounding, ··· 28 28 prependPinch, 29 29 prependTransform, 30 30 readTransform, 31 - TransformMatrix, 31 + type TransformMatrix, 32 32 } from '../../transforms' 33 33 34 34 const MIN_SCREEN_ZOOM = 2
+5 -5
src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.ios.tsx
··· 11 11 import { 12 12 Gesture, 13 13 GestureDetector, 14 - PanGesture, 14 + type PanGesture, 15 15 } from 'react-native-gesture-handler' 16 16 import Animated, { 17 17 runOnJS, 18 - SharedValue, 18 + type SharedValue, 19 19 useAnimatedProps, 20 20 useAnimatedReaction, 21 21 useAnimatedRef, ··· 27 27 28 28 import {useAnimatedScrollHandler} from '#/lib/hooks/useAnimatedScrollHandler_FIXED' 29 29 import { 30 - Dimensions as ImageDimensions, 31 - ImageSource, 32 - Transform, 30 + type Dimensions as ImageDimensions, 31 + type ImageSource, 32 + type Transform, 33 33 } from '../../@types' 34 34 35 35 const MAX_ORIGINAL_IMAGE_ZOOM = 2
+6 -6
src/view/com/lightbox/ImageViewing/components/ImageItem/ImageItem.tsx
··· 2 2 3 3 import React from 'react' 4 4 import {View} from 'react-native' 5 - import {PanGesture} from 'react-native-gesture-handler' 6 - import {SharedValue} from 'react-native-reanimated' 5 + import {type PanGesture} from 'react-native-gesture-handler' 6 + import {type SharedValue} from 'react-native-reanimated' 7 7 8 - import {Dimensions} from '#/lib/media/types' 8 + import {type Dimensions} from '#/lib/media/types' 9 9 import { 10 - Dimensions as ImageDimensions, 11 - ImageSource, 12 - Transform, 10 + type Dimensions as ImageDimensions, 11 + type ImageSource, 12 + type Transform, 13 13 } from '../../@types' 14 14 15 15 type Props = {
+1 -1
src/view/com/lightbox/ImageViewing/transforms.ts
··· 1 - import type {Position} from './@types' 1 + import {type Position} from './@types' 2 2 3 3 export type TransformMatrix = [ 4 4 number,
+3 -3
src/view/com/modals/InviteCodes.tsx
··· 6 6 View, 7 7 } from 'react-native' 8 8 import {setStringAsync} from 'expo-clipboard' 9 - import {ComAtprotoServerDefs} from '@atproto/api' 9 + import {type ComAtprotoServerDefs} from '@atproto/api' 10 10 import { 11 11 FontAwesomeIcon, 12 - FontAwesomeIconStyle, 12 + type FontAwesomeIconStyle, 13 13 } from '@fortawesome/react-native-fontawesome' 14 14 import {msg, Trans} from '@lingui/macro' 15 15 import {useLingui} from '@lingui/react' ··· 22 22 import {useInvitesAPI, useInvitesState} from '#/state/invites' 23 23 import {useModalControls} from '#/state/modals' 24 24 import { 25 - InviteCodesQueryResponse, 25 + type InviteCodesQueryResponse, 26 26 useInviteCodesQuery, 27 27 } from '#/state/queries/invites' 28 28 import {ErrorMessage} from '../util/error/ErrorMessage'
+2 -2
src/view/com/modals/UserAddRemoveLists.tsx
··· 5 5 useWindowDimensions, 6 6 View, 7 7 } from 'react-native' 8 - import {AppBskyGraphDefs as GraphDefs} from '@atproto/api' 8 + import {type AppBskyGraphDefs as GraphDefs} from '@atproto/api' 9 9 import {msg, Trans} from '@lingui/macro' 10 10 import {useLingui} from '@lingui/react' 11 11 ··· 18 18 import {useModalControls} from '#/state/modals' 19 19 import { 20 20 getMembership, 21 - ListMembersip, 21 + type ListMembersip, 22 22 useDangerousListMembershipsQuery, 23 23 useListMembershipAddMutation, 24 24 useListMembershipRemoveMutation,
+1 -1
src/view/com/post-thread/PostLikedBy.tsx
··· 1 1 import {useCallback, useMemo, useState} from 'react' 2 - import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' 2 + import {type AppBskyFeedGetLikes as GetLikes} from '@atproto/api' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5
+2 -2
src/view/com/post-thread/PostQuotes.tsx
··· 1 1 import {useCallback, useState} from 'react' 2 2 import { 3 - AppBskyFeedDefs, 3 + type AppBskyFeedDefs, 4 4 AppBskyFeedPost, 5 5 moderatePost, 6 - ModerationDecision, 6 + type ModerationDecision, 7 7 } from '@atproto/api' 8 8 import {msg} from '@lingui/macro' 9 9 import {useLingui} from '@lingui/react'
+1 -1
src/view/com/post-thread/PostRepostedBy.tsx
··· 1 1 import {useCallback, useMemo, useState} from 'react' 2 - import {AppBskyActorDefs as ActorDefs} from '@atproto/api' 2 + import {type AppBskyActorDefs as ActorDefs} from '@atproto/api' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5
+2 -2
src/view/com/posts/CustomFeedEmptyState.tsx
··· 2 2 import {StyleSheet, View} from 'react-native' 3 3 import { 4 4 FontAwesomeIcon, 5 - FontAwesomeIconStyle, 5 + type FontAwesomeIconStyle, 6 6 } from '@fortawesome/react-native-fontawesome' 7 7 import {Trans} from '@lingui/macro' 8 8 import {useNavigation} from '@react-navigation/native' 9 9 10 10 import {usePalette} from '#/lib/hooks/usePalette' 11 11 import {MagnifyingGlassIcon} from '#/lib/icons' 12 - import {NavigationProp} from '#/lib/routes/types' 12 + import {type NavigationProp} from '#/lib/routes/types' 13 13 import {s} from '#/lib/styles' 14 14 import {isWeb} from '#/platform/detection' 15 15 import {Button} from '../util/forms/Button'
+2 -2
src/view/com/posts/FollowingEmptyState.tsx
··· 2 2 import {StyleSheet, View} from 'react-native' 3 3 import { 4 4 FontAwesomeIcon, 5 - FontAwesomeIconStyle, 5 + type FontAwesomeIconStyle, 6 6 } from '@fortawesome/react-native-fontawesome' 7 7 import {Trans} from '@lingui/macro' 8 8 import {useNavigation} from '@react-navigation/native' 9 9 10 10 import {usePalette} from '#/lib/hooks/usePalette' 11 11 import {MagnifyingGlassIcon} from '#/lib/icons' 12 - import {NavigationProp} from '#/lib/routes/types' 12 + import {type NavigationProp} from '#/lib/routes/types' 13 13 import {s} from '#/lib/styles' 14 14 import {isWeb} from '#/platform/detection' 15 15 import {Button} from '../util/forms/Button'
+2 -2
src/view/com/posts/FollowingEndOfFeed.tsx
··· 2 2 import {Dimensions, StyleSheet, View} from 'react-native' 3 3 import { 4 4 FontAwesomeIcon, 5 - FontAwesomeIconStyle, 5 + type FontAwesomeIconStyle, 6 6 } from '@fortawesome/react-native-fontawesome' 7 7 import {Trans} from '@lingui/macro' 8 8 import {useNavigation} from '@react-navigation/native' 9 9 10 10 import {usePalette} from '#/lib/hooks/usePalette' 11 - import {NavigationProp} from '#/lib/routes/types' 11 + import {type NavigationProp} from '#/lib/routes/types' 12 12 import {s} from '#/lib/styles' 13 13 import {isWeb} from '#/platform/detection' 14 14 import {Button} from '../util/forms/Button'
+1 -1
src/view/com/profile/ProfileFollowers.tsx
··· 1 1 import React from 'react' 2 - import {AppBskyActorDefs as ActorDefs} from '@atproto/api' 2 + import {type AppBskyActorDefs as ActorDefs} from '@atproto/api' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5
+1 -1
src/view/com/profile/ProfileFollows.tsx
··· 1 1 import React from 'react' 2 - import {AppBskyActorDefs as ActorDefs} from '@atproto/api' 2 + import {type AppBskyActorDefs as ActorDefs} from '@atproto/api' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5
+1 -1
src/view/com/util/Alert.web.tsx
··· 1 - import {AlertButton, AlertStatic} from 'react-native' 1 + import {type AlertButton, type AlertStatic} from 'react-native' 2 2 3 3 class WebAlert implements Pick<AlertStatic, 'alert'> { 4 4 public alert(title: string, message?: string, buttons?: AlertButton[]): void {
+3 -2
src/view/com/util/BottomSheetCustomBackdrop.tsx
··· 1 - import React, {useMemo} from 'react' 1 + import {useMemo} from 'react' 2 2 import {TouchableWithoutFeedback} from 'react-native' 3 3 import Animated, { 4 4 Extrapolation, 5 5 interpolate, 6 6 useAnimatedStyle, 7 7 } from 'react-native-reanimated' 8 - import {BottomSheetBackdropProps} from '@discord/bottom-sheet/src' 8 + import {type BottomSheetBackdropProps} from '@discord/bottom-sheet/src' 9 9 import {msg} from '@lingui/macro' 10 10 import {useLingui} from '@lingui/react' 11 + import type React from 'react' 11 12 12 13 export function createCustomBackdrop( 13 14 onClose?: (() => void) | undefined,
+3 -3
src/view/com/util/EmptyState.tsx
··· 1 - import {StyleProp, StyleSheet, View, ViewStyle} from 'react-native' 2 - import {IconProp} from '@fortawesome/fontawesome-svg-core' 1 + import {type StyleProp, StyleSheet, View, type ViewStyle} from 'react-native' 2 + import {type IconProp} from '@fortawesome/fontawesome-svg-core' 3 3 import { 4 4 FontAwesomeIcon, 5 - FontAwesomeIconStyle, 5 + type FontAwesomeIconStyle, 6 6 } from '@fortawesome/react-native-fontawesome' 7 7 8 8 import {usePalette} from '#/lib/hooks/usePalette'
+2 -2
src/view/com/util/EmptyStateWithButton.tsx
··· 1 1 import {StyleSheet, View} from 'react-native' 2 - import {IconProp} from '@fortawesome/fontawesome-svg-core' 2 + import {type IconProp} from '@fortawesome/fontawesome-svg-core' 3 3 import { 4 4 FontAwesomeIcon, 5 - FontAwesomeIconStyle, 5 + type FontAwesomeIconStyle, 6 6 } from '@fortawesome/react-native-fontawesome' 7 7 8 8 import {usePalette} from '#/lib/hooks/usePalette'
+2 -2
src/view/com/util/ErrorBoundary.tsx
··· 1 - import {Component, ErrorInfo, ReactNode} from 'react' 2 - import {StyleProp, ViewStyle} from 'react-native' 1 + import {Component, type ErrorInfo, type ReactNode} from 'react' 2 + import {type StyleProp, type ViewStyle} from 'react-native' 3 3 import {msg} from '@lingui/macro' 4 4 import {useLingui} from '@lingui/react' 5 5
+2 -2
src/view/com/util/FeedInfoText.tsx
··· 1 - import {StyleProp, StyleSheet, TextStyle} from 'react-native' 1 + import {type StyleProp, StyleSheet, type TextStyle} from 'react-native' 2 2 3 3 import {sanitizeDisplayName} from '#/lib/strings/display-names' 4 - import {TypographyVariant} from '#/lib/ThemeContext' 4 + import {type TypographyVariant} from '#/lib/ThemeContext' 5 5 import {useFeedSourceInfoQuery} from '#/state/queries/feed' 6 6 import {TextLinkOnWebOnly} from './Link' 7 7 import {LoadingPlaceholder} from './LoadingPlaceholder'
+1 -1
src/view/com/util/LoadMoreRetryBtn.tsx
··· 1 1 import {StyleSheet} from 'react-native' 2 2 import { 3 3 FontAwesomeIcon, 4 - FontAwesomeIconStyle, 4 + type FontAwesomeIconStyle, 5 5 } from '@fortawesome/react-native-fontawesome' 6 6 7 7 import {usePalette} from '#/lib/hooks/usePalette'
+1 -1
src/view/com/util/MainScrollProvider.tsx
··· 1 1 import React, {useCallback, useEffect} from 'react' 2 - import {NativeScrollEvent} from 'react-native' 2 + import {type NativeScrollEvent} from 'react-native' 3 3 import {interpolate, useSharedValue, withSpring} from 'react-native-reanimated' 4 4 import EventEmitter from 'eventemitter3' 5 5
+8 -3
src/view/com/util/PressableWithHover.tsx
··· 1 - import {forwardRef, PropsWithChildren} from 'react' 2 - import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' 3 - import {View} from 'react-native' 1 + import {forwardRef, type PropsWithChildren} from 'react' 2 + import { 3 + Pressable, 4 + type PressableProps, 5 + type StyleProp, 6 + type ViewStyle, 7 + } from 'react-native' 8 + import {type View} from 'react-native' 4 9 5 10 import {addStyle} from '#/lib/styles' 6 11 import {useInteractionState} from '#/components/hooks/useInteractionState'
+3 -3
src/view/com/util/Views.tsx
··· 1 1 import {forwardRef} from 'react' 2 - import {FlatListComponent} from 'react-native' 3 - import {View, ViewProps} from 'react-native' 2 + import {type FlatListComponent} from 'react-native' 3 + import {View, type ViewProps} from 'react-native' 4 4 import Animated from 'react-native-reanimated' 5 - import {FlatListPropsWithLayout} from 'react-native-reanimated' 5 + import {type FlatListPropsWithLayout} from 'react-native-reanimated' 6 6 7 7 // If you explode these into functions, don't forget to forwardRef! 8 8
+1 -1
src/view/com/util/WebAuxClickWrapper.tsx
··· 1 - import React from 'react' 2 1 import {Platform} from 'react-native' 2 + import type React from 'react' 3 3 4 4 const onMouseUp = (e: React.MouseEvent & {target: HTMLElement}) => { 5 5 // Only handle whenever it is the middle button
+3 -3
src/view/com/util/error/ErrorMessage.tsx
··· 1 1 import { 2 - StyleProp, 2 + type StyleProp, 3 3 StyleSheet, 4 4 TouchableOpacity, 5 5 View, 6 - ViewStyle, 6 + type ViewStyle, 7 7 } from 'react-native' 8 8 import { 9 9 FontAwesomeIcon, 10 - FontAwesomeIconStyle, 10 + type FontAwesomeIconStyle, 11 11 } from '@fortawesome/react-native-fontawesome' 12 12 import {msg} from '@lingui/macro' 13 13 import {useLingui} from '@lingui/react'
+1 -1
src/view/com/util/error/ErrorScreen.tsx
··· 1 1 import {View} from 'react-native' 2 2 import { 3 3 FontAwesomeIcon, 4 - FontAwesomeIconStyle, 4 + type FontAwesomeIconStyle, 5 5 } from '@fortawesome/react-native-fontawesome' 6 6 import {msg, Trans} from '@lingui/macro' 7 7 import {useLingui} from '@lingui/react'
+1 -1
src/view/com/util/fab/FAB.web.tsx
··· 1 1 import {View} from 'react-native' 2 2 3 3 import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' 4 - import {FABInner, FABProps} from './FABInner' 4 + import {FABInner, type FABProps} from './FABInner' 5 5 6 6 export const FAB = (_opts: FABProps) => { 7 7 const {isDesktop} = useWebMediaQueries()
+1 -1
src/view/com/util/images/Image.tsx
··· 1 - import {Image, ImageProps, ImageSource} from 'expo-image' 1 + import {Image, type ImageProps, type ImageSource} from 'expo-image' 2 2 3 3 interface HighPriorityImageProps extends ImageProps { 4 4 source: ImageSource
+1 -1
src/view/com/util/layouts/LoggedOutLayout.tsx
··· 1 - import React from 'react' 2 1 import {ScrollView, StyleSheet, View} from 'react-native' 2 + import type React from 'react' 3 3 4 4 import {useColorSchemeStyle} from '#/lib/hooks/useColorSchemeStyle' 5 5 import {useIsKeyboardVisible} from '#/lib/hooks/useIsKeyboardVisible'
+3 -3
src/view/icons/Logo.tsx
··· 1 1 import React from 'react' 2 - import {StyleSheet, TextProps} from 'react-native' 2 + import {StyleSheet, type TextProps} from 'react-native' 3 3 import Svg, { 4 4 Defs, 5 5 LinearGradient, 6 6 Path, 7 - PathProps, 7 + type PathProps, 8 8 Stop, 9 - SvgProps, 9 + type SvgProps, 10 10 } from 'react-native-svg' 11 11 import {Image} from 'expo-image' 12 12
+1 -1
src/view/icons/Logomark.tsx
··· 1 - import Svg, {Path, PathProps, SvgProps} from 'react-native-svg' 1 + import Svg, {Path, type PathProps, type SvgProps} from 'react-native-svg' 2 2 3 3 import {usePalette} from '#/lib/hooks/usePalette' 4 4
+1 -1
src/view/icons/Logotype.tsx
··· 1 - import Svg, {Path, PathProps, SvgProps} from 'react-native-svg' 1 + import Svg, {Path, type PathProps, type SvgProps} from 'react-native-svg' 2 2 3 3 import {usePalette} from '#/lib/hooks/usePalette' 4 4
+4 -1
src/view/screens/CommunityGuidelines.tsx
··· 5 5 import {useFocusEffect} from '@react-navigation/native' 6 6 7 7 import {usePalette} from '#/lib/hooks/usePalette' 8 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 8 + import { 9 + type CommonNavigatorParams, 10 + type NativeStackScreenProps, 11 + } from '#/lib/routes/types' 9 12 import {s} from '#/lib/styles' 10 13 import {useSetMinimalShellMode} from '#/state/shell' 11 14 import {TextLink} from '#/view/com/util/Link'
+4 -1
src/view/screens/CopyrightPolicy.tsx
··· 5 5 import {useFocusEffect} from '@react-navigation/native' 6 6 7 7 import {usePalette} from '#/lib/hooks/usePalette' 8 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 8 + import { 9 + type CommonNavigatorParams, 10 + type NativeStackScreenProps, 11 + } from '#/lib/routes/types' 9 12 import {s} from '#/lib/styles' 10 13 import {useSetMinimalShellMode} from '#/state/shell' 11 14 import {TextLink} from '#/view/com/util/Link'
+1 -1
src/view/screens/NotFound.tsx
··· 9 9 } from '@react-navigation/native' 10 10 11 11 import {usePalette} from '#/lib/hooks/usePalette' 12 - import {NavigationProp} from '#/lib/routes/types' 12 + import {type NavigationProp} from '#/lib/routes/types' 13 13 import {s} from '#/lib/styles' 14 14 import {useSetMinimalShellMode} from '#/state/shell' 15 15 import {Button} from '#/view/com/util/forms/Button'
+4 -1
src/view/screens/PrivacyPolicy.tsx
··· 5 5 import {useFocusEffect} from '@react-navigation/native' 6 6 7 7 import {usePalette} from '#/lib/hooks/usePalette' 8 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 8 + import { 9 + type CommonNavigatorParams, 10 + type NativeStackScreenProps, 11 + } from '#/lib/routes/types' 9 12 import {s} from '#/lib/styles' 10 13 import {useSetMinimalShellMode} from '#/state/shell' 11 14 import {TextLink} from '#/view/com/util/Link'
+4 -1
src/view/screens/ProfileFeedLikedBy.tsx
··· 3 3 import {useLingui} from '@lingui/react' 4 4 import {useFocusEffect} from '@react-navigation/native' 5 5 6 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 6 + import { 7 + type CommonNavigatorParams, 8 + type NativeStackScreenProps, 9 + } from '#/lib/routes/types' 7 10 import {makeRecordUri} from '#/lib/strings/url-helpers' 8 11 import {useSetMinimalShellMode} from '#/state/shell' 9 12 import {PostLikedBy as PostLikedByComponent} from '#/view/com/post-thread/PostLikedBy'
+1 -1
src/view/screens/Storybook/ListContained.tsx
··· 2 2 import {View} from 'react-native' 3 3 4 4 import {ScrollProvider} from '#/lib/ScrollContext' 5 - import {List, ListMethods} from '#/view/com/util/List' 5 + import {List, type ListMethods} from '#/view/com/util/List' 6 6 import {Button, ButtonText} from '#/components/Button' 7 7 import * as Toggle from '#/components/forms/Toggle' 8 8 import {Text} from '#/components/Typography'
+4 -1
src/view/screens/Support.tsx
··· 5 5 6 6 import {HELP_DESK_URL} from '#/lib/constants' 7 7 import {usePalette} from '#/lib/hooks/usePalette' 8 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 8 + import { 9 + type CommonNavigatorParams, 10 + type NativeStackScreenProps, 11 + } from '#/lib/routes/types' 9 12 import {s} from '#/lib/styles' 10 13 import {useSetMinimalShellMode} from '#/state/shell' 11 14 import {TextLink} from '#/view/com/util/Link'
+4 -1
src/view/screens/TermsOfService.tsx
··· 5 5 import {useFocusEffect} from '@react-navigation/native' 6 6 7 7 import {usePalette} from '#/lib/hooks/usePalette' 8 - import {CommonNavigatorParams, NativeStackScreenProps} from '#/lib/routes/types' 8 + import { 9 + type CommonNavigatorParams, 10 + type NativeStackScreenProps, 11 + } from '#/lib/routes/types' 9 12 import {s} from '#/lib/styles' 10 13 import {useSetMinimalShellMode} from '#/state/shell' 11 14 import {TextLink} from '#/view/com/util/Link'