point the state and feature moderation call sites at the sdk
Query, notification and feature-level moderation reads switch to the sdk types and take their `moderate*`/`hasMutedWord` entry points from the `lib/moderation/subjects` seam, since these paths still carry `@atproto/api`-typed views. `shouldFilterNotif` is the one behavioral seam worth noting: its notification and facet values come from an unmigrated read, so the mute-word check goes through the widening wrapper rather than the sdk export directly.
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
import {createContext, useContext, useMemo} from 'react'
|
import {createContext, useContext, useMemo} from 'react'
|
||||||
import {hasMutedWord} from '@atproto/api'
|
import {hasMutedWord} from '@bsky.app/sdk/moderation'
|
||||||
import {QueryClient, useQuery} from '@tanstack/react-query'
|
import {QueryClient, useQuery} from '@tanstack/react-query'
|
||||||
|
|
||||||
import {useOnAppStateChange} from '#/lib/appState'
|
import {useOnAppStateChange} from '#/lib/appState'
|
||||||
|
|||||||
@@ -1,16 +1,13 @@
|
|||||||
import {useCallback, useMemo} from 'react'
|
import {useCallback, useMemo} from 'react'
|
||||||
import {View} from 'react-native'
|
import {View} from 'react-native'
|
||||||
import {Image} from 'expo-image'
|
import {Image} from 'expo-image'
|
||||||
import {
|
import {type AppBskyActorDefs, type AppBskyEmbedExternal} from '@atproto/api'
|
||||||
type AppBskyActorDefs,
|
|
||||||
type AppBskyEmbedExternal,
|
|
||||||
moderateStatus,
|
|
||||||
} from '@atproto/api'
|
|
||||||
import {Trans, useLingui} from '@lingui/react/macro'
|
import {Trans, useLingui} from '@lingui/react/macro'
|
||||||
import {useNavigation} from '@react-navigation/native'
|
import {useNavigation} from '@react-navigation/native'
|
||||||
import {useQueryClient} from '@tanstack/react-query'
|
import {useQueryClient} from '@tanstack/react-query'
|
||||||
|
|
||||||
import {useOpenLink} from '#/lib/hooks/useOpenLink'
|
import {useOpenLink} from '#/lib/hooks/useOpenLink'
|
||||||
|
import {moderateStatus} from '#/lib/moderation/subjects'
|
||||||
import {type NavigationProp} from '#/lib/routes/types'
|
import {type NavigationProp} from '#/lib/routes/types'
|
||||||
import {sanitizeHandle} from '#/lib/strings/handles'
|
import {sanitizeHandle} from '#/lib/strings/handles'
|
||||||
import {toNiceDomain} from '#/lib/strings/url-helpers'
|
import {toNiceDomain} from '#/lib/strings/url-helpers'
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import {
|
|||||||
type $Typed,
|
type $Typed,
|
||||||
type AppBskyActorDefs,
|
type AppBskyActorDefs,
|
||||||
AppBskyEmbedExternal,
|
AppBskyEmbedExternal,
|
||||||
moderateStatus,
|
|
||||||
} from '@atproto/api'
|
} from '@atproto/api'
|
||||||
import {retry} from '@atproto/common-web'
|
import {retry} from '@atproto/common-web'
|
||||||
import {type l} from '@atproto/lex'
|
import {type l} from '@atproto/lex'
|
||||||
@@ -16,6 +15,7 @@ import {isAfter, parseISO} from 'date-fns'
|
|||||||
import {uploadBlob} from '#/lib/api'
|
import {uploadBlob} from '#/lib/api'
|
||||||
import {imageToThumb} from '#/lib/api/resolve'
|
import {imageToThumb} from '#/lib/api/resolve'
|
||||||
import {getLinkMeta, type LinkMeta} from '#/lib/link-meta/link-meta'
|
import {getLinkMeta, type LinkMeta} from '#/lib/link-meta/link-meta'
|
||||||
|
import {moderateStatus} from '#/lib/moderation/subjects'
|
||||||
import {matchXrpcError} from '#/lib/xrpc-error'
|
import {matchXrpcError} from '#/lib/xrpc-error'
|
||||||
import {useAppConfig} from '#/state/appConfig'
|
import {useAppConfig} from '#/state/appConfig'
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
import {useCallback} from 'react'
|
import {useCallback} from 'react'
|
||||||
import {
|
import {type AppBskyActorDefs} from '@atproto/api'
|
||||||
type AppBskyActorDefs,
|
import {type ModerationOpts} from '@bsky.app/sdk/moderation'
|
||||||
moderateProfile,
|
|
||||||
type ModerationOpts,
|
|
||||||
} from '@atproto/api'
|
|
||||||
import {keepPreviousData, useQuery, useQueryClient} from '@tanstack/react-query'
|
import {keepPreviousData, useQuery, useQueryClient} from '@tanstack/react-query'
|
||||||
|
|
||||||
import {isJustAMute, moduiContainsHideableOffense} from '#/lib/moderation'
|
import {isJustAMute, moduiContainsHideableOffense} from '#/lib/moderation'
|
||||||
|
import {moderateProfile} from '#/lib/moderation/subjects'
|
||||||
import {logger} from '#/logger'
|
import {logger} from '#/logger'
|
||||||
import {STALE} from '#/state/queries'
|
import {STALE} from '#/state/queries'
|
||||||
import {useAppviewClient} from '#/state/session'
|
import {useAppviewClient} from '#/state/session'
|
||||||
|
|||||||
@@ -1,10 +1,5 @@
|
|||||||
import {useMemo, useRef} from 'react'
|
import {useMemo, useRef} from 'react'
|
||||||
import {
|
import {type AppBskyActorDefs, AppBskyFeedDefs, AtUri} from '@atproto/api'
|
||||||
type AppBskyActorDefs,
|
|
||||||
AppBskyFeedDefs,
|
|
||||||
AtUri,
|
|
||||||
moderatePost,
|
|
||||||
} from '@atproto/api'
|
|
||||||
import {type AtUriString} from '@atproto/syntax'
|
import {type AtUriString} from '@atproto/syntax'
|
||||||
import {msg} from '@lingui/core/macro'
|
import {msg} from '@lingui/core/macro'
|
||||||
import {useLingui} from '@lingui/react'
|
import {useLingui} from '@lingui/react'
|
||||||
@@ -17,6 +12,7 @@ import {
|
|||||||
import {CustomFeedAPI} from '#/lib/api/feed/custom'
|
import {CustomFeedAPI} from '#/lib/api/feed/custom'
|
||||||
import {aggregateUserInterests} from '#/lib/api/feed/utils'
|
import {aggregateUserInterests} from '#/lib/api/feed/utils'
|
||||||
import {FeedTuner} from '#/lib/api/feed-manip'
|
import {FeedTuner} from '#/lib/api/feed-manip'
|
||||||
|
import {moderatePost} from '#/lib/moderation/subjects'
|
||||||
import {cleanError} from '#/lib/strings/errors'
|
import {cleanError} from '#/lib/strings/errors'
|
||||||
import {useModerationOpts} from '#/state/preferences/moderation-opts'
|
import {useModerationOpts} from '#/state/preferences/moderation-opts'
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import {
|
|||||||
type AppBskyFeedDefs,
|
type AppBskyFeedDefs,
|
||||||
type AppBskyGraphDefs,
|
type AppBskyGraphDefs,
|
||||||
AtUri,
|
AtUri,
|
||||||
moderateFeedGenerator,
|
|
||||||
} from '@atproto/api'
|
} from '@atproto/api'
|
||||||
import {type AtUriString} from '@atproto/syntax'
|
import {type AtUriString} from '@atproto/syntax'
|
||||||
import {RichText} from '@bsky.app/sdk/richtext'
|
import {RichText} from '@bsky.app/sdk/richtext'
|
||||||
@@ -20,6 +19,7 @@ import {
|
|||||||
} from '@tanstack/react-query'
|
} from '@tanstack/react-query'
|
||||||
|
|
||||||
import {DISCOVER_FEED_URI, DISCOVER_SAVED_FEED} from '#/lib/constants'
|
import {DISCOVER_FEED_URI, DISCOVER_SAVED_FEED} from '#/lib/constants'
|
||||||
|
import {moderateFeedGenerator} from '#/lib/moderation/subjects'
|
||||||
import {sanitizeDisplayName} from '#/lib/strings/display-names'
|
import {sanitizeDisplayName} from '#/lib/strings/display-names'
|
||||||
import {sanitizeHandle} from '#/lib/strings/handles'
|
import {sanitizeHandle} from '#/lib/strings/handles'
|
||||||
import {asSdkFacets} from '#/lib/strings/rich-text-helpers'
|
import {asSdkFacets} from '#/lib/strings/rich-text-helpers'
|
||||||
|
|||||||
@@ -17,12 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import {useCallback, useEffect, useMemo, useRef} from 'react'
|
import {useCallback, useEffect, useMemo, useRef} from 'react'
|
||||||
import {
|
import {AppBskyFeedDefs, AppBskyFeedPost, AtUri} from '@atproto/api'
|
||||||
AppBskyFeedDefs,
|
|
||||||
AppBskyFeedPost,
|
|
||||||
AtUri,
|
|
||||||
moderatePost,
|
|
||||||
} from '@atproto/api'
|
|
||||||
import {
|
import {
|
||||||
type InfiniteData,
|
type InfiniteData,
|
||||||
type QueryClient,
|
type QueryClient,
|
||||||
@@ -31,6 +26,7 @@ import {
|
|||||||
useQueryClient,
|
useQueryClient,
|
||||||
} from '@tanstack/react-query'
|
} from '@tanstack/react-query'
|
||||||
|
|
||||||
|
import {moderatePost} from '#/lib/moderation/subjects'
|
||||||
import {useModerationOpts} from '#/state/preferences/moderation-opts'
|
import {useModerationOpts} from '#/state/preferences/moderation-opts'
|
||||||
import {STALE} from '#/state/queries'
|
import {STALE} from '#/state/queries'
|
||||||
import {useAppviewClient} from '#/state/session'
|
import {useAppviewClient} from '#/state/session'
|
||||||
|
|||||||
@@ -6,16 +6,15 @@ import {
|
|||||||
type AppBskyGraphDefs,
|
type AppBskyGraphDefs,
|
||||||
AppBskyGraphStarterpack,
|
AppBskyGraphStarterpack,
|
||||||
type AppBskyNotificationListNotifications,
|
type AppBskyNotificationListNotifications,
|
||||||
hasMutedWord,
|
|
||||||
moderateNotification,
|
|
||||||
type ModerationOpts,
|
|
||||||
} from '@atproto/api'
|
} from '@atproto/api'
|
||||||
import {type Client} from '@atproto/lex'
|
import {type Client} from '@atproto/lex'
|
||||||
import {type AtUriString} from '@atproto/syntax'
|
import {type AtUriString} from '@atproto/syntax'
|
||||||
|
import {type ModerationOpts} from '@bsky.app/sdk/moderation'
|
||||||
import {type QueryClient} from '@tanstack/react-query'
|
import {type QueryClient} from '@tanstack/react-query'
|
||||||
import chunk from 'lodash.chunk'
|
import chunk from 'lodash.chunk'
|
||||||
|
|
||||||
import {labelIsHideableOffense} from '#/lib/moderation'
|
import {labelIsHideableOffense} from '#/lib/moderation'
|
||||||
|
import {hasMutedWord, moderateNotification} from '#/lib/moderation/subjects'
|
||||||
import {app} from '#/lexicons'
|
import {app} from '#/lexicons'
|
||||||
import * as bsky from '#/types/bsky'
|
import * as bsky from '#/types/bsky'
|
||||||
import {precacheProfile} from '../profile'
|
import {precacheProfile} from '../profile'
|
||||||
|
|||||||
@@ -5,12 +5,13 @@ import {
|
|||||||
AppBskyFeedDefs,
|
AppBskyFeedDefs,
|
||||||
type AppBskyFeedPost,
|
type AppBskyFeedPost,
|
||||||
AtUri,
|
AtUri,
|
||||||
moderatePost,
|
|
||||||
type ModerationDecision,
|
|
||||||
type ModerationPrefs,
|
|
||||||
} from '@atproto/api'
|
} from '@atproto/api'
|
||||||
import {type Client} from '@atproto/lex'
|
import {type Client} from '@atproto/lex'
|
||||||
import {type AtIdentifierString, type AtUriString} from '@atproto/syntax'
|
import {type AtIdentifierString, type AtUriString} from '@atproto/syntax'
|
||||||
|
import {
|
||||||
|
type ModerationDecision,
|
||||||
|
type ModerationPrefs,
|
||||||
|
} from '@bsky.app/sdk/moderation'
|
||||||
import {
|
import {
|
||||||
type InfiniteData,
|
type InfiniteData,
|
||||||
type QueryClient,
|
type QueryClient,
|
||||||
@@ -31,6 +32,7 @@ import {type FeedAPI, type ReasonFeedSource} from '#/lib/api/feed/types'
|
|||||||
import {aggregateUserInterests} from '#/lib/api/feed/utils'
|
import {aggregateUserInterests} from '#/lib/api/feed/utils'
|
||||||
import {FeedTuner, type FeedTunerFn} from '#/lib/api/feed-manip'
|
import {FeedTuner, type FeedTunerFn} from '#/lib/api/feed-manip'
|
||||||
import {DISCOVER_FEED_URI} from '#/lib/constants'
|
import {DISCOVER_FEED_URI} from '#/lib/constants'
|
||||||
|
import {moderatePost} from '#/lib/moderation/subjects'
|
||||||
import {logger} from '#/logger'
|
import {logger} from '#/logger'
|
||||||
import {STALE} from '#/state/queries'
|
import {STALE} from '#/state/queries'
|
||||||
import {DEFAULT_LOGGED_OUT_PREFERENCES} from '#/state/queries/preferences/const'
|
import {DEFAULT_LOGGED_OUT_PREFERENCES} from '#/state/queries/preferences/const'
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import {moderateFeedGenerator} from '@atproto/api'
|
|
||||||
import {type DidString} from '@atproto/syntax'
|
import {type DidString} from '@atproto/syntax'
|
||||||
import {
|
import {
|
||||||
type InfiniteData,
|
type InfiniteData,
|
||||||
@@ -6,6 +5,7 @@ import {
|
|||||||
useInfiniteQuery,
|
useInfiniteQuery,
|
||||||
} from '@tanstack/react-query'
|
} from '@tanstack/react-query'
|
||||||
|
|
||||||
|
import {moderateFeedGenerator} from '#/lib/moderation/subjects'
|
||||||
import {useAppviewClient} from '#/state/session'
|
import {useAppviewClient} from '#/state/session'
|
||||||
import {app} from '#/lexicons'
|
import {app} from '#/lexicons'
|
||||||
import {useModerationOpts} from '../preferences/moderation-opts'
|
import {useModerationOpts} from '../preferences/moderation-opts'
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import {moderateUserList} from '@atproto/api'
|
|
||||||
import {type DidString} from '@atproto/syntax'
|
import {type DidString} from '@atproto/syntax'
|
||||||
import {
|
import {
|
||||||
type InfiniteData,
|
type InfiniteData,
|
||||||
@@ -6,6 +5,7 @@ import {
|
|||||||
useInfiniteQuery,
|
useInfiniteQuery,
|
||||||
} from '@tanstack/react-query'
|
} from '@tanstack/react-query'
|
||||||
|
|
||||||
|
import {moderateUserList} from '#/lib/moderation/subjects'
|
||||||
import {useAppviewClient} from '#/state/session'
|
import {useAppviewClient} from '#/state/session'
|
||||||
import {app} from '#/lexicons'
|
import {app} from '#/lexicons'
|
||||||
import {useModerationOpts} from '../preferences/moderation-opts'
|
import {useModerationOpts} from '../preferences/moderation-opts'
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import {useCallback, useMemo, useRef} from 'react'
|
import {useCallback, useMemo, useRef} from 'react'
|
||||||
import {type AppBskyFeedDefs, AtUri, moderatePost} from '@atproto/api'
|
import {type AppBskyFeedDefs, AtUri} from '@atproto/api'
|
||||||
import {
|
import {
|
||||||
type InfiniteData,
|
type InfiniteData,
|
||||||
type QueryClient,
|
type QueryClient,
|
||||||
@@ -7,6 +7,7 @@ import {
|
|||||||
useInfiniteQuery,
|
useInfiniteQuery,
|
||||||
} from '@tanstack/react-query'
|
} from '@tanstack/react-query'
|
||||||
|
|
||||||
|
import {moderatePost} from '#/lib/moderation/subjects'
|
||||||
import {useModerationOpts} from '#/state/preferences/moderation-opts'
|
import {useModerationOpts} from '#/state/preferences/moderation-opts'
|
||||||
import {useAppviewClient} from '#/state/session'
|
import {useAppviewClient} from '#/state/session'
|
||||||
import {type SearchFilters} from '#/screens/Search/searchParams'
|
import {type SearchFilters} from '#/screens/Search/searchParams'
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import {useCallback, useMemo} from 'react'
|
import {useCallback, useMemo} from 'react'
|
||||||
import {hasMutedWord} from '@atproto/api'
|
import {hasMutedWord} from '@bsky.app/sdk/moderation'
|
||||||
import {useQuery} from '@tanstack/react-query'
|
import {useQuery} from '@tanstack/react-query'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import {AppBskyUnspeccedDefs, type ModerationOpts} from '@atproto/api'
|
import {AppBskyUnspeccedDefs} from '@atproto/api'
|
||||||
|
import {type ModerationOpts} from '@bsky.app/sdk/moderation'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
type ApiThreadItem,
|
type ApiThreadItem,
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import {
|
|||||||
type AppBskyUnspeccedDefs,
|
type AppBskyUnspeccedDefs,
|
||||||
type AppBskyUnspeccedGetPostThreadOtherV2,
|
type AppBskyUnspeccedGetPostThreadOtherV2,
|
||||||
type AppBskyUnspeccedGetPostThreadV2,
|
type AppBskyUnspeccedGetPostThreadV2,
|
||||||
type ModerationDecision,
|
|
||||||
} from '@atproto/api'
|
} from '@atproto/api'
|
||||||
|
import {type ModerationDecision} from '@bsky.app/sdk/moderation'
|
||||||
|
|
||||||
export type ApiThreadItem =
|
export type ApiThreadItem =
|
||||||
| AppBskyUnspeccedGetPostThreadV2.ThreadItem
|
| AppBskyUnspeccedGetPostThreadV2.ThreadItem
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ import {
|
|||||||
type AppBskyUnspeccedDefs,
|
type AppBskyUnspeccedDefs,
|
||||||
type AppBskyUnspeccedGetPostThreadV2,
|
type AppBskyUnspeccedGetPostThreadV2,
|
||||||
AtUri,
|
AtUri,
|
||||||
moderatePost,
|
|
||||||
type ModerationOpts,
|
|
||||||
} from '@atproto/api'
|
} from '@atproto/api'
|
||||||
|
import {type ModerationOpts} from '@bsky.app/sdk/moderation'
|
||||||
|
|
||||||
|
import {moderatePost} from '#/lib/moderation/subjects'
|
||||||
import {makeProfileLink} from '#/lib/routes/links'
|
import {makeProfileLink} from '#/lib/routes/links'
|
||||||
import {
|
import {
|
||||||
type ApiThreadItem,
|
type ApiThreadItem,
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ import {
|
|||||||
type AppBskyActorDefs,
|
type AppBskyActorDefs,
|
||||||
type AppBskyFeedDefs,
|
type AppBskyFeedDefs,
|
||||||
type AppBskyUnspeccedGetPostThreadV2,
|
type AppBskyUnspeccedGetPostThreadV2,
|
||||||
type ModerationDecision,
|
|
||||||
} from '@atproto/api'
|
} from '@atproto/api'
|
||||||
|
import {type ModerationDecision} from '@bsky.app/sdk/moderation'
|
||||||
import {msg} from '@lingui/core/macro'
|
import {msg} from '@lingui/core/macro'
|
||||||
import {useLingui} from '@lingui/react'
|
import {useLingui} from '@lingui/react'
|
||||||
import {useQueryClient} from '@tanstack/react-query'
|
import {useQueryClient} from '@tanstack/react-query'
|
||||||
|
|||||||
Reference in New Issue
Block a user