run yarn lint --fix (#9013)

This commit is contained in:
Samuel Newman
2025-09-09 18:38:21 +03:00
committed by GitHub
parent bb30b592d7
commit 53e43a957c
225 changed files with 555 additions and 433 deletions
+1 -1
View File
@@ -15,7 +15,7 @@ import Animated, {
withTiming, withTiming,
} from 'react-native-reanimated' } from 'react-native-reanimated'
import {useSafeAreaInsets} from 'react-native-safe-area-context' import {useSafeAreaInsets} from 'react-native-safe-area-context'
import Svg, {Path, SvgProps} from 'react-native-svg' import Svg, {Path, type SvgProps} from 'react-native-svg'
import {Image} from 'expo-image' import {Image} from 'expo-image'
import * as SplashScreen from 'expo-splash-screen' import * as SplashScreen from 'expo-splash-screen'
+1 -1
View File
@@ -1,5 +1,5 @@
import {atoms} from '#/alf/atoms' import {atoms} from '#/alf/atoms'
import {Palette, Theme} from '#/alf/types' import {type Palette, type Theme} from '#/alf/types'
import { import {
BLUE_HUE, BLUE_HUE,
defaultScale, defaultScale,
+1 -1
View File
@@ -1,4 +1,4 @@
import {StyleProp, TextStyle, ViewStyle} from 'react-native' import {type StyleProp, type TextStyle, type ViewStyle} from 'react-native'
export type TextStyleProp = { export type TextStyleProp = {
style?: StyleProp<TextStyle> style?: StyleProp<TextStyle>
+1 -1
View File
@@ -1,4 +1,4 @@
import {ThemeName} from '#/alf/types' import {type ThemeName} from '#/alf/types'
export function select<T>(name: ThemeName, options: Record<ThemeName, T>) { export function select<T>(name: ThemeName, options: Record<ThemeName, T>) {
switch (name) { switch (name) {
+2 -2
View File
@@ -1,10 +1,10 @@
import React from 'react' import React from 'react'
import {ColorSchemeName, useColorScheme} from 'react-native' import {type ColorSchemeName, useColorScheme} from 'react-native'
import {isWeb} from '#/platform/detection' import {isWeb} from '#/platform/detection'
import {useThemePrefs} from '#/state/shell' import {useThemePrefs} from '#/state/shell'
import {dark, dim, light} from '#/alf/themes' import {dark, dim, light} from '#/alf/themes'
import {ThemeName} from '#/alf/types' import {type ThemeName} from '#/alf/types'
export function useColorModeTheme(): ThemeName { export function useColorModeTheme(): ThemeName {
const theme = useThemeName() const theme = useThemeName()
+1 -1
View File
@@ -1,6 +1,6 @@
import React from 'react' import React from 'react'
import {Breakpoint, useBreakpoints} from '#/alf/breakpoints' import {type Breakpoint, useBreakpoints} from '#/alf/breakpoints'
import * as tokens from '#/alf/tokens' import * as tokens from '#/alf/tokens'
type Gutter = 'compact' | 'base' | 'wide' | 0 type Gutter = 'compact' | 'base' | 'wide' | 0
+1 -1
View File
@@ -1,6 +1,6 @@
import React from 'react' import React from 'react'
import {DialogControlProps} from '#/components/Dialog/types' import {type DialogControlProps} from '#/components/Dialog/types'
export function useAutoOpen(control: DialogControlProps, showTimeout?: number) { export function useAutoOpen(control: DialogControlProps, showTimeout?: number) {
React.useEffect(() => { React.useEffect(() => {
+2 -2
View File
@@ -1,7 +1,7 @@
import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import type React from 'react'
import {atoms as a, ViewStyleProp} from '#/alf' import {atoms as a, type ViewStyleProp} from '#/alf'
export function Fill({ export function Fill({
children, children,
+1 -1
View File
@@ -1,6 +1,6 @@
import {LinearGradient} from 'expo-linear-gradient' import {LinearGradient} from 'expo-linear-gradient'
import {atoms as a, tokens, ViewStyleProp} from '#/alf' import {atoms as a, type tokens, type ViewStyleProp} from '#/alf'
export function GradientFill({ export function GradientFill({
gradient, gradient,
+4 -4
View File
@@ -3,12 +3,12 @@ import {View} from 'react-native'
import { import {
atoms as a, atoms as a,
flatten, flatten,
TextStyleProp, type TextStyleProp,
useTheme, useTheme,
ViewStyleProp, type ViewStyleProp,
} from '#/alf' } from '#/alf'
import {Props} from '#/components/icons/common' import {type Props} from '#/components/icons/common'
import {Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth' import {type Growth_Stroke2_Corner0_Rounded as Growth} from '#/components/icons/Growth'
export function IconCircle({ export function IconCircle({
icon: Icon, icon: Icon,
+4 -4
View File
@@ -1,16 +1,16 @@
import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {AppBskyLabelerDefs} from '@atproto/api' import {type AppBskyLabelerDefs} from '@atproto/api'
import {msg, Plural, Trans} from '@lingui/macro' import {msg, Plural, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import type React from 'react'
import {getLabelingServiceTitle} from '#/lib/moderation' import {getLabelingServiceTitle} from '#/lib/moderation'
import {sanitizeHandle} from '#/lib/strings/handles' import {sanitizeHandle} from '#/lib/strings/handles'
import {useLabelerInfoQuery} from '#/state/queries/labeler' import {useLabelerInfoQuery} from '#/state/queries/labeler'
import {UserAvatar} from '#/view/com/util/UserAvatar' import {UserAvatar} from '#/view/com/util/UserAvatar'
import {atoms as a, useTheme, ViewStyleProp} from '#/alf' import {atoms as a, useTheme, type ViewStyleProp} from '#/alf'
import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag' import {Flag_Stroke2_Corner0_Rounded as Flag} from '#/components/icons/Flag'
import {Link as InternalLink, LinkProps} from '#/components/Link' import {Link as InternalLink, type LinkProps} from '#/components/Link'
import {RichText} from '#/components/RichText' import {RichText} from '#/components/RichText'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'
import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '../icons/Chevron' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '../icons/Chevron'
+1 -1
View File
@@ -1,5 +1,5 @@
import React from 'react' import React from 'react'
import {AppBskyFeedGetLikes as GetLikes} from '@atproto/api' import {type AppBskyFeedGetLikes as GetLikes} from '@atproto/api'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
+2 -2
View File
@@ -1,6 +1,6 @@
import React from 'react' import {type StyleProp, type ViewStyle} from 'react-native'
import {StyleProp, ViewStyle} from 'react-native'
import {LinearGradient} from 'expo-linear-gradient' import {LinearGradient} from 'expo-linear-gradient'
import type React from 'react'
import {gradients} from '#/alf/tokens' import {gradients} from '#/alf/tokens'
+1 -1
View File
@@ -8,7 +8,7 @@ import Animated, {
} from 'react-native-reanimated' } from 'react-native-reanimated'
import {atoms as a, flatten, useTheme} from '#/alf' import {atoms as a, flatten, useTheme} from '#/alf'
import {Props, useCommonSVGProps} from '#/components/icons/common' import {type Props, useCommonSVGProps} from '#/components/icons/common'
import {Loader_Stroke2_Corner0_Rounded as Icon} from '#/components/icons/Loader' import {Loader_Stroke2_Corner0_Rounded as Icon} from '#/components/icons/Loader'
export function Loader(props: Props) { export function Loader(props: Props) {
+1 -1
View File
@@ -1,7 +1,7 @@
import {View} from 'react-native' import {View} from 'react-native'
import {atoms as a, flatten, useTheme} from '#/alf' import {atoms as a, flatten, useTheme} from '#/alf'
import {Props, useCommonSVGProps} from '#/components/icons/common' import {type Props, useCommonSVGProps} from '#/components/icons/common'
import {Loader_Stroke2_Corner0_Rounded as Icon} from '#/components/icons/Loader' import {Loader_Stroke2_Corner0_Rounded as Icon} from '#/components/icons/Loader'
export function Loader(props: Props) { export function Loader(props: Props) {
+2 -2
View File
@@ -1,6 +1,6 @@
import React from 'react' import type React from 'react'
import {atoms as a, useTheme, ViewStyleProp} from '#/alf' import {atoms as a, useTheme, type ViewStyleProp} from '#/alf'
import {Fill} from '#/components/Fill' import {Fill} from '#/components/Fill'
/** /**
+8 -8
View File
@@ -1,14 +1,14 @@
import React from 'react'
import { import {
AccessibilityProps, type AccessibilityProps,
AccessibilityRole, type AccessibilityRole,
GestureResponderEvent, type GestureResponderEvent,
PressableProps, type PressableProps,
} from 'react-native' } from 'react-native'
import type React from 'react'
import {TextStyleProp, ViewStyleProp} from '#/alf' import {type TextStyleProp, type ViewStyleProp} from '#/alf'
import * as Dialog from '#/components/Dialog' import type * as Dialog from '#/components/Dialog'
import {Props as SVGIconProps} from '#/components/icons/common' import {type Props as SVGIconProps} from '#/components/icons/common'
export type ContextType = { export type ContextType = {
control: Dialog.DialogOuterProps['control'] control: Dialog.DialogOuterProps['control']
+1 -1
View File
@@ -1,6 +1,6 @@
import React from 'react' import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {AppBskyActorDefs, moderateProfile} from '@atproto/api' import {type AppBskyActorDefs, moderateProfile} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {differenceInSeconds} from 'date-fns' import {differenceInSeconds} from 'date-fns'
+2 -2
View File
@@ -1,11 +1,11 @@
import React from 'react' import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {BSKY_LABELER_DID, ModerationCause} from '@atproto/api' import {BSKY_LABELER_DID, type ModerationCause} from '@atproto/api'
import {Trans} from '@lingui/macro' import {Trans} from '@lingui/macro'
import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
import {UserAvatar} from '#/view/com/util/UserAvatar' import {UserAvatar} from '#/view/com/util/UserAvatar'
import {atoms as a, useTheme, ViewStyleProp} from '#/alf' import {atoms as a, useTheme, type ViewStyleProp} from '#/alf'
import {Button} from '#/components/Button' import {Button} from '#/components/Button'
import { import {
ModerationDetailsDialog, ModerationDetailsDialog,
+1 -1
View File
@@ -1,4 +1,4 @@
import {StyleProp, View, ViewStyle} from 'react-native' import {type StyleProp, View, type ViewStyle} from 'react-native'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
@@ -1,5 +1,5 @@
import {View} from 'react-native' import {View} from 'react-native'
import {AppBskyLabelerDefs} from '@atproto/api' import {type AppBskyLabelerDefs} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
@@ -9,7 +9,7 @@ import {Button, useButtonContext} from '#/components/Button'
import {Divider} from '#/components/Divider' import {Divider} from '#/components/Divider'
import * as LabelingServiceCard from '#/components/LabelingServiceCard' import * as LabelingServiceCard from '#/components/LabelingServiceCard'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'
import {ReportDialogProps} from './types' import {type ReportDialogProps} from './types'
export function SelectLabelerView({ export function SelectLabelerView({
...props ...props
@@ -1,10 +1,13 @@
import React from 'react' import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {AppBskyLabelerDefs} from '@atproto/api' import {type AppBskyLabelerDefs} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {ReportOption, useReportOptions} from '#/lib/moderation/useReportOptions' import {
type ReportOption,
useReportOptions,
} from '#/lib/moderation/useReportOptions'
import {Link} from '#/components/Link' import {Link} from '#/components/Link'
import {DMCA_LINK} from '#/components/ReportDialog/const' import {DMCA_LINK} from '#/components/ReportDialog/const'
export {useDialogControl as useReportDialogControl} from '#/components/Dialog' export {useDialogControl as useReportDialogControl} from '#/components/Dialog'
@@ -23,7 +26,7 @@ import {
} from '#/components/icons/Chevron' } from '#/components/icons/Chevron'
import {SquareArrowTopRight_Stroke2_Corner0_Rounded as SquareArrowTopRight} from '#/components/icons/SquareArrowTopRight' import {SquareArrowTopRight_Stroke2_Corner0_Rounded as SquareArrowTopRight} from '#/components/icons/SquareArrowTopRight'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'
import {ReportDialogProps} from './types' import {type ReportDialogProps} from './types'
export function SelectReportOptionView(props: { export function SelectReportOptionView(props: {
params: ReportDialogProps['params'] params: ReportDialogProps['params']
+3 -3
View File
@@ -1,11 +1,11 @@
import React from 'react' import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {AppBskyLabelerDefs} from '@atproto/api' import {type AppBskyLabelerDefs} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {getLabelingServiceTitle} from '#/lib/moderation' import {getLabelingServiceTitle} from '#/lib/moderation'
import {ReportOption} from '#/lib/moderation/useReportOptions' import {type ReportOption} from '#/lib/moderation/useReportOptions'
import {isAndroid} from '#/platform/detection' import {isAndroid} from '#/platform/detection'
import {useAgent} from '#/state/session' import {useAgent} from '#/state/session'
import {CharProgress} from '#/view/com/composer/char-progress/CharProgress' import {CharProgress} from '#/view/com/composer/char-progress/CharProgress'
@@ -19,7 +19,7 @@ import {ChevronLeft_Stroke2_Corner0_Rounded as ChevronLeft} from '#/components/i
import {PaperPlane_Stroke2_Corner0_Rounded as SendIcon} from '#/components/icons/PaperPlane' import {PaperPlane_Stroke2_Corner0_Rounded as SendIcon} from '#/components/icons/PaperPlane'
import {Loader} from '#/components/Loader' import {Loader} from '#/components/Loader'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'
import {ReportDialogProps} from './types' import {type ReportDialogProps} from './types'
export function SubmitView({ export function SubmitView({
params, params,
+4 -4
View File
@@ -1,14 +1,14 @@
import React from 'react' import React from 'react'
import {Pressable, View} from 'react-native' import {Pressable, View} from 'react-native'
import {ScrollView} from 'react-native-gesture-handler' import {type ScrollView} from 'react-native-gesture-handler'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {ReportOption} from '#/lib/moderation/useReportOptions' import {type ReportOption} from '#/lib/moderation/useReportOptions'
import {useMyLabelersQuery} from '#/state/queries/preferences' import {useMyLabelersQuery} from '#/state/queries/preferences'
export {useDialogControl as useReportDialogControl} from '#/components/Dialog' export {useDialogControl as useReportDialogControl} from '#/components/Dialog'
import {AppBskyLabelerDefs} from '@atproto/api' import {type AppBskyLabelerDefs} from '@atproto/api'
import {atoms as a} from '#/alf' import {atoms as a} from '#/alf'
import * as Dialog from '#/components/Dialog' import * as Dialog from '#/components/Dialog'
@@ -18,7 +18,7 @@ import {Text} from '#/components/Typography'
import {SelectLabelerView} from './SelectLabelerView' import {SelectLabelerView} from './SelectLabelerView'
import {SelectReportOptionView} from './SelectReportOptionView' import {SelectReportOptionView} from './SelectReportOptionView'
import {SubmitView} from './SubmitView' import {SubmitView} from './SubmitView'
import {ReportDialogProps} from './types' import {type ReportDialogProps} from './types'
export function ReportDialog(props: ReportDialogProps) { export function ReportDialog(props: ReportDialogProps) {
return ( return (
+1 -1
View File
@@ -1,4 +1,4 @@
import * as Dialog from '#/components/Dialog' import type * as Dialog from '#/components/Dialog'
export type ReportDialogProps = { export type ReportDialogProps = {
control: Dialog.DialogOuterProps['control'] control: Dialog.DialogOuterProps['control']
+2 -2
View File
@@ -1,10 +1,10 @@
import React from 'react' import React from 'react'
import {StyleProp, Text as RNText, TextStyle} from 'react-native' import {type StyleProp, Text as RNText, type TextStyle} from 'react-native'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {useNavigation} from '@react-navigation/native' import {useNavigation} from '@react-navigation/native'
import {NavigationProp} from '#/lib/routes/types' import {type NavigationProp} from '#/lib/routes/types'
import {isInvalidHandle} from '#/lib/strings/handles' import {isInvalidHandle} from '#/lib/strings/handles'
import {isNative, isWeb} from '#/platform/detection' import {isNative, isWeb} from '#/platform/detection'
import { import {
@@ -4,11 +4,11 @@ import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {isNative} from '#/platform/detection' import {isNative} from '#/platform/detection'
import {FeedDescriptor} from '#/state/queries/post-feed' import {type FeedDescriptor} from '#/state/queries/post-feed'
import {PostFeed} from '#/view/com/posts/PostFeed' import {PostFeed} from '#/view/com/posts/PostFeed'
import {EmptyState} from '#/view/com/util/EmptyState' import {EmptyState} from '#/view/com/util/EmptyState'
import {ListRef} from '#/view/com/util/List' import {type ListRef} from '#/view/com/util/List'
import {SectionRef} from '#/screens/Profile/Sections/types' import {type SectionRef} from '#/screens/Profile/Sections/types'
interface ProfilesListProps { interface ProfilesListProps {
listUri: string listUri: string
@@ -1,12 +1,15 @@
import React, {useCallback} from 'react' import React, {useCallback} from 'react'
import {ListRenderItemInfo, View} from 'react-native' import {type ListRenderItemInfo, View} from 'react-native'
import { import {
AppBskyActorDefs, type AppBskyActorDefs,
AppBskyGraphGetList, type AppBskyGraphGetList,
AtUri, AtUri,
ModerationOpts, type ModerationOpts,
} from '@atproto/api' } from '@atproto/api'
import {InfiniteData, UseInfiniteQueryResult} from '@tanstack/react-query' import {
type InfiniteData,
type UseInfiniteQueryResult,
} from '@tanstack/react-query'
import {useBottomBarOffset} from '#/lib/hooks/useBottomBarOffset' import {useBottomBarOffset} from '#/lib/hooks/useBottomBarOffset'
import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender'
@@ -14,8 +17,8 @@ import {isBlockedOrBlocking} from '#/lib/moderation/blocked-and-muted'
import {isNative, isWeb} from '#/platform/detection' import {isNative, isWeb} from '#/platform/detection'
import {useAllListMembersQuery} from '#/state/queries/list-members' import {useAllListMembersQuery} from '#/state/queries/list-members'
import {useSession} from '#/state/session' import {useSession} from '#/state/session'
import {List, ListRef} from '#/view/com/util/List' import {List, type ListRef} from '#/view/com/util/List'
import {SectionRef} from '#/screens/Profile/Sections/types' import {type SectionRef} from '#/screens/Profile/Sections/types'
import {atoms as a, useTheme} from '#/alf' import {atoms as a, useTheme} from '#/alf'
import {ListFooter, ListMaybePlaceholder} from '#/components/Lists' import {ListFooter, ListMaybePlaceholder} from '#/components/Lists'
import {Default as ProfileCard} from '#/components/ProfileCard' import {Default as ProfileCard} from '#/components/ProfileCard'
+1 -1
View File
@@ -3,7 +3,7 @@ import {View} from 'react-native'
// @ts-expect-error missing types // @ts-expect-error missing types
import QRCode from 'react-native-qrcode-styled' import QRCode from 'react-native-qrcode-styled'
import type ViewShot from 'react-native-view-shot' import type ViewShot from 'react-native-view-shot'
import {AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api'
import {Trans} from '@lingui/macro' import {Trans} from '@lingui/macro'
import {isWeb} from '#/platform/detection' import {isWeb} from '#/platform/detection'
@@ -1,11 +1,11 @@
import React from 'react' import {type StyleProp, type ViewStyle} from 'react-native'
import {StyleProp, ViewStyle} from 'react-native'
import Animated, { import Animated, {
FadeIn, FadeIn,
FadeOut, FadeOut,
SlideInLeft, SlideInLeft,
SlideInRight, SlideInRight,
} from 'react-native-reanimated' } from 'react-native-reanimated'
import type React from 'react'
import {isWeb} from '#/platform/detection' import {isWeb} from '#/platform/detection'
+1 -1
View File
@@ -1,4 +1,4 @@
import {ViewStyleProp} from '#/alf' import {type ViewStyleProp} from '#/alf'
export function SubtleWebHover({}: ViewStyleProp & {hover: boolean}) { export function SubtleWebHover({}: ViewStyleProp & {hover: boolean}) {
return null return null
+4 -4
View File
@@ -1,6 +1,6 @@
import React from 'react' import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {AtUri} from '@atproto/api' import {type AtUri} from '@atproto/api'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
@@ -10,10 +10,10 @@ import {PressableScale} from '#/lib/custom-animations/PressableScale'
// import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag' // import {Hashtag_Stroke2_Corner0_Rounded as Hashtag} from '#/components/icons/Hashtag'
// import {CloseQuote_Filled_Stroke2_Corner0_Rounded as Quote} from '#/components/icons/Quote' // import {CloseQuote_Filled_Stroke2_Corner0_Rounded as Quote} from '#/components/icons/Quote'
// import {UserAvatar} from '#/view/com/util/UserAvatar' // import {UserAvatar} from '#/view/com/util/UserAvatar'
import type {TrendingTopic} from '#/state/queries/trending/useTrendingTopics' import {type TrendingTopic} from '#/state/queries/trending/useTrendingTopics'
import {atoms as a, native, useTheme, ViewStyleProp} from '#/alf' import {atoms as a, native, useTheme, type ViewStyleProp} from '#/alf'
import {StarterPack as StarterPackIcon} from '#/components/icons/StarterPack' import {StarterPack as StarterPackIcon} from '#/components/icons/StarterPack'
import {Link as InternalLink, LinkProps} from '#/components/Link' import {Link as InternalLink, type LinkProps} from '#/components/Link'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'
export function TrendingTopic({ export function TrendingTopic({
+4 -4
View File
@@ -3,11 +3,11 @@ import {View} from 'react-native'
import {Image} from 'expo-image' import {Image} from 'expo-image'
import {LinearGradient} from 'expo-linear-gradient' import {LinearGradient} from 'expo-linear-gradient'
import { import {
AppBskyActorDefs, type AppBskyActorDefs,
AppBskyEmbedVideo, AppBskyEmbedVideo,
AppBskyFeedDefs, type AppBskyFeedDefs,
AppBskyFeedPost, AppBskyFeedPost,
ModerationDecision, type ModerationDecision,
} from '@atproto/api' } from '@atproto/api'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
@@ -15,7 +15,7 @@ import {useLingui} from '@lingui/react'
import {sanitizeHandle} from '#/lib/strings/handles' import {sanitizeHandle} from '#/lib/strings/handles'
import {formatCount} from '#/view/com/util/numeric/format' import {formatCount} from '#/view/com/util/numeric/format'
import {UserAvatar} from '#/view/com/util/UserAvatar' import {UserAvatar} from '#/view/com/util/UserAvatar'
import {VideoFeedSourceContext} from '#/screens/VideoFeed/types' import {type VideoFeedSourceContext} from '#/screens/VideoFeed/types'
import {atoms as a, useTheme} from '#/alf' import {atoms as a, useTheme} from '#/alf'
import {BLUE_HUE} from '#/alf/util/colorGeneration' import {BLUE_HUE} from '#/alf/util/colorGeneration'
import {select} from '#/alf/util/themeSelector' import {select} from '#/alf/util/themeSelector'
+1 -1
View File
@@ -8,7 +8,7 @@ import Animated, {
} from 'react-native-reanimated' } from 'react-native-reanimated'
import Svg, {Circle, Path} from 'react-native-svg' import Svg, {Circle, Path} from 'react-native-svg'
import {Props, useCommonSVGProps} from '#/components/icons/common' import {type Props, useCommonSVGProps} from '#/components/icons/common'
const AnimatedPath = Animated.createAnimatedComponent(Path) const AnimatedPath = Animated.createAnimatedComponent(Path)
const AnimatedCircle = Animated.createAnimatedComponent(Circle) const AnimatedCircle = Animated.createAnimatedComponent(Circle)
+1 -1
View File
@@ -1,6 +1,6 @@
import {memo, useEffect, useMemo, useState} from 'react' import {memo, useEffect, useMemo, useState} from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {AppBskyActorDefs, AppBskyFeedPost, AtUri} from '@atproto/api' import {type AppBskyActorDefs, type AppBskyFeedPost, AtUri} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
+2 -2
View File
@@ -1,6 +1,6 @@
import React from 'react' import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api' import {type AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
@@ -16,7 +16,7 @@ import {
native, native,
useBreakpoints, useBreakpoints,
useTheme, useTheme,
ViewStyleProp, type ViewStyleProp,
web, web,
} from '#/alf' } from '#/alf'
import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {Button, ButtonIcon, ButtonText} from '#/components/Button'
+2 -2
View File
@@ -1,13 +1,13 @@
import React from 'react' import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {ModerationCause} from '@atproto/api' import {type ModerationCause} from '@atproto/api'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {listUriToHref} from '#/lib/strings/url-helpers' import {listUriToHref} from '#/lib/strings/url-helpers'
import {atoms as a, useTheme} from '#/alf' import {atoms as a, useTheme} from '#/alf'
import * as Dialog from '#/components/Dialog' import * as Dialog from '#/components/Dialog'
import {DialogControlProps} from '#/components/Dialog' import {type DialogControlProps} from '#/components/Dialog'
import {InlineLinkText} from '#/components/Link' import {InlineLinkText} from '#/components/Link'
import * as Prompt from '#/components/Prompt' import * as Prompt from '#/components/Prompt'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'
+2 -2
View File
@@ -2,11 +2,11 @@ import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {StackActions, useNavigation} from '@react-navigation/native' import {StackActions, useNavigation} from '@react-navigation/native'
import {NavigationProp} from '#/lib/routes/types' import {type NavigationProp} from '#/lib/routes/types'
import {isNative} from '#/platform/detection' import {isNative} from '#/platform/detection'
import {useLeaveConvo} from '#/state/queries/messages/leave-conversation' import {useLeaveConvo} from '#/state/queries/messages/leave-conversation'
import * as Toast from '#/view/com/util/Toast' import * as Toast from '#/view/com/util/Toast'
import {DialogOuterProps} from '#/components/Dialog' import {type DialogOuterProps} from '#/components/Dialog'
import * as Prompt from '#/components/Prompt' import * as Prompt from '#/components/Prompt'
export function LeaveConvoPrompt({ export function LeaveConvoPrompt({
@@ -1,6 +1,6 @@
import React from 'react' import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {ModerationDecision} from '@atproto/api' import {type ModerationDecision} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
@@ -14,7 +14,7 @@ import {BlockedByListDialog} from '#/components/dms/BlockedByListDialog'
import {LeaveConvoPrompt} from '#/components/dms/LeaveConvoPrompt' import {LeaveConvoPrompt} from '#/components/dms/LeaveConvoPrompt'
import {ReportConversationPrompt} from '#/components/dms/ReportConversationPrompt' import {ReportConversationPrompt} from '#/components/dms/ReportConversationPrompt'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'
import * as bsky from '#/types/bsky' import type * as bsky from '#/types/bsky'
export function MessagesListBlockedFooter({ export function MessagesListBlockedFooter({
recipient: initialRecipient, recipient: initialRecipient,
@@ -1,7 +1,7 @@
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {DialogControlProps} from '#/components/Dialog' import {type DialogControlProps} from '#/components/Dialog'
import * as Prompt from '#/components/Prompt' import * as Prompt from '#/components/Prompt'
export function ReportConversationPrompt({ export function ReportConversationPrompt({
@@ -2,8 +2,8 @@ import {View} from 'react-native'
import {AppBskyEmbedVideo} from '@atproto/api' import {AppBskyEmbedVideo} from '@atproto/api'
import {logEvent} from '#/lib/statsig/statsig' import {logEvent} from '#/lib/statsig/statsig'
import {FeedPostSliceItem} from '#/state/queries/post-feed' import {type FeedPostSliceItem} from '#/state/queries/post-feed'
import {VideoFeedSourceContext} from '#/screens/VideoFeed/types' import {type VideoFeedSourceContext} from '#/screens/VideoFeed/types'
import {atoms as a, useGutters} from '#/alf' import {atoms as a, useGutters} from '#/alf'
import * as Grid from '#/components/Grid' import * as Grid from '#/components/Grid'
import { import {
+2 -2
View File
@@ -1,9 +1,9 @@
import React from 'react' import React from 'react'
import {StyleSheet, TextInput, TextInputProps} from 'react-native' import {StyleSheet, type TextInput, type TextInputProps} from 'react-native'
// @ts-expect-error untyped // @ts-expect-error untyped
import {unstable_createElement} from 'react-native-web' import {unstable_createElement} from 'react-native-web'
import {DateFieldProps} from '#/components/forms/DateField/types' import {type DateFieldProps} from '#/components/forms/DateField/types'
import {toSimpleDateString} from '#/components/forms/DateField/utils' import {toSimpleDateString} from '#/components/forms/DateField/utils'
import * as TextField from '#/components/forms/TextField' import * as TextField from '#/components/forms/TextField'
import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays' import {CalendarDays_Stroke2_Corner0_Rounded as CalendarDays} from '#/components/icons/CalendarDays'
+1 -1
View File
@@ -1,5 +1,5 @@
import React from 'react' import React from 'react'
import {TextInput, View} from 'react-native' import {type TextInput, View} from 'react-native'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
+3 -3
View File
@@ -2,13 +2,13 @@ import React from 'react'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {LogEvents} from '#/lib/statsig/statsig' import {type LogEvents} from '#/lib/statsig/statsig'
import {logger} from '#/logger' import {logger} from '#/logger'
import {Shadow} from '#/state/cache/types' import {type Shadow} from '#/state/cache/types'
import {useProfileFollowMutationQueue} from '#/state/queries/profile' import {useProfileFollowMutationQueue} from '#/state/queries/profile'
import {useRequireAuth} from '#/state/session' import {useRequireAuth} from '#/state/session'
import * as Toast from '#/view/com/util/Toast' import * as Toast from '#/view/com/util/Toast'
import * as bsky from '#/types/bsky' import type * as bsky from '#/types/bsky'
export function useFollowMethods({ export function useFollowMethods({
profile, profile,
+1 -1
View File
@@ -1,7 +1,7 @@
import React from 'react' import React from 'react'
import Svg, {Path} from 'react-native-svg' import Svg, {Path} from 'react-native-svg'
import {Props, useCommonSVGProps} from '#/components/icons/common' import {type Props, useCommonSVGProps} from '#/components/icons/common'
export const IconTemplate_Stroke2_Corner0_Rounded = React.forwardRef( export const IconTemplate_Stroke2_Corner0_Rounded = React.forwardRef(
function LogoImpl(props: Props, ref) { function LogoImpl(props: Props, ref) {
@@ -8,7 +8,7 @@ import {useAgent, useSession} from '#/state/session'
import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {atoms as a, useBreakpoints, useTheme} from '#/alf'
import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {Button, ButtonIcon, ButtonText} from '#/components/Button'
import * as Dialog from '#/components/Dialog' import * as Dialog from '#/components/Dialog'
import {DialogControlProps} from '#/components/Dialog' import {type DialogControlProps} from '#/components/Dialog'
import {Divider} from '#/components/Divider' import {Divider} from '#/components/Divider'
import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Resend} from '#/components/icons/ArrowRotateCounterClockwise' import {ArrowRotateCounterClockwise_Stroke2_Corner0_Rounded as Resend} from '#/components/icons/ArrowRotateCounterClockwise'
import {useIntentDialogs} from '#/components/intents/IntentDialogs' import {useIntentDialogs} from '#/components/intents/IntentDialogs'
+8 -3
View File
@@ -1,11 +1,16 @@
import {StyleProp, View, ViewStyle} from 'react-native' import {type StyleProp, View, type ViewStyle} from 'react-native'
import {AppBskyFeedDefs, ComAtprotoLabelDefs} from '@atproto/api' import {type AppBskyFeedDefs, type ComAtprotoLabelDefs} from '@atproto/api'
import {msg, Plural, Trans} from '@lingui/macro' import {msg, Plural, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {useSession} from '#/state/session' import {useSession} from '#/state/session'
import {atoms as a} from '#/alf' import {atoms as a} from '#/alf'
import {Button, ButtonIcon, ButtonSize, ButtonText} from '#/components/Button' import {
Button,
ButtonIcon,
type ButtonSize,
ButtonText,
} from '#/components/Button'
import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo' import {CircleInfo_Stroke2_Corner0_Rounded as CircleInfo} from '#/components/icons/CircleInfo'
import { import {
LabelsOnMeDialog, LabelsOnMeDialog,
@@ -1,6 +1,6 @@
import React from 'react' import React from 'react'
import {View} from 'react-native' import {View} from 'react-native'
import {ComAtprotoLabelDefs, ComAtprotoModerationDefs} from '@atproto/api' import {type ComAtprotoLabelDefs, ComAtprotoModerationDefs} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {useMutation} from '@tanstack/react-query' import {useMutation} from '@tanstack/react-query'
@@ -1,5 +1,5 @@
import {View} from 'react-native' import {View} from 'react-native'
import {ModerationCause} from '@atproto/api' import {type ModerationCause} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
@@ -12,7 +12,7 @@ import {useSession} from '#/state/session'
import {atoms as a, useGutters, useTheme} from '#/alf' import {atoms as a, useGutters, useTheme} from '#/alf'
import * as Dialog from '#/components/Dialog' import * as Dialog from '#/components/Dialog'
import {InlineLinkText} from '#/components/Link' import {InlineLinkText} from '#/components/Link'
import {AppModerationCause} from '#/components/Pills' import {type AppModerationCause} from '#/components/Pills'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'
export {useDialogControl as useModerationDetailsDialogControl} from '#/components/Dialog' export {useDialogControl as useModerationDetailsDialogControl} from '#/components/Dialog'
+2 -2
View File
@@ -1,5 +1,5 @@
import {StyleProp, ViewStyle} from 'react-native' import {type StyleProp, type ViewStyle} from 'react-native'
import {ModerationCause, ModerationUI} from '@atproto/api' import {type ModerationCause, type ModerationUI} from '@atproto/api'
import {getModerationCauseKey, unique} from '#/lib/moderation' import {getModerationCauseKey, unique} from '#/lib/moderation'
import * as Pills from '#/components/Pills' import * as Pills from '#/components/Pills'
@@ -1,5 +1,5 @@
import {StyleProp, ViewStyle} from 'react-native' import {type StyleProp, type ViewStyle} from 'react-native'
import {ModerationDecision} from '@atproto/api' import {type ModerationDecision} from '@atproto/api'
import {getModerationCauseKey, unique} from '#/lib/moderation' import {getModerationCauseKey, unique} from '#/lib/moderation'
import * as Pills from '#/components/Pills' import * as Pills from '#/components/Pills'
@@ -1,7 +1,7 @@
import { import {
$Typed, type $Typed,
ChatBskyConvoDefs, type ChatBskyConvoDefs,
ComAtprotoModerationCreateReport, type ComAtprotoModerationCreateReport,
} from '@atproto/api' } from '@atproto/api'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
@@ -9,8 +9,8 @@ import {useMutation} from '@tanstack/react-query'
import {logger} from '#/logger' import {logger} from '#/logger'
import {useAgent} from '#/state/session' import {useAgent} from '#/state/session'
import {ReportState} from './state' import {type ReportState} from './state'
import {ParsedReportSubject} from './types' import {type ParsedReportSubject} from './types'
export function useSubmitReportMutation() { export function useSubmitReportMutation() {
const {_} = useLingui() const {_} = useLingui()
@@ -2,7 +2,7 @@ import {useMemo} from 'react'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {ParsedReportSubject} from './types' import {type ParsedReportSubject} from './types'
export function useCopyForSubject(subject: ParsedReportSubject) { export function useCopyForSubject(subject: ParsedReportSubject) {
const {_} = useLingui() const {_} = useLingui()
@@ -1,6 +1,6 @@
import {AppBskyLabelerDefs, ComAtprotoModerationDefs} from '@atproto/api' import {type AppBskyLabelerDefs, ComAtprotoModerationDefs} from '@atproto/api'
import {ReportOption} from './utils/useReportOptions' import {type ReportOption} from './utils/useReportOptions'
export type ReportState = { export type ReportState = {
selectedOption?: ReportOption selectedOption?: ReportOption
@@ -1,12 +1,12 @@
import { import {
$Typed, type $Typed,
AppBskyActorDefs, type AppBskyActorDefs,
AppBskyFeedDefs, type AppBskyFeedDefs,
AppBskyGraphDefs, type AppBskyGraphDefs,
ChatBskyConvoDefs, type ChatBskyConvoDefs,
} from '@atproto/api' } from '@atproto/api'
import * as Dialog from '#/components/Dialog' import type * as Dialog from '#/components/Dialog'
export type ReportSubject = export type ReportSubject =
| $Typed<AppBskyActorDefs.ProfileViewBasic> | $Typed<AppBskyActorDefs.ProfileViewBasic>
@@ -6,8 +6,8 @@ import {
} from '@atproto/api' } from '@atproto/api'
import { import {
ParsedReportSubject, type ParsedReportSubject,
ReportSubject, type ReportSubject,
} from '#/components/moderation/ReportDialog/types' } from '#/components/moderation/ReportDialog/types'
import * as bsky from '#/types/bsky' import * as bsky from '#/types/bsky'
+4 -4
View File
@@ -1,18 +1,18 @@
import React from 'react' import React from 'react'
import { import {
StyleProp, type StyleProp,
TouchableWithoutFeedback, TouchableWithoutFeedback,
View, View,
ViewStyle, type ViewStyle,
} from 'react-native' } from 'react-native'
import {ModerationUI} from '@atproto/api' import {type ModerationUI} from '@atproto/api'
import {msg, Trans} from '@lingui/macro' import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {useNavigation} from '@react-navigation/native' import {useNavigation} from '@react-navigation/native'
import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries'
import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription' import {useModerationCauseDescription} from '#/lib/moderation/useModerationCauseDescription'
import {NavigationProp} from '#/lib/routes/types' import {type NavigationProp} from '#/lib/routes/types'
import {CenteredView} from '#/view/com/util/Views' import {CenteredView} from '#/view/com/util/Views'
import {atoms as a, useTheme, web} from '#/alf' import {atoms as a, useTheme, web} from '#/alf'
import {Button, ButtonText} from '#/components/Button' import {Button, ButtonText} from '#/components/Button'
+3 -3
View File
@@ -1,6 +1,6 @@
import { import {
AppBskyFeedDefs, type AppBskyFeedDefs,
AppBskyFeedGetFeed as GetCustomFeed, type AppBskyFeedGetFeed as GetCustomFeed,
BskyAgent, BskyAgent,
jsonStringToLex, jsonStringToLex,
} from '@atproto/api' } from '@atproto/api'
@@ -9,7 +9,7 @@ import {
getAppLanguageAsContentLanguage, getAppLanguageAsContentLanguage,
getContentLanguages, getContentLanguages,
} from '#/state/preferences/languages' } from '#/state/preferences/languages'
import {FeedAPI, FeedAPIResponse} from './types' import {type FeedAPI, type FeedAPIResponse} from './types'
import {createBskyTopicsHeader, isBlueskyOwnedFeed} from './utils' import {createBskyTopicsHeader, isBlueskyOwnedFeed} from './utils'
export class CustomFeedAPI implements FeedAPI { export class CustomFeedAPI implements FeedAPI {
+2 -2
View File
@@ -1,6 +1,6 @@
import {AppBskyFeedDefs, BskyAgent} from '@atproto/api' import {type AppBskyFeedDefs, type BskyAgent} from '@atproto/api'
import {FeedAPI, FeedAPIResponse} from './types' import {type FeedAPI, type FeedAPIResponse} from './types'
export class FollowingFeedAPI implements FeedAPI { export class FollowingFeedAPI implements FeedAPI {
agent: BskyAgent agent: BskyAgent
+4 -4
View File
@@ -1,10 +1,10 @@
import { import {
AppBskyFeedDefs, type AppBskyFeedDefs,
AppBskyFeedGetActorLikes as GetActorLikes, type AppBskyFeedGetActorLikes as GetActorLikes,
BskyAgent, type BskyAgent,
} from '@atproto/api' } from '@atproto/api'
import {FeedAPI, FeedAPIResponse} from './types' import {type FeedAPI, type FeedAPIResponse} from './types'
export class LikesFeedAPI implements FeedAPI { export class LikesFeedAPI implements FeedAPI {
agent: BskyAgent agent: BskyAgent
+12 -4
View File
@@ -1,14 +1,22 @@
import {AppBskyFeedDefs, AppBskyFeedGetTimeline, BskyAgent} from '@atproto/api' import {
type AppBskyFeedDefs,
type AppBskyFeedGetTimeline,
type BskyAgent,
} from '@atproto/api'
import shuffle from 'lodash.shuffle' import shuffle from 'lodash.shuffle'
import {bundleAsync} from '#/lib/async/bundle' import {bundleAsync} from '#/lib/async/bundle'
import {timeout} from '#/lib/async/timeout' import {timeout} from '#/lib/async/timeout'
import {feedUriToHref} from '#/lib/strings/url-helpers' import {feedUriToHref} from '#/lib/strings/url-helpers'
import {getContentLanguages} from '#/state/preferences/languages' import {getContentLanguages} from '#/state/preferences/languages'
import {FeedParams} from '#/state/queries/post-feed' import {type FeedParams} from '#/state/queries/post-feed'
import {FeedTuner} from '../feed-manip' import {FeedTuner} from '../feed-manip'
import {FeedTunerFn} from '../feed-manip' import {type FeedTunerFn} from '../feed-manip'
import {FeedAPI, FeedAPIResponse, ReasonFeedSource} from './types' import {
type FeedAPI,
type FeedAPIResponse,
type ReasonFeedSource,
} from './types'
import {createBskyTopicsHeader, isBlueskyOwnedFeed} from './utils' import {createBskyTopicsHeader, isBlueskyOwnedFeed} from './utils'
const REQUEST_WAIT_MS = 500 // 500ms const REQUEST_WAIT_MS = 500 // 500ms
+1 -1
View File
@@ -1,4 +1,4 @@
import {AppBskyFeedDefs} from '@atproto/api' import {type AppBskyFeedDefs} from '@atproto/api'
export interface FeedAPIResponse { export interface FeedAPIResponse {
cursor?: string cursor?: string
+1 -1
View File
@@ -2,7 +2,7 @@ import {AtUri} from '@atproto/api'
import {BSKY_FEED_OWNER_DIDS} from '#/lib/constants' import {BSKY_FEED_OWNER_DIDS} from '#/lib/constants'
import {isWeb} from '#/platform/detection' import {isWeb} from '#/platform/detection'
import {UsePreferencesQueryResponse} from '#/state/queries/preferences' import {type UsePreferencesQueryResponse} from '#/state/queries/preferences'
let debugTopics = '' let debugTopics = ''
if (isWeb && typeof window !== 'undefined') { if (isWeb && typeof window !== 'undefined') {
+1 -1
View File
@@ -1,5 +1,5 @@
import {copyAsync} from 'expo-file-system' import {copyAsync} from 'expo-file-system'
import {BskyAgent, ComAtprotoRepoUploadBlob} from '@atproto/api' import {type BskyAgent, type ComAtprotoRepoUploadBlob} from '@atproto/api'
import {safeDeleteAsync} from '#/lib/media/manip' import {safeDeleteAsync} from '#/lib/media/manip'
+1 -1
View File
@@ -1,4 +1,4 @@
import {BskyAgent, ComAtprotoRepoUploadBlob} from '@atproto/api' import {type BskyAgent, type ComAtprotoRepoUploadBlob} from '@atproto/api'
/** /**
* @note It is recommended, on web, to use the `file` instance of the file * @note It is recommended, on web, to use the `file` instance of the file
+1 -1
View File
@@ -1,4 +1,4 @@
import {ImageRequireSource} from 'react-native' import {type ImageRequireSource} from 'react-native'
export const DEF_AVATAR: ImageRequireSource = require('../../assets/default-avatar.png') export const DEF_AVATAR: ImageRequireSource = require('../../assets/default-avatar.png')
export const CLOUD_SPLASH: ImageRequireSource = require('../../assets/splash.png') export const CLOUD_SPLASH: ImageRequireSource = require('../../assets/splash.png')
+1 -1
View File
@@ -1,4 +1,4 @@
import {ImageRequireSource} from 'react-native' import {type ImageRequireSource} from 'react-native'
// @ts-ignore we need to pretend -prf // @ts-ignore we need to pretend -prf
export const DEF_AVATAR: ImageRequireSource = {uri: '/img/default-avatar.png'} export const DEF_AVATAR: ImageRequireSource = {uri: '/img/default-avatar.png'}
@@ -1,4 +1,4 @@
import React from 'react' import type React from 'react'
export function GestureActionView({children}: {children: React.ReactNode}) { export function GestureActionView({children}: {children: React.ReactNode}) {
return children return children
+6 -1
View File
@@ -1,4 +1,9 @@
import {Pressable, PressableProps, StyleProp, ViewStyle} from 'react-native' import {
Pressable,
type PressableProps,
type StyleProp,
type ViewStyle,
} from 'react-native'
import Animated, { import Animated, {
cancelAnimation, cancelAnimation,
useAnimatedStyle, useAnimatedStyle,
+2 -2
View File
@@ -4,11 +4,11 @@ import {useLingui} from '@lingui/react'
import {logger} from '#/logger' import {logger} from '#/logger'
import {isWeb} from '#/platform/detection' import {isWeb} from '#/platform/detection'
import {SessionAccount, useSessionApi} from '#/state/session' import {type SessionAccount, useSessionApi} from '#/state/session'
import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {useLoggedOutViewControls} from '#/state/shell/logged-out'
import * as Toast from '#/view/com/util/Toast' import * as Toast from '#/view/com/util/Toast'
import {logEvent} from '../statsig/statsig' import {logEvent} from '../statsig/statsig'
import {LogEvents} from '../statsig/statsig' import {type LogEvents} from '../statsig/statsig'
export function useAccountSwitcher() { export function useAccountSwitcher() {
const [pendingDid, setPendingDid] = useState<string | null>(null) const [pendingDid, setPendingDid] = useState<string | null>(null)
+1 -1
View File
@@ -1,6 +1,6 @@
import {StackActions, useNavigation} from '@react-navigation/native' import {StackActions, useNavigation} from '@react-navigation/native'
import {NavigationProp} from '#/lib/routes/types' import {type NavigationProp} from '#/lib/routes/types'
import {router} from '#/routes' import {router} from '#/routes'
export function useGoBack(onGoBack?: () => unknown) { export function useGoBack(onGoBack?: () => unknown) {
+1 -1
View File
@@ -1,7 +1,7 @@
import {useEffect} from 'react' import {useEffect} from 'react'
import {useNavigation} from '@react-navigation/native' import {useNavigation} from '@react-navigation/native'
import {NavigationProp} from '#/lib/routes/types' import {type NavigationProp} from '#/lib/routes/types'
import {bskyTitle} from '#/lib/strings/headings' import {bskyTitle} from '#/lib/strings/headings'
import {useUnreadNotifications} from '#/state/queries/notifications/unread' import {useUnreadNotifications} from '#/state/queries/notifications/unread'
+1 -1
View File
@@ -1,5 +1,5 @@
import {useCallback} from 'react' import {useCallback} from 'react'
import {I18n} from '@lingui/core' import {type I18n} from '@lingui/core'
import {defineMessage, msg, plural} from '@lingui/macro' import {defineMessage, msg, plural} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
import {differenceInSeconds} from 'date-fns' import {differenceInSeconds} from 'date-fns'
+1 -1
View File
@@ -1,5 +1,5 @@
import {useEffect, useMemo, useState} from 'react' import {useEffect, useMemo, useState} from 'react'
import {EventArg, useNavigation} from '@react-navigation/core' import {type EventArg, useNavigation} from '@react-navigation/core'
if ('scrollRestoration' in history) { if ('scrollRestoration' in history) {
// Tell the brower not to mess with the scroll. // Tell the brower not to mess with the scroll.
+2 -2
View File
@@ -1,8 +1,8 @@
import {ImagePickerAsset} from 'expo-image-picker' import {type ImagePickerAsset} from 'expo-image-picker'
import {VIDEO_MAX_SIZE} from '#/lib/constants' import {VIDEO_MAX_SIZE} from '#/lib/constants'
import {VideoTooLargeError} from '#/lib/media/video/errors' import {VideoTooLargeError} from '#/lib/media/video/errors'
import {CompressedVideo} from './types' import {type CompressedVideo} from './types'
// doesn't actually compress, converts to ArrayBuffer // doesn't actually compress, converts to ArrayBuffer
export async function compressVideo( export async function compressVideo(
+2 -2
View File
@@ -1,5 +1,5 @@
import {BskyAgent} from '@atproto/api' import {type BskyAgent} from '@atproto/api'
import {I18n} from '@lingui/core' import {type I18n} from '@lingui/core'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {VIDEO_SERVICE_DID} from '#/lib/constants' import {VIDEO_SERVICE_DID} from '#/lib/constants'
+3 -3
View File
@@ -1,12 +1,12 @@
import {createUploadTask, FileSystemUploadType} from 'expo-file-system' import {createUploadTask, FileSystemUploadType} from 'expo-file-system'
import {AppBskyVideoDefs, BskyAgent} from '@atproto/api' import {type AppBskyVideoDefs, type BskyAgent} from '@atproto/api'
import {I18n} from '@lingui/core' import {type I18n} from '@lingui/core'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {nanoid} from 'nanoid/non-secure' import {nanoid} from 'nanoid/non-secure'
import {AbortError} from '#/lib/async/cancelable' import {AbortError} from '#/lib/async/cancelable'
import {ServerError} from '#/lib/media/video/errors' import {ServerError} from '#/lib/media/video/errors'
import {CompressedVideo} from '#/lib/media/video/types' import {type CompressedVideo} from '#/lib/media/video/types'
import {getServiceAuthToken, getVideoUploadLimits} from './upload.shared' import {getServiceAuthToken, getVideoUploadLimits} from './upload.shared'
import {createVideoEndpointUrl, mimeToExt} from './util' import {createVideoEndpointUrl, mimeToExt} from './util'
+4 -4
View File
@@ -1,12 +1,12 @@
import {AppBskyVideoDefs} from '@atproto/api' import {type AppBskyVideoDefs} from '@atproto/api'
import {BskyAgent} from '@atproto/api' import {type BskyAgent} from '@atproto/api'
import {I18n} from '@lingui/core' import {type I18n} from '@lingui/core'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {nanoid} from 'nanoid/non-secure' import {nanoid} from 'nanoid/non-secure'
import {AbortError} from '#/lib/async/cancelable' import {AbortError} from '#/lib/async/cancelable'
import {ServerError} from '#/lib/media/video/errors' import {ServerError} from '#/lib/media/video/errors'
import {CompressedVideo} from '#/lib/media/video/types' import {type CompressedVideo} from '#/lib/media/video/types'
import {getServiceAuthToken, getVideoUploadLimits} from './upload.shared' import {getServiceAuthToken, getVideoUploadLimits} from './upload.shared'
import {createVideoEndpointUrl, mimeToExt} from './util' import {createVideoEndpointUrl, mimeToExt} from './util'
+1 -1
View File
@@ -1,6 +1,6 @@
import {AtpAgent} from '@atproto/api' import {AtpAgent} from '@atproto/api'
import {SupportedMimeTypes, VIDEO_SERVICE} from '#/lib/constants' import {type SupportedMimeTypes, VIDEO_SERVICE} from '#/lib/constants'
export const createVideoEndpointUrl = ( export const createVideoEndpointUrl = (
route: string, route: string,
+1 -1
View File
@@ -1,4 +1,4 @@
import * as bsky from '#/types/bsky' import type * as bsky from '#/types/bsky'
export function isBlockedOrBlocking(profile: bsky.profile.AnyProfileView) { export function isBlockedOrBlocking(profile: bsky.profile.AnyProfileView) {
return profile.viewer?.blockedBy || profile.viewer?.blocking return profile.viewer?.blockedBy || profile.viewer?.blocking
@@ -1,4 +1,7 @@
import {InterpretedLabelValueDefinition, LabelPreference} from '@atproto/api' import {
type InterpretedLabelValueDefinition,
type LabelPreference,
} from '@atproto/api'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
+4 -4
View File
@@ -1,7 +1,7 @@
import { import {
AppBskyLabelerDefs, type AppBskyLabelerDefs,
ComAtprotoLabelDefs, type ComAtprotoLabelDefs,
InterpretedLabelValueDefinition, type InterpretedLabelValueDefinition,
interpretLabelValueDefinition, interpretLabelValueDefinition,
LABELS, LABELS,
} from '@atproto/api' } from '@atproto/api'
@@ -9,7 +9,7 @@ import {useLingui} from '@lingui/react'
import * as bcp47Match from 'bcp-47-match' import * as bcp47Match from 'bcp-47-match'
import { import {
GlobalLabelStrings, type GlobalLabelStrings,
useGlobalLabelStrings, useGlobalLabelStrings,
} from '#/lib/moderation/useGlobalLabelStrings' } from '#/lib/moderation/useGlobalLabelStrings'
import {useLabelDefinitions} from '#/state/preferences' import {useLabelDefinitions} from '#/state/preferences'
+4 -3
View File
@@ -1,12 +1,13 @@
import React, {useRef, useState} from 'react' import {useRef, useState} from 'react'
import {AppState, AppStateStatus} from 'react-native' import {AppState, type AppStateStatus} from 'react-native'
import AsyncStorage from '@react-native-async-storage/async-storage' import AsyncStorage from '@react-native-async-storage/async-storage'
import {createAsyncStoragePersister} from '@tanstack/query-async-storage-persister' import {createAsyncStoragePersister} from '@tanstack/query-async-storage-persister'
import {focusManager, onlineManager, QueryClient} from '@tanstack/react-query' import {focusManager, onlineManager, QueryClient} from '@tanstack/react-query'
import { import {
PersistQueryClientProvider, PersistQueryClientProvider,
PersistQueryClientProviderProps, type PersistQueryClientProviderProps,
} from '@tanstack/react-query-persist-client' } from '@tanstack/react-query-persist-client'
import type React from 'react'
import {isNative} from '#/platform/detection' import {isNative} from '#/platform/detection'
import {listenNetworkConfirmed, listenNetworkLost} from '#/state/events' import {listenNetworkConfirmed, listenNetworkLost} from '#/state/events'
+2 -2
View File
@@ -1,6 +1,6 @@
import {NavigationProp} from '@react-navigation/native' import {type NavigationProp} from '@react-navigation/native'
import {RouteParams, State} from './types' import {type RouteParams, type State} from './types'
export function getRootNavigation<T extends {}>( export function getRootNavigation<T extends {}>(
nav: NavigationProp<T>, nav: NavigationProp<T>,
+1 -1
View File
@@ -1,4 +1,4 @@
import {ModerationUI} from '@atproto/api' import {type ModerationUI} from '@atproto/api'
// \u2705 = ✅ // \u2705 = ✅
// \u2713 = ✓ // \u2713 = ✓
+1 -1
View File
@@ -1,4 +1,4 @@
import {AppBskyRichtextFacet, RichText} from '@atproto/api' import {AppBskyRichtextFacet, type RichText} from '@atproto/api'
import {linkRequiresWarning} from './url-helpers' import {linkRequiresWarning} from './url-helpers'
+1 -1
View File
@@ -1,4 +1,4 @@
import {AppBskyRichtextFacet, RichText, UnicodeString} from '@atproto/api' import {AppBskyRichtextFacet, type RichText, UnicodeString} from '@atproto/api'
import {toShortUrl} from './url-helpers' import {toShortUrl} from './url-helpers'
+1 -1
View File
@@ -1,4 +1,4 @@
import {I18n} from '@lingui/core' import {type I18n} from '@lingui/core'
export function niceDate(i18n: I18n, date: number | string | Date) { export function niceDate(i18n: I18n, date: number | string | Date) {
const d = new Date(date) const d = new Date(date)
+1 -1
View File
@@ -4,7 +4,7 @@ import {tokens} from '#/alf'
import {darkPalette, dimPalette, lightPalette} from '#/alf/themes' import {darkPalette, dimPalette, lightPalette} from '#/alf/themes'
import {fontWeight} from '#/alf/tokens' import {fontWeight} from '#/alf/tokens'
import {colors} from './styles' import {colors} from './styles'
import type {Theme} from './ThemeContext' import {type Theme} from './ThemeContext'
export const defaultTheme: Theme = { export const defaultTheme: Theme = {
colorScheme: 'light', colorScheme: 'light',
+1 -1
View File
@@ -1,4 +1,4 @@
import {getLocales as defaultGetLocales, Locale} from 'expo-localization' import {getLocales as defaultGetLocales, type Locale} from 'expo-localization'
import {dedupArray} from '#/lib/functions' import {dedupArray} from '#/lib/functions'
+1 -1
View File
@@ -1,6 +1,6 @@
import React from 'react'
import {i18n} from '@lingui/core' import {i18n} from '@lingui/core'
import {I18nProvider as DefaultI18nProvider} from '@lingui/react' import {I18nProvider as DefaultI18nProvider} from '@lingui/react'
import type React from 'react'
import {useLocaleLanguage} from './i18n' import {useLocaleLanguage} from './i18n'
+1 -1
View File
@@ -1,6 +1,6 @@
import {expect, test} from '@jest/globals' import {expect, test} from '@jest/globals'
import {add, ConsoleTransportEntry, getEntries} from '#/logger/logDump' import {add, type ConsoleTransportEntry, getEntries} from '#/logger/logDump'
import {LogContext, LogLevel} from '#/logger/types' import {LogContext, LogLevel} from '#/logger/types'
test('works', () => { test('works', () => {
+1 -1
View File
@@ -1,4 +1,4 @@
import type {LogContext, LogLevel, Metadata} from '#/logger/types' import {type LogContext, type LogLevel, type Metadata} from '#/logger/types'
export type ConsoleTransportEntry = { export type ConsoleTransportEntry = {
id: string id: string
+1 -1
View File
@@ -1,5 +1,5 @@
import {debug, error, info, warn} from '#/logger/bitdrift/lib' import {debug, error, info, warn} from '#/logger/bitdrift/lib'
import {LogLevel, Transport} from '#/logger/types' import {LogLevel, type Transport} from '#/logger/types'
import {prepareMetadata} from '#/logger/util' import {prepareMetadata} from '#/logger/util'
const logFunctions = { const logFunctions = {
+1 -1
View File
@@ -1,6 +1,6 @@
import format from 'date-fns/format' import format from 'date-fns/format'
import {LogLevel, Transport} from '#/logger/types' import {LogLevel, type Transport} from '#/logger/types'
import {prepareMetadata} from '#/logger/util' import {prepareMetadata} from '#/logger/util'
import {isWeb} from '#/platform/detection' import {isWeb} from '#/platform/detection'
+1 -1
View File
@@ -1,4 +1,4 @@
import {LogLevel, Metadata, Serializable} from '#/logger/types' import {LogLevel, type Metadata, type Serializable} from '#/logger/types'
export const enabledLogLevels: { export const enabledLogLevels: {
[key in LogLevel]: LogLevel[] [key in LogLevel]: LogLevel[]
+1 -1
View File
@@ -6,7 +6,7 @@ import {useLingui} from '@lingui/react'
import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants' import {DISCOVER_SAVED_FEED, TIMELINE_SAVED_FEED} from '#/lib/constants'
import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences' import {useOverwriteSavedFeedsMutation} from '#/state/queries/preferences'
import {UsePreferencesQueryResponse} from '#/state/queries/preferences' import {type UsePreferencesQueryResponse} from '#/state/queries/preferences'
import {CenteredView} from '#/view/com/util/Views' import {CenteredView} from '#/view/com/util/Views'
import {atoms as a} from '#/alf' import {atoms as a} from '#/alf'
import {Button, ButtonIcon, ButtonText} from '#/components/Button' import {Button, ButtonIcon, ButtonText} from '#/components/Button'
+1 -1
View File
@@ -11,7 +11,7 @@ import {logger} from '#/logger'
import {RQKEY_ROOT as listQueryRoot} from '#/state/queries/list' import {RQKEY_ROOT as listQueryRoot} from '#/state/queries/list'
import {useListBlockMutation, useListMuteMutation} from '#/state/queries/list' import {useListBlockMutation, useListMuteMutation} from '#/state/queries/list'
import { import {
UsePreferencesQueryResponse, type UsePreferencesQueryResponse,
useRemoveFeedMutation, useRemoveFeedMutation,
} from '#/state/queries/preferences' } from '#/state/queries/preferences'
import {useSession} from '#/state/session' import {useSession} from '#/state/session'
+1 -1
View File
@@ -5,7 +5,7 @@ import {useLingui} from '@lingui/react'
import {logEvent} from '#/lib/statsig/statsig' import {logEvent} from '#/lib/statsig/statsig'
import {logger} from '#/logger' import {logger} from '#/logger'
import {SessionAccount, useSession, useSessionApi} from '#/state/session' import {type SessionAccount, useSession, useSessionApi} from '#/state/session'
import {useLoggedOutViewControls} from '#/state/shell/logged-out' import {useLoggedOutViewControls} from '#/state/shell/logged-out'
import * as Toast from '#/view/com/util/Toast' import * as Toast from '#/view/com/util/Toast'
import {atoms as a} from '#/alf' import {atoms as a} from '#/alf'
+1 -1
View File
@@ -1,5 +1,5 @@
import React from 'react'
import {type StyleProp, View, type ViewStyle} from 'react-native' import {type StyleProp, View, type ViewStyle} from 'react-native'
import type React from 'react'
import {atoms as a, useBreakpoints, useTheme} from '#/alf' import {atoms as a, useBreakpoints, useTheme} from '#/alf'
import {Text} from '#/components/Typography' import {Text} from '#/components/Typography'

Some files were not shown because too many files have changed in this diff Show More