diff --git a/src/components/Autocomplete/useAutocomplete/index.ts b/src/components/Autocomplete/useAutocomplete/index.ts index 1dc3100f37..b310876b84 100644 --- a/src/components/Autocomplete/useAutocomplete/index.ts +++ b/src/components/Autocomplete/useAutocomplete/index.ts @@ -1,8 +1,9 @@ import {useCallback, useMemo} from 'react' -import {moderateProfile, type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {keepPreviousData, useQuery} from '@tanstack/react-query' import {isJustAMute, moduiContainsHideableOffense} from '#/lib/moderation' +import {moderateProfile} from '#/lib/moderation/subjects' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {STALE} from '#/state/queries' import {DEFAULT_LOGGED_OUT_PREFERENCES} from '#/state/queries/preferences' diff --git a/src/components/AvatarBubbles.tsx b/src/components/AvatarBubbles.tsx index 49ac4d006f..9b59a2555f 100644 --- a/src/components/AvatarBubbles.tsx +++ b/src/components/AvatarBubbles.tsx @@ -8,8 +8,8 @@ import Animated, { withDelay, withTiming, } from 'react-native-reanimated' -import {moderateProfile} from '@atproto/api' +import {moderateProfile} from '#/lib/moderation/subjects' import {useMaybeProfileShadow} from '#/state/cache/profile-shadow' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useSession} from '#/state/session' diff --git a/src/components/AvatarStack.tsx b/src/components/AvatarStack.tsx index ae42a7470b..f98148f52c 100644 --- a/src/components/AvatarStack.tsx +++ b/src/components/AvatarStack.tsx @@ -1,6 +1,6 @@ import {View} from 'react-native' -import {moderateProfile} from '@atproto/api' +import {moderateProfile} from '#/lib/moderation/subjects' import {logger} from '#/logger' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useProfilesQuery} from '#/state/queries/profile' diff --git a/src/components/KnownFollowers.tsx b/src/components/KnownFollowers.tsx index 502b08252f..bda482c1c0 100644 --- a/src/components/KnownFollowers.tsx +++ b/src/components/KnownFollowers.tsx @@ -1,12 +1,10 @@ import {useRef} from 'react' import {View} from 'react-native' -import { - type AppBskyActorDefs, - moderateProfile, - type ModerationOpts, -} from '@atproto/api' +import {type AppBskyActorDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Plural, Trans, useLingui} from '@lingui/react/macro' +import {moderateProfile} from '#/lib/moderation/subjects' import {makeProfileLink} from '#/lib/routes/links' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {UserAvatar} from '#/view/com/util/UserAvatar' diff --git a/src/components/ListCard.tsx b/src/components/ListCard.tsx index 805c365566..021bf05240 100644 --- a/src/components/ListCard.tsx +++ b/src/components/ListCard.tsx @@ -1,16 +1,13 @@ import {useEffect, useMemo} from 'react' import {View} from 'react-native' -import { - type AppBskyGraphDefs, - AtUri, - moderateUserList, - type ModerationUI, -} from '@atproto/api' +import {type AppBskyGraphDefs, AtUri} from '@atproto/api' +import {type ModerationUI} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' import {useQueryClient} from '@tanstack/react-query' +import {moderateUserList} from '#/lib/moderation/subjects' import {sanitizeHandle} from '#/lib/strings/handles' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {precacheList} from '#/state/queries/feed' diff --git a/src/components/NewskieDialog.tsx b/src/components/NewskieDialog.tsx index 5b17ec4451..7df67d80dc 100644 --- a/src/components/NewskieDialog.tsx +++ b/src/components/NewskieDialog.tsx @@ -1,6 +1,6 @@ import {useMemo, useState} from 'react' import {View} from 'react-native' -import {type AppBskyActorDefs, moderateProfile} from '@atproto/api' +import {type AppBskyActorDefs} from '@atproto/api' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' @@ -8,6 +8,7 @@ import {differenceInSeconds} from 'date-fns' import {HITSLOP_10} from '#/lib/constants' import {useGetTimeAgo} from '#/lib/hooks/useTimeAgo' +import {moderateProfile} from '#/lib/moderation/subjects' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useSession} from '#/state/session' diff --git a/src/components/Post/Embed/FeedEmbed.tsx b/src/components/Post/Embed/FeedEmbed.tsx index a726c313e1..8871a63b59 100644 --- a/src/components/Post/Embed/FeedEmbed.tsx +++ b/src/components/Post/Embed/FeedEmbed.tsx @@ -1,6 +1,6 @@ import {useMemo} from 'react' -import {moderateFeedGenerator} from '@atproto/api' +import {moderateFeedGenerator} from '#/lib/moderation/subjects' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {atoms as a, useTheme} from '#/alf' import * as FeedCard from '#/components/FeedCard' diff --git a/src/components/Post/Embed/ListEmbed.tsx b/src/components/Post/Embed/ListEmbed.tsx index 47c5b2c287..d6daca265c 100644 --- a/src/components/Post/Embed/ListEmbed.tsx +++ b/src/components/Post/Embed/ListEmbed.tsx @@ -1,6 +1,6 @@ import {useMemo} from 'react' -import {moderateUserList} from '@atproto/api' +import {moderateUserList} from '#/lib/moderation/subjects' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {atoms as a, useTheme} from '#/alf' import * as ListCard from '#/components/ListCard' diff --git a/src/components/Post/Embed/index.tsx b/src/components/Post/Embed/index.tsx index 0b143a0df3..3c31bd72a4 100644 --- a/src/components/Post/Embed/index.tsx +++ b/src/components/Post/Embed/index.tsx @@ -5,12 +5,12 @@ import { type AppBskyFeedDefs, AppBskyFeedPost, AtUri, - moderatePost, } from '@atproto/api' import {RichText as RichTextAPI} from '@bsky.app/sdk/richtext' import {Trans} from '@lingui/react/macro' import {useQueryClient} from '@tanstack/react-query' +import {moderatePost} from '#/lib/moderation/subjects' import {makeProfileLink} from '#/lib/routes/links' import {asSdkFacets} from '#/lib/strings/rich-text-helpers' import {getChatInviteCodeFromUrl} from '#/lib/strings/url-helpers' diff --git a/src/components/Post/Embed/types.ts b/src/components/Post/Embed/types.ts index 0ef5569c7d..41031fdf05 100644 --- a/src/components/Post/Embed/types.ts +++ b/src/components/Post/Embed/types.ts @@ -1,5 +1,6 @@ import {type StyleProp, type ViewStyle} from 'react-native' -import {type AppBskyFeedDefs, type ModerationDecision} from '@atproto/api' +import {type AppBskyFeedDefs} from '@atproto/api' +import {type ModerationDecision} from '@bsky.app/sdk/moderation' export enum PostEmbedViewContext { ThreadHighlighted = 'ThreadHighlighted', diff --git a/src/components/PostControls/ShareMenu/RecentChats.tsx b/src/components/PostControls/ShareMenu/RecentChats.tsx index bab3cbfded..94086c420d 100644 --- a/src/components/PostControls/ShareMenu/RecentChats.tsx +++ b/src/components/PostControls/ShareMenu/RecentChats.tsx @@ -1,9 +1,6 @@ import {ScrollView, View} from 'react-native' -import { - type ChatBskyActorDefs, - moderateProfile, - type ModerationOpts, -} from '@atproto/api' +import {type ChatBskyActorDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' @@ -11,6 +8,7 @@ import {useNavigation} from '@react-navigation/native' import {isBlockedOrBlocking, isMuted} from '#/lib/moderation/blocked-and-muted' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {type NavigationProp} from '#/lib/routes/types' import {useProfileShadow} from '#/state/cache/profile-shadow' import {useModerationOpts} from '#/state/preferences/moderation-opts' diff --git a/src/components/ProfileCard.tsx b/src/components/ProfileCard.tsx index 8508fecc71..cdc8d194a1 100644 --- a/src/components/ProfileCard.tsx +++ b/src/components/ProfileCard.tsx @@ -6,11 +6,12 @@ import { View, type ViewStyle, } from 'react-native' -import {moderateProfile, type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {RichText as RichTextApi} from '@bsky.app/sdk/richtext' import {useLingui} from '@lingui/react/macro' import {getModerationCauseKey} from '#/lib/moderation' +import {moderateProfile} from '#/lib/moderation/subjects' import {makeProfileLink} from '#/lib/routes/links' import {forceLTR} from '#/lib/strings/bidi' import {NON_BREAKING_SPACE} from '#/lib/strings/constants' diff --git a/src/components/ProfileHoverCard/index.web.tsx b/src/components/ProfileHoverCard/index.web.tsx index 46dade016b..74dbb33f28 100644 --- a/src/components/ProfileHoverCard/index.web.tsx +++ b/src/components/ProfileHoverCard/index.web.tsx @@ -1,16 +1,14 @@ import {memo, useCallback, useEffect, useMemo, useReducer, useRef} from 'react' import {View} from 'react-native' -import { - type AppBskyActorDefs, - moderateProfile, - type ModerationOpts, -} from '@atproto/api' +import {type AppBskyActorDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {flip, offset, shift, size, useFloating} from '@floating-ui/react-dom' import {msg, plural} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' import {getModerationCauseKey} from '#/lib/moderation' +import {moderateProfile} from '#/lib/moderation/subjects' import {makeProfileLink} from '#/lib/routes/links' import {type NavigationProp} from '#/lib/routes/types' import {sanitizeDisplayName} from '#/lib/strings/display-names' diff --git a/src/components/ProgressGuide/FollowDialog.tsx b/src/components/ProgressGuide/FollowDialog.tsx index 0ee575fdec..3ff4569964 100644 --- a/src/components/ProgressGuide/FollowDialog.tsx +++ b/src/components/ProgressGuide/FollowDialog.tsx @@ -1,6 +1,6 @@ import {memo, useCallback, useEffect, useMemo, useRef, useState} from 'react' import {TextInput, View, type ViewToken} from 'react-native' -import {type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Trans, useLingui} from '@lingui/react/macro' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' diff --git a/src/components/StarterPack/Main/ProfilesList.tsx b/src/components/StarterPack/Main/ProfilesList.tsx index c087f5fa46..dea87c8443 100644 --- a/src/components/StarterPack/Main/ProfilesList.tsx +++ b/src/components/StarterPack/Main/ProfilesList.tsx @@ -4,8 +4,8 @@ import { type AppBskyActorDefs, type AppBskyGraphGetList, AtUri, - type ModerationOpts, } from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import { type InfiniteData, type UseInfiniteQueryResult, diff --git a/src/components/StarterPack/Wizard/WizardEditListDialog.tsx b/src/components/StarterPack/Wizard/WizardEditListDialog.tsx index d0c5d546db..498300491d 100644 --- a/src/components/StarterPack/Wizard/WizardEditListDialog.tsx +++ b/src/components/StarterPack/Wizard/WizardEditListDialog.tsx @@ -1,11 +1,8 @@ import {useRef} from 'react' import {type ListRenderItemInfo} from 'react-native' import {View} from 'react-native' -import { - type AppBskyActorDefs, - type AppBskyFeedDefs, - type ModerationOpts, -} from '@atproto/api' +import {type AppBskyActorDefs, type AppBskyFeedDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' diff --git a/src/components/StarterPack/Wizard/WizardListCard.tsx b/src/components/StarterPack/Wizard/WizardListCard.tsx index b48c656a08..353fd77b13 100644 --- a/src/components/StarterPack/Wizard/WizardListCard.tsx +++ b/src/components/StarterPack/Wizard/WizardListCard.tsx @@ -1,17 +1,12 @@ import {Keyboard, View} from 'react-native' -import { - type AppBskyActorDefs, - type AppBskyFeedDefs, - moderateFeedGenerator, - moderateProfile, - type ModerationOpts, - type ModerationUI, -} from '@atproto/api' +import {type AppBskyActorDefs, type AppBskyFeedDefs} from '@atproto/api' +import {type ModerationOpts, type ModerationUI} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' import {DISCOVER_FEED_URI, STARTER_PACK_MAX_SIZE} from '#/lib/constants' +import {moderateFeedGenerator, moderateProfile} from '#/lib/moderation/subjects' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' import {useSession} from '#/state/session' diff --git a/src/components/VideoPostCard.tsx b/src/components/VideoPostCard.tsx index ba3d83ec16..bb79fa6a78 100644 --- a/src/components/VideoPostCard.tsx +++ b/src/components/VideoPostCard.tsx @@ -7,8 +7,8 @@ import { AppBskyEmbedVideo, type AppBskyFeedDefs, AppBskyFeedPost, - type ModerationDecision, } from '@atproto/api' +import {type ModerationDecision} from '@bsky.app/sdk/moderation' import {useLingui} from '@lingui/react/macro' import {sanitizeHandle} from '#/lib/strings/handles' diff --git a/src/components/activity-notifications/SubscribeProfileButton.tsx b/src/components/activity-notifications/SubscribeProfileButton.tsx index ce9dcd05ae..ed05f8cba0 100644 --- a/src/components/activity-notifications/SubscribeProfileButton.tsx +++ b/src/components/activity-notifications/SubscribeProfileButton.tsx @@ -1,5 +1,5 @@ import {useCallback, useEffect, useState} from 'react' -import {type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Trans, useLingui} from '@lingui/react/macro' import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification' diff --git a/src/components/activity-notifications/SubscribeProfileDialog.tsx b/src/components/activity-notifications/SubscribeProfileDialog.tsx index 6731cb3038..51d6622407 100644 --- a/src/components/activity-notifications/SubscribeProfileDialog.tsx +++ b/src/components/activity-notifications/SubscribeProfileDialog.tsx @@ -1,11 +1,8 @@ import {useMemo, useState} from 'react' import {View} from 'react-native' -import { - type AppBskyNotificationDefs, - type ModerationOpts, - type Un$Typed, -} from '@atproto/api' +import {type AppBskyNotificationDefs, type Un$Typed} from '@atproto/api' import {type DidString} from '@atproto/syntax' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' diff --git a/src/components/contacts/screens/ViewMatches.tsx b/src/components/contacts/screens/ViewMatches.tsx index 0ef4711919..a659d8ae87 100644 --- a/src/components/contacts/screens/ViewMatches.tsx +++ b/src/components/contacts/screens/ViewMatches.tsx @@ -2,8 +2,8 @@ import {useCallback, useMemo, useRef, useState} from 'react' import {View} from 'react-native' import {useSafeAreaInsets} from 'react-native-safe-area-context' import * as SMS from 'expo-sms' -import {type ModerationOpts} from '@atproto/api' import {type DidString} from '@atproto/syntax' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Plural, Trans} from '@lingui/react/macro' diff --git a/src/components/dialogs/SearchablePeopleList.tsx b/src/components/dialogs/SearchablePeopleList.tsx index cf106684a4..221beb9350 100644 --- a/src/components/dialogs/SearchablePeopleList.tsx +++ b/src/components/dialogs/SearchablePeopleList.tsx @@ -7,10 +7,11 @@ import { useState, } from 'react' import {TextInput, View} from 'react-native' -import {moderateProfile, type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Plural, Trans, useLingui} from '@lingui/react/macro' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {sanitizeHandle} from '#/lib/strings/handles' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useActorAutocompleteQuery} from '#/state/queries/actor-autocomplete' diff --git a/src/components/dialogs/lists/ListAddRemoveUsersDialog.tsx b/src/components/dialogs/lists/ListAddRemoveUsersDialog.tsx index 8129e9bdb4..a8f04e2857 100644 --- a/src/components/dialogs/lists/ListAddRemoveUsersDialog.tsx +++ b/src/components/dialogs/lists/ListAddRemoveUsersDialog.tsx @@ -1,6 +1,7 @@ import {useCallback, useMemo} from 'react' import {View} from 'react-native' -import {type AppBskyGraphDefs, type ModerationOpts} from '@atproto/api' +import {type AppBskyGraphDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' diff --git a/src/components/dms/ActionsWrapper.tsx b/src/components/dms/ActionsWrapper.tsx index ce58dba31c..b9782949b6 100644 --- a/src/components/dms/ActionsWrapper.tsx +++ b/src/components/dms/ActionsWrapper.tsx @@ -1,5 +1,6 @@ import {View} from 'react-native' -import {type ChatBskyConvoDefs, type ModerationOpts} from '@atproto/api' +import {type ChatBskyConvoDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {useLingui} from '@lingui/react/macro' import {MessageContextMenu} from '#/components/dms/MessageContextMenu' diff --git a/src/components/dms/ActionsWrapper.web.tsx b/src/components/dms/ActionsWrapper.web.tsx index 8d67051535..0ef5503370 100644 --- a/src/components/dms/ActionsWrapper.web.tsx +++ b/src/components/dms/ActionsWrapper.web.tsx @@ -1,6 +1,7 @@ import {useCallback, useRef, useState} from 'react' import {Pressable, View} from 'react-native' -import {type ChatBskyConvoDefs, type ModerationOpts} from '@atproto/api' +import {type ChatBskyConvoDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {plural} from '@lingui/core/macro' import {useLingui} from '@lingui/react/macro' diff --git a/src/components/dms/BlockedByListDialog.tsx b/src/components/dms/BlockedByListDialog.tsx index 2532122087..2521168d79 100644 --- a/src/components/dms/BlockedByListDialog.tsx +++ b/src/components/dms/BlockedByListDialog.tsx @@ -1,6 +1,6 @@ import {Fragment} from 'react' import {View} from 'react-native' -import {type ModerationCause} from '@atproto/api' +import {type ModerationCause} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' diff --git a/src/components/dms/ChatProfileTabs.tsx b/src/components/dms/ChatProfileTabs.tsx index bac128c819..341d94392d 100644 --- a/src/components/dms/ChatProfileTabs.tsx +++ b/src/components/dms/ChatProfileTabs.tsx @@ -1,10 +1,10 @@ import {useCallback, useEffect} from 'react' import {type ScrollView, View} from 'react-native' import Animated, {useAnimatedRef, useSharedValue} from 'react-native-reanimated' -import {moderateProfile} from '@atproto/api' import {useLingui} from '@lingui/react/macro' import {HITSLOP_10} from '#/lib/constants' +import {moderateProfile} from '#/lib/moderation/subjects' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' import {useModerationOpts} from '#/state/preferences/moderation-opts' diff --git a/src/components/dms/ConvoMenu.tsx b/src/components/dms/ConvoMenu.tsx index 2eac8cdb3a..9aab1da8c9 100644 --- a/src/components/dms/ConvoMenu.tsx +++ b/src/components/dms/ConvoMenu.tsx @@ -1,6 +1,6 @@ import {memo, useCallback} from 'react' import {Keyboard, View} from 'react-native' -import {type ModerationCause} from '@atproto/api' +import {type ModerationCause} from '@bsky.app/sdk/moderation' import {Trans, useLingui} from '@lingui/react/macro' import {useNavigation} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' diff --git a/src/components/dms/InitiateChatFlow.tsx b/src/components/dms/InitiateChatFlow.tsx index 4e0e71c2f4..3a93b966b0 100644 --- a/src/components/dms/InitiateChatFlow.tsx +++ b/src/components/dms/InitiateChatFlow.tsx @@ -7,11 +7,12 @@ import { useState, } from 'react' import {LayoutAnimation, type TextInput, View} from 'react-native' -import {moderateProfile, type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Plural, Trans, useLingui} from '@lingui/react/macro' import {MAX_GROUP_NAME_GRAPHEME_LENGTH} from '#/lib/constants' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' import {isOverMaxGraphemeCount} from '#/lib/strings/helpers' diff --git a/src/components/dms/MessageContextMenu.tsx b/src/components/dms/MessageContextMenu.tsx index 90b8554b3c..0bfa156eed 100644 --- a/src/components/dms/MessageContextMenu.tsx +++ b/src/components/dms/MessageContextMenu.tsx @@ -2,7 +2,8 @@ import {memo, useCallback} from 'react' import {Platform} from 'react-native' import {type GestureType} from 'react-native-gesture-handler' import * as Clipboard from 'expo-clipboard' -import {type ChatBskyConvoDefs, type ModerationOpts} from '@atproto/api' +import {type ChatBskyConvoDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {RichText} from '@bsky.app/sdk/richtext' import {plural} from '@lingui/core/macro' import {useLingui} from '@lingui/react/macro' diff --git a/src/components/dms/MessageItem.tsx b/src/components/dms/MessageItem.tsx index 88a4571b2a..a835230db2 100644 --- a/src/components/dms/MessageItem.tsx +++ b/src/components/dms/MessageItem.tsx @@ -27,7 +27,6 @@ import { type ChatBskyActorDefs, ChatBskyConvoDefs, ChatBskyEmbedJoinLink, - moderateProfile, } from '@atproto/api' import {RichText as RichTextAPI} from '@bsky.app/sdk/richtext' import {plural} from '@lingui/core/macro' @@ -36,6 +35,7 @@ import {useQueryClient} from '@tanstack/react-query' import {isBlockedOrBlocking} from '#/lib/moderation/blocked-and-muted' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {sanitizeHandle} from '#/lib/strings/handles' import {asSdkFacets} from '#/lib/strings/rich-text-helpers' import {useMaybeProfileShadow} from '#/state/cache/profile-shadow' diff --git a/src/components/dms/MessagesListBlockedFooter.tsx b/src/components/dms/MessagesListBlockedFooter.tsx index 1fbee421b0..f239a66aa4 100644 --- a/src/components/dms/MessagesListBlockedFooter.tsx +++ b/src/components/dms/MessagesListBlockedFooter.tsx @@ -1,6 +1,6 @@ import {useCallback, useMemo} from 'react' import {View} from 'react-native' -import {type ModerationDecision} from '@atproto/api' +import {type ModerationDecision} from '@bsky.app/sdk/moderation' import {Trans, useLingui} from '@lingui/react/macro' import {useProfileShadow} from '#/state/cache/profile-shadow' diff --git a/src/components/dms/MessagesListHeader.tsx b/src/components/dms/MessagesListHeader.tsx index dc42965dac..75a534b790 100644 --- a/src/components/dms/MessagesListHeader.tsx +++ b/src/components/dms/MessagesListHeader.tsx @@ -1,9 +1,10 @@ import {useMemo} from 'react' import {View} from 'react-native' -import {moderateProfile, type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {useLingui} from '@lingui/react/macro' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {makeProfileLink} from '#/lib/routes/links' import {sanitizeHandle} from '#/lib/strings/handles' import {useProfileShadow} from '#/state/cache/profile-shadow' diff --git a/src/components/dms/components/GroupChatProfileCard.tsx b/src/components/dms/components/GroupChatProfileCard.tsx index 1d704766c2..63fbbbd20c 100644 --- a/src/components/dms/components/GroupChatProfileCard.tsx +++ b/src/components/dms/components/GroupChatProfileCard.tsx @@ -1,7 +1,8 @@ import {View} from 'react-native' -import {moderateProfile, type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Trans} from '@lingui/react/macro' +import {moderateProfile} from '#/lib/moderation/subjects' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' import {atoms as a, useTheme} from '#/alf' diff --git a/src/components/dms/util.ts b/src/components/dms/util.ts index ce0d30a8fd..7347d1512d 100644 --- a/src/components/dms/util.ts +++ b/src/components/dms/util.ts @@ -1,13 +1,9 @@ -import { - type $Typed, - ChatBskyActorDefs, - ChatBskyConvoDefs, - moderateProfile, - type ModerationOpts, -} from '@atproto/api' +import {type $Typed, ChatBskyActorDefs, ChatBskyConvoDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {EMOJI_REACTION_LIMIT} from '#/lib/constants' import {isBlockedOrBlocking} from '#/lib/moderation/blocked-and-muted' +import {moderateProfile} from '#/lib/moderation/subjects' import {logger} from '#/logger' import {type Shadow} from '#/state/cache/profile-shadow' import {type ConvoState, ConvoStatus} from '#/state/messages/convo/types' diff --git a/src/components/images/Gallery/maybeApplyGalleryOffsetStyles.ts b/src/components/images/Gallery/maybeApplyGalleryOffsetStyles.ts index eea54b5ed9..5989497c12 100644 --- a/src/components/images/Gallery/maybeApplyGalleryOffsetStyles.ts +++ b/src/components/images/Gallery/maybeApplyGalleryOffsetStyles.ts @@ -4,9 +4,8 @@ import { AppBskyEmbedRecordWithMedia, type AppBskyFeedDefs, AppBskyFeedPost, - type ModerationCause, - type ModerationUI, } from '@atproto/api' +import {type ModerationCause, type ModerationUI} from '@bsky.app/sdk/moderation' import {unique} from '#/lib/moderation' import {type AppModerationCause} from '#/components/Pills' diff --git a/src/components/intents/GroupChatJoinDialog.tsx b/src/components/intents/GroupChatJoinDialog.tsx index 53782ae271..b2ec975503 100644 --- a/src/components/intents/GroupChatJoinDialog.tsx +++ b/src/components/intents/GroupChatJoinDialog.tsx @@ -1,11 +1,12 @@ import {useEffect} from 'react' import {View} from 'react-native' -import {ChatBskyGroupDefs, moderateProfile} from '@atproto/api' +import {ChatBskyGroupDefs} from '@atproto/api' import {Plural, Trans, useLingui} from '@lingui/react/macro' import {useNavigation} from '@react-navigation/native' import {useQueryClient} from '@tanstack/react-query' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {useCallOnce} from '#/lib/once' import {makeProfileLink} from '#/lib/routes/links' import {type NavigationProp} from '#/lib/routes/types' diff --git a/src/components/interstitials/FeedTrendingTopics.tsx b/src/components/interstitials/FeedTrendingTopics.tsx index 4d45001f1c..a50b8652d3 100644 --- a/src/components/interstitials/FeedTrendingTopics.tsx +++ b/src/components/interstitials/FeedTrendingTopics.tsx @@ -1,8 +1,9 @@ import {useMemo} from 'react' import {Pressable, View} from 'react-native' -import {type AppBskyUnspeccedDefs, moderateProfile} from '@atproto/api' +import {type AppBskyUnspeccedDefs} from '@atproto/api' import {Plural, Trans, useLingui} from '@lingui/react/macro' +import {moderateProfile} from '#/lib/moderation/subjects' import {useModerationOpts} from '#/state/preferences/moderation-opts' import { useTrendingSettings, diff --git a/src/screens/Messages/Conversation.tsx b/src/screens/Messages/Conversation.tsx index 1e2f4037a8..503248754c 100644 --- a/src/screens/Messages/Conversation.tsx +++ b/src/screens/Messages/Conversation.tsx @@ -1,7 +1,7 @@ import {useCallback, useEffect, useMemo, useState} from 'react' import {type LayoutChangeEvent, View} from 'react-native' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {ChatBskyConvoDefs, moderateProfile} from '@atproto/api' +import {ChatBskyConvoDefs} from '@atproto/api' import { ScrollEdgeEffect, ScrollEdgeEffectProvider, @@ -18,6 +18,7 @@ import {type NativeStackScreenProps} from '@react-navigation/native-stack' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {useViewportZoomLock} from '#/lib/hooks/useViewportZoomLock' +import {moderateProfile} from '#/lib/moderation/subjects' import { type CommonNavigatorParams, type NavigationProp, diff --git a/src/screens/Messages/ConversationSettings/Member.tsx b/src/screens/Messages/ConversationSettings/Member.tsx index 20cc0fee52..8fe07978e8 100644 --- a/src/screens/Messages/ConversationSettings/Member.tsx +++ b/src/screens/Messages/ConversationSettings/Member.tsx @@ -1,9 +1,9 @@ import {View} from 'react-native' -import {moderateProfile} from '@atproto/api' import {Trans, useLingui} from '@lingui/react/macro' import {isBlockedOrBlocking} from '#/lib/moderation/blocked-and-muted' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {logger} from '#/logger' import {useProfileShadow} from '#/state/cache/profile-shadow' import {useModerationOpts} from '#/state/preferences/moderation-opts' diff --git a/src/screens/Messages/ConversationSettings/index.tsx b/src/screens/Messages/ConversationSettings/index.tsx index 5f76a3f565..80806ae534 100644 --- a/src/screens/Messages/ConversationSettings/index.tsx +++ b/src/screens/Messages/ConversationSettings/index.tsx @@ -1,10 +1,7 @@ import {useEffect, useState} from 'react' import {Pressable, View} from 'react-native' -import { - ChatBskyActorDefs, - ChatBskyConvoDefs, - type ModerationOpts, -} from '@atproto/api' +import {ChatBskyActorDefs, ChatBskyConvoDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Trans, useLingui} from '@lingui/react/macro' import {useNavigation} from '@react-navigation/native' diff --git a/src/screens/Messages/JoinRequest.tsx b/src/screens/Messages/JoinRequest.tsx index 6ce57a151b..06faecaffe 100644 --- a/src/screens/Messages/JoinRequest.tsx +++ b/src/screens/Messages/JoinRequest.tsx @@ -1,11 +1,12 @@ import {useEffect} from 'react' import {View} from 'react-native' import {ImageBackground} from 'expo-image' -import {ChatBskyGroupDefs, moderateProfile} from '@atproto/api' +import {ChatBskyGroupDefs} from '@atproto/api' import {type ThemeName} from '@bsky.app/alf' import {Trans, useLingui} from '@lingui/react/macro' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {sanitizeHandle} from '#/lib/strings/handles' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useJoinLinkPreviewsQuery} from '#/state/queries/join-links' diff --git a/src/screens/Messages/components/ChatListItem.tsx b/src/screens/Messages/components/ChatListItem.tsx index 0acd0c28e7..ad2a1d731c 100644 --- a/src/screens/Messages/components/ChatListItem.tsx +++ b/src/screens/Messages/components/ChatListItem.tsx @@ -1,11 +1,10 @@ import {useCallback, useMemo, useState} from 'react' import {type GestureResponderEvent, View} from 'react-native' +import {ChatBskyConvoDefs} from '@atproto/api' import { - ChatBskyConvoDefs, - moderateProfile, type ModerationDecision, type ModerationOpts, -} from '@atproto/api' +} from '@bsky.app/sdk/moderation' import {plural} from '@lingui/core/macro' import {useLingui} from '@lingui/react/macro' import {useQueryClient} from '@tanstack/react-query' @@ -13,6 +12,7 @@ import {useQueryClient} from '@tanstack/react-query' import {GestureActionView} from '#/lib/custom-animations/GestureActionView' import {useHaptics} from '#/lib/haptics' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {decrementBadgeCount} from '#/lib/notifications/notifications' import {sanitizeHandle} from '#/lib/strings/handles' import { diff --git a/src/screens/Messages/components/ChatStatusInfo.tsx b/src/screens/Messages/components/ChatStatusInfo.tsx index e2e9a75faa..4d3ebe2ab8 100644 --- a/src/screens/Messages/components/ChatStatusInfo.tsx +++ b/src/screens/Messages/components/ChatStatusInfo.tsx @@ -1,10 +1,10 @@ import {useCallback, useMemo} from 'react' import {View} from 'react-native' import {LinearGradient} from 'expo-linear-gradient' -import {moderateProfile} from '@atproto/api' import {Trans, useLingui} from '@lingui/react/macro' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {sanitizeHandle} from '#/lib/strings/handles' import {useProfileShadow} from '#/state/cache/profile-shadow' import {type ActiveConvoStates} from '#/state/messages/convo' diff --git a/src/screens/Messages/components/InviteLinkDialog.tsx b/src/screens/Messages/components/InviteLinkDialog.tsx index 22acd577b0..a2a32a41c5 100644 --- a/src/screens/Messages/components/InviteLinkDialog.tsx +++ b/src/screens/Messages/components/InviteLinkDialog.tsx @@ -1,15 +1,13 @@ import {useState} from 'react' import {View} from 'react-native' import {Image} from 'expo-image' -import { - type ChatBskyGroupDefs, - moderateProfile, - type ModerationOpts, -} from '@atproto/api' +import {type ChatBskyGroupDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Plural, Trans, useLingui} from '@lingui/react/macro' import {useOpenComposer} from '#/lib/hooks/useOpenComposer' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {shareUrl} from '#/lib/sharing' import {useCreateJoinLink} from '#/state/queries/messages/create-join-link' import {useDisableJoinLink} from '#/state/queries/messages/disable-join-link' diff --git a/src/screens/Messages/components/MessageInputEmbed.tsx b/src/screens/Messages/components/MessageInputEmbed.tsx index 9d1e4c32f6..7740c7ea50 100644 --- a/src/screens/Messages/components/MessageInputEmbed.tsx +++ b/src/screens/Messages/components/MessageInputEmbed.tsx @@ -1,11 +1,12 @@ import {useCallback, useEffect, useMemo, useState} from 'react' import {LayoutAnimation, View} from 'react-native' -import {AppBskyFeedPost, AtUri, moderatePost} from '@atproto/api' +import {AppBskyFeedPost, AtUri} from '@atproto/api' import {RichText as RichTextAPI} from '@bsky.app/sdk/richtext' import {Trans, useLingui} from '@lingui/react/macro' import {type RouteProp, useNavigation, useRoute} from '@react-navigation/native' import {HITSLOP_20} from '#/lib/constants' +import {moderatePost} from '#/lib/moderation/subjects' import {makeProfileLink} from '#/lib/routes/links' import { type CommonNavigatorParams, diff --git a/src/screens/Messages/components/MessagesListInfoPanel.tsx b/src/screens/Messages/components/MessagesListInfoPanel.tsx index b5c39a42dc..297ef8632f 100644 --- a/src/screens/Messages/components/MessagesListInfoPanel.tsx +++ b/src/screens/Messages/components/MessagesListInfoPanel.tsx @@ -1,9 +1,9 @@ import {View} from 'react-native' -import {moderateProfile} from '@atproto/api' import {Trans, useLingui} from '@lingui/react/macro' import {useNavigation} from '@react-navigation/native' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' +import {moderateProfile} from '#/lib/moderation/subjects' import {type NavigationProp} from '#/lib/routes/types' import {isInvalidHandle, sanitizeHandle} from '#/lib/strings/handles' import {useModerationOpts} from '#/state/preferences/moderation-opts' diff --git a/src/screens/Moderation/index.tsx b/src/screens/Moderation/index.tsx index 9aea34b89d..416390f075 100644 --- a/src/screens/Moderation/index.tsx +++ b/src/screens/Moderation/index.tsx @@ -1,6 +1,6 @@ import {Fragment, useCallback} from 'react' import {Linking, View} from 'react-native' -import {LABELS} from '@atproto/api' +import {LABELS} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' diff --git a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx index f43d06cdd4..982ee15611 100644 --- a/src/screens/Onboarding/StepSuggestedAccounts/index.tsx +++ b/src/screens/Onboarding/StepSuggestedAccounts/index.tsx @@ -1,6 +1,6 @@ import {useCallback, useEffect, useMemo, useRef, useState} from 'react' import {View} from 'react-native' -import {type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' diff --git a/src/screens/PostThread/components/LikesStat.tsx b/src/screens/PostThread/components/LikesStat.tsx index eab32dc274..de219f4743 100644 --- a/src/screens/PostThread/components/LikesStat.tsx +++ b/src/screens/PostThread/components/LikesStat.tsx @@ -1,7 +1,8 @@ import {View} from 'react-native' -import {type AppBskyFeedDefs, AtUri, moderateProfile} from '@atproto/api' +import {type AppBskyFeedDefs, AtUri} from '@atproto/api' import {Plural, Trans, useLingui} from '@lingui/react/macro' +import {moderateProfile} from '#/lib/moderation/subjects' import {makeProfileLink} from '#/lib/routes/links' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {useModerationOpts} from '#/state/preferences/moderation-opts' diff --git a/src/screens/Profile/Header/DisplayName.tsx b/src/screens/Profile/Header/DisplayName.tsx index 8bf50fee2d..ac99ba82b4 100644 --- a/src/screens/Profile/Header/DisplayName.tsx +++ b/src/screens/Profile/Header/DisplayName.tsx @@ -1,5 +1,6 @@ import {View} from 'react-native' -import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api' +import {type AppBskyActorDefs} from '@atproto/api' +import {type ModerationDecision} from '@bsky.app/sdk/moderation' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' diff --git a/src/screens/Profile/Header/ProfileHeaderLabeler.tsx b/src/screens/Profile/Header/ProfileHeaderLabeler.tsx index 812e65b6e2..a7979f17ae 100644 --- a/src/screens/Profile/Header/ProfileHeaderLabeler.tsx +++ b/src/screens/Profile/Header/ProfileHeaderLabeler.tsx @@ -1,11 +1,7 @@ import {memo, useCallback, useMemo, useState} from 'react' import {View} from 'react-native' -import { - type AppBskyActorDefs, - type AppBskyLabelerDefs, - moderateProfile, - type ModerationOpts, -} from '@atproto/api' +import {type AppBskyActorDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {type RichText as RichTextAPI} from '@bsky.app/sdk/richtext' import {msg, plural} from '@lingui/core/macro' import {useLingui} from '@lingui/react' @@ -15,6 +11,7 @@ import {Plural, Trans} from '@lingui/react/macro' import {MAX_LABELERS} from '#/lib/constants' import {useHaptics} from '#/lib/haptics' import {isAppLabeler} from '#/lib/moderation' +import {moderateProfile} from '#/lib/moderation/subjects' import {useProfileShadow} from '#/state/cache/profile-shadow' import {type Shadow} from '#/state/cache/types' import {useLabelerSubscriptionMutation} from '#/state/queries/labeler' @@ -37,6 +34,7 @@ import * as Toast from '#/components/Toast' import {Text} from '#/components/Typography' import {useAnalytics} from '#/analytics' import {IS_IOS} from '#/env' +import {type app} from '#/lexicons' import {ProfileHeaderDisplayName} from './DisplayName' import {EditProfileDialog} from './EditProfileDialog' import {ProfileHeaderHandle} from './Handle' @@ -45,7 +43,7 @@ import {ProfileHeaderShell} from './Shell' interface Props { profile: AppBskyActorDefs.ProfileViewDetailed - labeler: AppBskyLabelerDefs.LabelerViewDetailed + labeler: app.bsky.labeler.defs.LabelerViewDetailed descriptionRT: RichTextAPI | null moderationOpts: ModerationOpts hideBackButton?: boolean diff --git a/src/screens/Profile/Header/ProfileHeaderStandard.tsx b/src/screens/Profile/Header/ProfileHeaderStandard.tsx index 3070997b98..b7cfff7ab9 100644 --- a/src/screens/Profile/Header/ProfileHeaderStandard.tsx +++ b/src/screens/Profile/Header/ProfileHeaderStandard.tsx @@ -1,17 +1,17 @@ import {memo, useMemo, useState} from 'react' import {View} from 'react-native' +import {type AppBskyActorDefs} from '@atproto/api' import { - type AppBskyActorDefs, - moderateProfile, type ModerationDecision, type ModerationOpts, -} from '@atproto/api' +} from '@bsky.app/sdk/moderation' import {type RichText as RichTextAPI} from '@bsky.app/sdk/richtext' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' import {useHaptics} from '#/lib/haptics' +import {moderateProfile} from '#/lib/moderation/subjects' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {logger} from '#/logger' import {type Shadow, useProfileShadow} from '#/state/cache/profile-shadow' diff --git a/src/screens/Profile/Header/Shell.tsx b/src/screens/Profile/Header/Shell.tsx index a142e1139c..4521ba9edf 100644 --- a/src/screens/Profile/Header/Shell.tsx +++ b/src/screens/Profile/Header/Shell.tsx @@ -5,8 +5,9 @@ import Animated, { useAnimatedRef, } from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' -import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api' +import {type AppBskyActorDefs} from '@atproto/api' import {utils} from '@bsky.app/alf' +import {type ModerationDecision} from '@bsky.app/sdk/moderation' import {useLingui} from '@lingui/react/macro' import {useNavigation} from '@react-navigation/native' diff --git a/src/screens/Profile/Header/index.tsx b/src/screens/Profile/Header/index.tsx index dbd8bafcab..eff65c854d 100644 --- a/src/screens/Profile/Header/index.tsx +++ b/src/screens/Profile/Header/index.tsx @@ -7,15 +7,12 @@ import Animated, { } from 'react-native-reanimated' import {useSafeAreaInsets} from 'react-native-safe-area-context' import {scheduleOnRN} from 'react-native-worklets' -import { - type AppBskyActorDefs, - type AppBskyLabelerDefs, - moderateProfile, - type ModerationOpts, -} from '@atproto/api' +import {type AppBskyActorDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {type RichText as RichTextAPI} from '@bsky.app/sdk/richtext' import {useIsFocused} from '@react-navigation/native' +import {moderateProfile} from '#/lib/moderation/subjects' import {sanitizeHandle} from '#/lib/strings/handles' import {useProfileShadow} from '#/state/cache/profile-shadow' import {useModerationOpts} from '#/state/preferences/moderation-opts' @@ -26,6 +23,7 @@ import {atoms as a, useTheme} from '#/alf' import {Header} from '#/components/Layout' import * as ProfileCard from '#/components/ProfileCard' import {IS_NATIVE} from '#/env' +import {type app} from '#/lexicons' import { HeaderLabelerButtons, ProfileHeaderLabeler, @@ -61,7 +59,7 @@ export {ProfileHeaderLoading} interface Props { profile: AppBskyActorDefs.ProfileViewDetailed - labeler: AppBskyLabelerDefs.LabelerViewDetailed | undefined + labeler: app.bsky.labeler.defs.LabelerViewDetailed | undefined descriptionRT: RichTextAPI | null moderationOpts: ModerationOpts hideBackButton?: boolean @@ -106,7 +104,7 @@ const MinimalHeader = memo(function MinimalHeader({ }: { onLayout: (e: LayoutChangeEvent) => void profile: AppBskyActorDefs.ProfileViewDetailed - labeler?: AppBskyLabelerDefs.LabelerViewDetailed + labeler?: app.bsky.labeler.defs.LabelerViewDetailed hideBackButton?: boolean }) { const t = useTheme() diff --git a/src/screens/Profile/Sections/Labels.tsx b/src/screens/Profile/Sections/Labels.tsx index 8c70d40392..649c214acb 100644 --- a/src/screens/Profile/Sections/Labels.tsx +++ b/src/screens/Profile/Sections/Labels.tsx @@ -1,11 +1,10 @@ import {useCallback, useEffect, useImperativeHandle, useMemo} from 'react' import {type ListRenderItemInfo, View} from 'react-native' import { - type AppBskyLabelerDefs, type InterpretedLabelValueDefinition, interpretLabelValueDefinitions, type ModerationOpts, -} from '@atproto/api' +} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' @@ -21,13 +20,14 @@ import {Loader} from '#/components/Loader' import {LabelerLabelPreference} from '#/components/moderation/LabelPreference' import {Text} from '#/components/Typography' import {IS_IOS, IS_NATIVE} from '#/env' +import {type app} from '#/lexicons' import {ErrorState} from '../ErrorState' import {type SectionRef} from './types' interface LabelsSectionProps { ref: React.Ref isLabelerLoading: boolean - labelerInfo: AppBskyLabelerDefs.LabelerViewDetailed | undefined + labelerInfo: app.bsky.labeler.defs.LabelerViewDetailed | undefined labelerError: Error | null moderationOpts: ModerationOpts scrollElRef: ListRef @@ -161,7 +161,7 @@ export function LabelerListHeader({ }: { isLabelerLoading: boolean labelerError?: Error | null - labelerInfo?: AppBskyLabelerDefs.LabelerViewDetailed + labelerInfo?: app.bsky.labeler.defs.LabelerViewDetailed hasValues: boolean isSubscribed: boolean }) { diff --git a/src/screens/ProfileList/index.tsx b/src/screens/ProfileList/index.tsx index 77af470cd5..ef0221631d 100644 --- a/src/screens/ProfileList/index.tsx +++ b/src/screens/ProfileList/index.tsx @@ -1,12 +1,8 @@ import {useCallback, useMemo, useRef, useState} from 'react' import {View} from 'react-native' import {useAnimatedRef} from 'react-native-reanimated' -import { - AppBskyGraphDefs, - AtUri, - moderateUserList, - type ModerationOpts, -} from '@atproto/api' +import {AppBskyGraphDefs, AtUri} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' @@ -15,6 +11,7 @@ import {useQueryClient} from '@tanstack/react-query' import {useOpenComposer} from '#/lib/hooks/useOpenComposer' import {useSetTitle} from '#/lib/hooks/useSetTitle' +import {moderateUserList} from '#/lib/moderation/subjects' import { type CommonNavigatorParams, type NativeStackScreenProps, diff --git a/src/screens/Search/components/SearchHistory.tsx b/src/screens/Search/components/SearchHistory.tsx index 31186726b2..b71f5ef312 100644 --- a/src/screens/Search/components/SearchHistory.tsx +++ b/src/screens/Search/components/SearchHistory.tsx @@ -1,8 +1,9 @@ import {ScrollView, View} from 'react-native' -import {moderateProfile, type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Plural, Trans, useLingui} from '@lingui/react/macro' import {createHitslop} from '#/lib/constants' +import {moderateProfile} from '#/lib/moderation/subjects' import {makeProfileLink} from '#/lib/routes/links' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {sanitizeHandle} from '#/lib/strings/handles' diff --git a/src/screens/Search/components/SearchProfileCard.tsx b/src/screens/Search/components/SearchProfileCard.tsx index a5ca18ee13..b848739ed3 100644 --- a/src/screens/Search/components/SearchProfileCard.tsx +++ b/src/screens/Search/components/SearchProfileCard.tsx @@ -1,6 +1,6 @@ import {useCallback} from 'react' import {View} from 'react-native' -import {type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' diff --git a/src/screens/Search/components/StarterPackCard.tsx b/src/screens/Search/components/StarterPackCard.tsx index 9831746b42..949bdd6ebf 100644 --- a/src/screens/Search/components/StarterPackCard.tsx +++ b/src/screens/Search/components/StarterPackCard.tsx @@ -1,14 +1,11 @@ import {useState} from 'react' import {View} from 'react-native' -import { - type AppBskyGraphDefs, - AppBskyGraphStarterpack, - moderateProfile, -} from '@atproto/api' +import {type AppBskyGraphDefs, AppBskyGraphStarterpack} from '@atproto/api' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' +import {moderateProfile} from '#/lib/moderation/subjects' import {sanitizeHandle} from '#/lib/strings/handles' import {useModerationOpts} from '#/state/preferences/moderation-opts' import {useSession} from '#/state/session' diff --git a/src/screens/Search/modules/ExploreSuggestedAccounts.tsx b/src/screens/Search/modules/ExploreSuggestedAccounts.tsx index c32d4eefd3..ef6dc0cba9 100644 --- a/src/screens/Search/modules/ExploreSuggestedAccounts.tsx +++ b/src/screens/Search/modules/ExploreSuggestedAccounts.tsx @@ -1,6 +1,7 @@ import {memo, useEffect} from 'react' import {View} from 'react-native' -import {type AppBskyActorSearchActors, type ModerationOpts} from '@atproto/api' +import {type AppBskyActorSearchActors} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {type InfiniteData} from '@tanstack/react-query' diff --git a/src/screens/Search/modules/ExploreTrendingTopics.tsx b/src/screens/Search/modules/ExploreTrendingTopics.tsx index 60c42323c3..27356efff9 100644 --- a/src/screens/Search/modules/ExploreTrendingTopics.tsx +++ b/src/screens/Search/modules/ExploreTrendingTopics.tsx @@ -1,10 +1,11 @@ import {useMemo} from 'react' import {Pressable, View} from 'react-native' import {Image} from 'expo-image' -import {type AppBskyUnspeccedDefs, moderateProfile} from '@atproto/api' +import {type AppBskyUnspeccedDefs} from '@atproto/api' import {RichText as RichTextApi} from '@bsky.app/sdk/richtext' import {Plural, Trans, useLingui} from '@lingui/react/macro' +import {moderateProfile} from '#/lib/moderation/subjects' import {useModerationOpts} from '#/state/preferences/moderation-opts' import { useTrendingSettings, diff --git a/src/screens/Settings/FindContactsSettings.tsx b/src/screens/Settings/FindContactsSettings.tsx index c8ecdf4102..1fb0f3b2a8 100644 --- a/src/screens/Settings/FindContactsSettings.tsx +++ b/src/screens/Settings/FindContactsSettings.tsx @@ -1,8 +1,9 @@ import {useCallback, useEffect, useState} from 'react' import {type ListRenderItemInfo, View} from 'react-native' import * as Contacts from 'expo-contacts' -import {type AppBskyContactDefs, type ModerationOpts} from '@atproto/api' +import {type AppBskyContactDefs} from '@atproto/api' import {type DidString} from '@atproto/syntax' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Plural, Trans} from '@lingui/react/macro' diff --git a/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx b/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx index 3aaf5e10e5..0da3356f5e 100644 --- a/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx +++ b/src/screens/Settings/NotificationSettings/ActivityNotificationSettings.tsx @@ -1,6 +1,6 @@ import {useCallback, useMemo} from 'react' import {type ListRenderItemInfo, Text as RNText, View} from 'react-native' -import {type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Trans, useLingui} from '@lingui/react/macro' import {createSanitizedDisplayName} from '#/lib/moderation/create-sanitized-display-name' diff --git a/src/screens/Settings/Settings.tsx b/src/screens/Settings/Settings.tsx index 0d5b2bcc73..0fff031f87 100644 --- a/src/screens/Settings/Settings.tsx +++ b/src/screens/Settings/Settings.tsx @@ -1,7 +1,7 @@ import {useState} from 'react' import {Alert, LayoutAnimation, Linking, Pressable, View} from 'react-native' import {useReducedMotion} from 'react-native-reanimated' -import {type AppBskyActorDefs, moderateProfile} from '@atproto/api' +import {type AppBskyActorDefs} from '@atproto/api' import {removeNuxs} from '@bsky.app/sdk' import {Trans, useLingui} from '@lingui/react/macro' import {useNavigation} from '@react-navigation/native' @@ -10,6 +10,7 @@ import {type NativeStackScreenProps} from '@react-navigation/native-stack' import {HELP_DESK_URL, HITSLOP_10} from '#/lib/constants' import {useAccountSwitcher} from '#/lib/hooks/useAccountSwitcher' import {useApplyPullRequestOTAUpdate} from '#/lib/hooks/useOTAUpdates' +import {moderateProfile} from '#/lib/moderation/subjects' import { type CommonNavigatorParams, type NavigationProp, diff --git a/src/screens/StarterPack/StarterPackLandingScreen.tsx b/src/screens/StarterPack/StarterPackLandingScreen.tsx index 6184514412..a8ae9ce95f 100644 --- a/src/screens/StarterPack/StarterPackLandingScreen.tsx +++ b/src/screens/StarterPack/StarterPackLandingScreen.tsx @@ -1,12 +1,8 @@ import {useEffect, useState} from 'react' import {Pressable, View} from 'react-native' import Animated, {FadeIn, FadeOut} from 'react-native-reanimated' -import { - AppBskyGraphDefs, - AppBskyGraphStarterpack, - AtUri, - type ModerationOpts, -} from '@atproto/api' +import {AppBskyGraphDefs, AppBskyGraphStarterpack, AtUri} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' diff --git a/src/screens/StarterPack/StarterPackScreen.tsx b/src/screens/StarterPack/StarterPackScreen.tsx index c79e39c190..e392f395db 100644 --- a/src/screens/StarterPack/StarterPackScreen.tsx +++ b/src/screens/StarterPack/StarterPackScreen.tsx @@ -1,13 +1,9 @@ import {useCallback, useEffect, useState} from 'react' import {View} from 'react-native' import {Image} from 'expo-image' -import { - AppBskyGraphDefs, - AppBskyGraphStarterpack, - AtUri, - type ModerationOpts, -} from '@atproto/api' +import {AppBskyGraphDefs, AppBskyGraphStarterpack, AtUri} from '@atproto/api' import {type AtUriString} from '@atproto/syntax' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {RichText as RichTextAPI} from '@bsky.app/sdk/richtext' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' diff --git a/src/screens/StarterPack/Wizard/StepFeeds.tsx b/src/screens/StarterPack/Wizard/StepFeeds.tsx index 470d5a55ee..183f9fb843 100644 --- a/src/screens/StarterPack/Wizard/StepFeeds.tsx +++ b/src/screens/StarterPack/Wizard/StepFeeds.tsx @@ -1,7 +1,8 @@ import {useState} from 'react' import {type ListRenderItemInfo, View} from 'react-native' import {KeyboardAwareScrollView} from 'react-native-keyboard-controller' -import {type AppBskyFeedDefs, type ModerationOpts} from '@atproto/api' +import {type AppBskyFeedDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Trans} from '@lingui/react/macro' import {DISCOVER_FEED_URI} from '#/lib/constants' diff --git a/src/screens/StarterPack/Wizard/StepProfiles.tsx b/src/screens/StarterPack/Wizard/StepProfiles.tsx index 9f3b7076fd..45e52fa14b 100644 --- a/src/screens/StarterPack/Wizard/StepProfiles.tsx +++ b/src/screens/StarterPack/Wizard/StepProfiles.tsx @@ -1,7 +1,7 @@ import {useState} from 'react' import {type ListRenderItemInfo, View} from 'react-native' import {KeyboardAwareScrollView} from 'react-native-keyboard-controller' -import {type ModerationOpts} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Trans} from '@lingui/react/macro' import {useA11y} from '#/state/a11y' diff --git a/src/screens/StarterPack/Wizard/index.tsx b/src/screens/StarterPack/Wizard/index.tsx index c579f09d67..4f94943729 100644 --- a/src/screens/StarterPack/Wizard/index.tsx +++ b/src/screens/StarterPack/Wizard/index.tsx @@ -8,8 +8,8 @@ import { type AppBskyFeedDefs, type AppBskyGraphDefs, AtUri, - type ModerationOpts, } from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Plural, Trans} from '@lingui/react/macro' diff --git a/src/screens/VideoFeed/index.tsx b/src/screens/VideoFeed/index.tsx index 38c2e5a89d..9f4771ddce 100644 --- a/src/screens/VideoFeed/index.tsx +++ b/src/screens/VideoFeed/index.tsx @@ -30,8 +30,8 @@ import { type AppBskyFeedDefs, AppBskyFeedPost, AtUri, - type ModerationDecision, } from '@atproto/api' +import {type ModerationDecision} from '@bsky.app/sdk/moderation' import {RichText as RichTextAPI} from '@bsky.app/sdk/richtext' import {Trans, useLingui} from '@lingui/react/macro' import { diff --git a/src/view/com/composer/text-input/web/Autocomplete.tsx b/src/view/com/composer/text-input/web/Autocomplete.tsx index 8371ad993a..267d4a4829 100644 --- a/src/view/com/composer/text-input/web/Autocomplete.tsx +++ b/src/view/com/composer/text-input/web/Autocomplete.tsx @@ -1,6 +1,7 @@ import {forwardRef, useEffect, useImperativeHandle, useState} from 'react' import {Pressable, View} from 'react-native' -import {type AppBskyActorDefs, type ModerationOpts} from '@atproto/api' +import {type AppBskyActorDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {Trans} from '@lingui/react/macro' import {ReactRenderer} from '@tiptap/react' import { diff --git a/src/view/com/composer/threadgate/ThreadgateBtn.tsx b/src/view/com/composer/threadgate/ThreadgateBtn.tsx index 2602b9bc45..9e730b48d8 100644 --- a/src/view/com/composer/threadgate/ThreadgateBtn.tsx +++ b/src/view/com/composer/threadgate/ThreadgateBtn.tsx @@ -90,14 +90,12 @@ export function ThreadgateBtn({ * Preferences are still typed against the legacy client, so the stored * rules arrive unbranded. Wave B migrates `getPreferences`. */ - allow: preferences?.postInteractionSettings - .threadgateAllowRules as app.bsky.feed.threadgate.Main['allow'], + allow: preferences?.postInteractionSettings.threadgateAllowRules, }) const prefPostgate = createPostgateRecord({ post: '', - embeddingRules: (preferences?.postInteractionSettings - ?.postgateEmbeddingRules || - []) as app.bsky.feed.postgate.Main['embeddingRules'], + embeddingRules: + preferences?.postInteractionSettings?.postgateEmbeddingRules || [], }) const isDirty = useMemo(() => { diff --git a/src/view/com/notifications/NotificationFeedItem.tsx b/src/view/com/notifications/NotificationFeedItem.tsx index 2afb3a0f43..a10e4b47ac 100644 --- a/src/view/com/notifications/NotificationFeedItem.tsx +++ b/src/view/com/notifications/NotificationFeedItem.tsx @@ -16,12 +16,13 @@ import { AppBskyGraphFollow, AppBskyGraphStarterpack, AtUri, - moderateProfile, - type ModerationDecision, - type ModerationOpts, } from '@atproto/api' import {TID} from '@atproto/common-web' import {type DidString} from '@atproto/syntax' +import { + type ModerationDecision, + type ModerationOpts, +} from '@bsky.app/sdk/moderation' import {plural} from '@lingui/core/macro' import {Plural, Trans, useLingui} from '@lingui/react/macro' import {useNavigation} from '@react-navigation/native' @@ -29,6 +30,7 @@ import {useQueryClient} from '@tanstack/react-query' import {MAX_POST_LINES} from '#/lib/constants' import {useAnimatedValue} from '#/lib/hooks/useAnimatedValue' +import {moderateProfile} from '#/lib/moderation/subjects' import {makeProfileLink} from '#/lib/routes/links' import {type NavigationProp} from '#/lib/routes/types' import {forceLTR} from '#/lib/strings/bidi' diff --git a/src/view/com/post-thread/PostQuotes.tsx b/src/view/com/post-thread/PostQuotes.tsx index b16281f9e0..0bad7969c0 100644 --- a/src/view/com/post-thread/PostQuotes.tsx +++ b/src/view/com/post-thread/PostQuotes.tsx @@ -1,15 +1,12 @@ import {useCallback, useState} from 'react' -import { - type AppBskyFeedDefs, - AppBskyFeedPost, - moderatePost, - type ModerationDecision, -} from '@atproto/api' +import {type AppBskyFeedDefs, AppBskyFeedPost} from '@atproto/api' +import {type ModerationDecision} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {useInitialNumToRender} from '#/lib/hooks/useInitialNumToRender' import {usePostViewTracking} from '#/lib/hooks/usePostViewTracking' +import {moderatePost} from '#/lib/moderation/subjects' import {cleanError} from '#/lib/strings/errors' import {logger} from '#/logger' import {useModerationOpts} from '#/state/preferences/moderation-opts' diff --git a/src/view/com/post/Post.tsx b/src/view/com/post/Post.tsx index b67133df65..98f6cfb9a0 100644 --- a/src/view/com/post/Post.tsx +++ b/src/view/com/post/Post.tsx @@ -1,17 +1,13 @@ import {useCallback, useMemo, useState} from 'react' import {type StyleProp, StyleSheet, View, type ViewStyle} from 'react-native' -import { - type AppBskyFeedDefs, - AppBskyFeedPost, - AtUri, - moderatePost, - type ModerationDecision, -} from '@atproto/api' +import {type AppBskyFeedDefs, AppBskyFeedPost, AtUri} from '@atproto/api' +import {type ModerationDecision} from '@bsky.app/sdk/moderation' import {RichText as RichTextAPI} from '@bsky.app/sdk/richtext' import {useQueryClient} from '@tanstack/react-query' import {MAX_POST_LINES} from '#/lib/constants' import {useOpenComposer} from '#/lib/hooks/useOpenComposer' +import {moderatePost} from '#/lib/moderation/subjects' import {makeProfileLink} from '#/lib/routes/links' import {countLines} from '#/lib/strings/helpers' import {asSdkFacets} from '#/lib/strings/rich-text-helpers' diff --git a/src/view/com/posts/PostFeedItem.tsx b/src/view/com/posts/PostFeedItem.tsx index a95b41635b..aa3fd06976 100644 --- a/src/view/com/posts/PostFeedItem.tsx +++ b/src/view/com/posts/PostFeedItem.tsx @@ -6,8 +6,8 @@ import { AppBskyFeedPost, AppBskyFeedThreadgate, AtUri, - type ModerationDecision, } from '@atproto/api' +import {type ModerationDecision} from '@bsky.app/sdk/moderation' import {RichText as RichTextAPI} from '@bsky.app/sdk/richtext' import {useQueryClient} from '@tanstack/react-query' diff --git a/src/view/com/posts/PostFeedReason.tsx b/src/view/com/posts/PostFeedReason.tsx index fd3ec73470..57ac3b825c 100644 --- a/src/view/com/posts/PostFeedReason.tsx +++ b/src/view/com/posts/PostFeedReason.tsx @@ -1,5 +1,6 @@ import {StyleSheet, View} from 'react-native' -import {AppBskyFeedDefs, type ModerationDecision} from '@atproto/api' +import {AppBskyFeedDefs} from '@atproto/api' +import {type ModerationDecision} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' diff --git a/src/view/com/util/PostMeta.tsx b/src/view/com/util/PostMeta.tsx index 29f3cf3fd8..f50e14b18f 100644 --- a/src/view/com/util/PostMeta.tsx +++ b/src/view/com/util/PostMeta.tsx @@ -1,6 +1,7 @@ import {memo, useCallback} from 'react' import {type StyleProp, View, type ViewStyle} from 'react-native' -import {type AppBskyActorDefs, type ModerationDecision} from '@atproto/api' +import {type AppBskyActorDefs} from '@atproto/api' +import {type ModerationDecision} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {useQueryClient} from '@tanstack/react-query' diff --git a/src/view/com/util/UserAvatar.tsx b/src/view/com/util/UserAvatar.tsx index 98819bf8d6..06893524f3 100644 --- a/src/view/com/util/UserAvatar.tsx +++ b/src/view/com/util/UserAvatar.tsx @@ -11,7 +11,7 @@ import { } from 'react-native' import Svg, {Circle, Path, Rect} from 'react-native-svg' import {Image as ExpoImage} from 'expo-image' -import {type ModerationUI} from '@atproto/api' +import {type ModerationUI} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' diff --git a/src/view/com/util/UserBanner.tsx b/src/view/com/util/UserBanner.tsx index 964cc2ba57..b9d9604d64 100644 --- a/src/view/com/util/UserBanner.tsx +++ b/src/view/com/util/UserBanner.tsx @@ -1,7 +1,7 @@ import {useCallback, useState} from 'react' import {Pressable, StyleSheet, View} from 'react-native' import {Image} from 'expo-image' -import {type ModerationUI} from '@atproto/api' +import {type ModerationUI} from '@bsky.app/sdk/moderation' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' import {Trans} from '@lingui/react/macro' diff --git a/src/view/screens/DebugMod.tsx b/src/view/screens/DebugMod.tsx index d92043966c..ad0124eb49 100644 --- a/src/view/screens/DebugMod.tsx +++ b/src/view/screens/DebugMod.tsx @@ -6,20 +6,21 @@ import { type AppBskyFeedDefs, type AppBskyFeedPost, type ComAtprotoLabelDefs, + mock, +} from '@atproto/api' +import { interpretLabelValueDefinition, type LabelPreference, LABELS, - mock, - moderatePost, - moderateProfile, type ModerationBehavior, type ModerationDecision, type ModerationOpts, -} from '@atproto/api' +} from '@bsky.app/sdk/moderation' import {RichText} from '@bsky.app/sdk/richtext' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' +import {moderatePost, moderateProfile} from '#/lib/moderation/subjects' import {useGlobalLabelStrings} from '#/lib/moderation/useGlobalLabelStrings' import { type CommonNavigatorParams, @@ -242,9 +243,13 @@ export const DebugModScreen = ({}: NativeStackScreenProps< return item }, [profile, currentAccount]) - const modOpts = useMemo(() => { + const modOpts = useMemo(() => { return { - userDid: isLoggedOut ? '' : isTargetMe ? did : 'did:web:alice.test', + userDid: (isLoggedOut + ? '' + : isTargetMe + ? did + : 'did:web:alice.test') as ModerationOpts['userDid'], prefs: { adultContentEnabled: !noAdult, labels: { diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index c796bf9586..9c4db67b01 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -2,11 +2,8 @@ import {useCallback, useEffect, useMemo, useRef, useState} from 'react' import {StyleSheet} from 'react-native' import {SafeAreaView} from 'react-native-safe-area-context' import {ScrollForwarderView} from 'react-native-scroll-forwarder' -import { - type AppBskyActorDefs, - moderateProfile, - type ModerationOpts, -} from '@atproto/api' +import {type AppBskyActorDefs} from '@atproto/api' +import {type ModerationOpts} from '@bsky.app/sdk/moderation' import {RichText as RichTextAPI} from '@bsky.app/sdk/richtext' import {msg} from '@lingui/core/macro' import {useLingui} from '@lingui/react' @@ -17,6 +14,7 @@ import {useQueryClient} from '@tanstack/react-query' import {useOpenComposer} from '#/lib/hooks/useOpenComposer' import {useRequireEmailVerification} from '#/lib/hooks/useRequireEmailVerification' import {useSetTitle} from '#/lib/hooks/useSetTitle' +import {moderateProfile} from '#/lib/moderation/subjects' import { type CommonNavigatorParams, type NativeStackScreenProps,