Filter hidden replies from feeds
This commit is contained in:
@@ -23,6 +23,7 @@ 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'
|
||||||
import {useAgent} from '#/state/session'
|
import {useAgent} from '#/state/session'
|
||||||
|
import {useThreadgateHiddenReplyUris} from '#/state/threadgate-hidden-replies'
|
||||||
import * as userActionHistory from '#/state/userActionHistory'
|
import * as userActionHistory from '#/state/userActionHistory'
|
||||||
import {AuthorFeedAPI} from 'lib/api/feed/author'
|
import {AuthorFeedAPI} from 'lib/api/feed/author'
|
||||||
import {CustomFeedAPI} from 'lib/api/feed/custom'
|
import {CustomFeedAPI} from 'lib/api/feed/custom'
|
||||||
@@ -135,6 +136,7 @@ export function usePostFeedQuery(
|
|||||||
result: InfiniteData<FeedPage>
|
result: InfiniteData<FeedPage>
|
||||||
} | null>(null)
|
} | null>(null)
|
||||||
const isDiscover = feedDesc.includes(DISCOVER_FEED_URI)
|
const isDiscover = feedDesc.includes(DISCOVER_FEED_URI)
|
||||||
|
const {uris: hiddenReplyUris} = useThreadgateHiddenReplyUris()
|
||||||
|
|
||||||
// Make sure this doesn't invalidate unless really needed.
|
// Make sure this doesn't invalidate unless really needed.
|
||||||
const selectArgs = React.useMemo(
|
const selectArgs = React.useMemo(
|
||||||
@@ -143,8 +145,15 @@ export function usePostFeedQuery(
|
|||||||
moderationOpts,
|
moderationOpts,
|
||||||
ignoreFilterFor: opts?.ignoreFilterFor,
|
ignoreFilterFor: opts?.ignoreFilterFor,
|
||||||
isDiscover,
|
isDiscover,
|
||||||
|
hiddenReplyUris,
|
||||||
}),
|
}),
|
||||||
[feedTuners, moderationOpts, opts?.ignoreFilterFor, isDiscover],
|
[
|
||||||
|
feedTuners,
|
||||||
|
moderationOpts,
|
||||||
|
opts?.ignoreFilterFor,
|
||||||
|
isDiscover,
|
||||||
|
hiddenReplyUris,
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
const query = useInfiniteQuery<
|
const query = useInfiniteQuery<
|
||||||
@@ -223,8 +232,13 @@ export function usePostFeedQuery(
|
|||||||
(data: InfiniteData<FeedPageUnselected, RQPageParam>) => {
|
(data: InfiniteData<FeedPageUnselected, RQPageParam>) => {
|
||||||
// If the selection depends on some data, that data should
|
// If the selection depends on some data, that data should
|
||||||
// be included in the selectArgs object and read here.
|
// be included in the selectArgs object and read here.
|
||||||
const {feedTuners, moderationOpts, ignoreFilterFor, isDiscover} =
|
const {
|
||||||
selectArgs
|
feedTuners,
|
||||||
|
moderationOpts,
|
||||||
|
ignoreFilterFor,
|
||||||
|
isDiscover,
|
||||||
|
hiddenReplyUris,
|
||||||
|
} = selectArgs
|
||||||
|
|
||||||
const tuner = new FeedTuner(feedTuners)
|
const tuner = new FeedTuner(feedTuners)
|
||||||
|
|
||||||
@@ -317,18 +331,22 @@ export function usePostFeedQuery(
|
|||||||
isFallbackMarker: slice.isFallbackMarker,
|
isFallbackMarker: slice.isFallbackMarker,
|
||||||
feedContext: slice.feedContext,
|
feedContext: slice.feedContext,
|
||||||
reason: slice.reason,
|
reason: slice.reason,
|
||||||
items: slice.items.map((item, i) => {
|
items: slice.items
|
||||||
const feedPostSliceItem: FeedPostSliceItem = {
|
.filter(item => {
|
||||||
_reactKey: `${slice._reactKey}-${i}-${item.post.uri}`,
|
return !hiddenReplyUris.includes(item.post.uri)
|
||||||
uri: item.post.uri,
|
})
|
||||||
post: item.post,
|
.map((item, i) => {
|
||||||
record: item.record,
|
const feedPostSliceItem: FeedPostSliceItem = {
|
||||||
moderation: moderations[i],
|
_reactKey: `${slice._reactKey}-${i}-${item.post.uri}`,
|
||||||
parentAuthor: item.parentAuthor,
|
uri: item.post.uri,
|
||||||
isParentBlocked: item.isParentBlocked,
|
post: item.post,
|
||||||
}
|
record: item.record,
|
||||||
return feedPostSliceItem
|
moderation: moderations[i],
|
||||||
}),
|
parentAuthor: item.parentAuthor,
|
||||||
|
isParentBlocked: item.isParentBlocked,
|
||||||
|
}
|
||||||
|
return feedPostSliceItem
|
||||||
|
}),
|
||||||
}
|
}
|
||||||
return feedPostSlice
|
return feedPostSlice
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user