diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-11-29 20:11:01 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-29 20:11:01 -0800 |
commit | a03f57c8c380097abeadfade91235f6f96c1e8ca (patch) | |
tree | d2a3a231a9de269aecc36c8080d4422fae40c81b /src/state/preferences/feed-tuners.tsx | |
parent | 3e1b2346ee05ccec878933dda68d7e6bc09d9381 (diff) | |
download | voidsky-a03f57c8c380097abeadfade91235f6f96c1e8ca.tar.zst |
Apply feed preferences (react-query refactor) (#2040)
* Actually implement the feed tuners hook * Move feed-tuner pass into select() to have it apply immediately on change
Diffstat (limited to 'src/state/preferences/feed-tuners.tsx')
-rw-r--r-- | src/state/preferences/feed-tuners.tsx | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/state/preferences/feed-tuners.tsx b/src/state/preferences/feed-tuners.tsx index 96770055c..c4954d20a 100644 --- a/src/state/preferences/feed-tuners.tsx +++ b/src/state/preferences/feed-tuners.tsx @@ -2,9 +2,13 @@ import {useMemo} from 'react' import {FeedTuner} from '#/lib/api/feed-manip' import {FeedDescriptor} from '../queries/post-feed' import {useLanguagePrefs} from './languages' +import {usePreferencesQuery} from '../queries/preferences' +import {useSession} from '../session' export function useFeedTuners(feedDesc: FeedDescriptor) { const langPrefs = useLanguagePrefs() + const {data: preferences} = usePreferencesQuery() + const {currentAccount} = useSession() return useMemo(() => { if (feedDesc.startsWith('feedgen')) { @@ -19,30 +23,30 @@ export function useFeedTuners(feedDesc: FeedDescriptor) { if (feedDesc === 'home' || feedDesc === 'following') { const feedTuners = [] - if (false /*TODOthis.homeFeed.hideReposts*/) { + if (preferences?.feedViewPrefs.hideReposts) { feedTuners.push(FeedTuner.removeReposts) } else { feedTuners.push(FeedTuner.dedupReposts) } - if (true /*TODOthis.homeFeed.hideReplies*/) { + if (preferences?.feedViewPrefs.hideReplies) { feedTuners.push(FeedTuner.removeReplies) - } /* TODO else { + } else { feedTuners.push( FeedTuner.thresholdRepliesOnly({ - userDid: this.rootStore.session.data?.did || '', - minLikes: this.homeFeed.hideRepliesByLikeCount, - followedOnly: !!this.homeFeed.hideRepliesByUnfollowed, + userDid: currentAccount?.did || '', + minLikes: preferences?.feedViewPrefs.hideRepliesByLikeCount || 0, + followedOnly: !!preferences?.feedViewPrefs.hideRepliesByUnfollowed, }), ) - }*/ + } - if (false /*TODOthis.homeFeed.hideQuotePosts*/) { + if (preferences?.feedViewPrefs.hideQuotePosts) { feedTuners.push(FeedTuner.removeQuotePosts) } return feedTuners } return [] - }, [feedDesc, langPrefs]) + }, [feedDesc, currentAccount, preferences, langPrefs]) } |