diff options
author | Paul Frazee <pfrazee@gmail.com> | 2024-04-12 07:53:11 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-12 15:53:11 +0100 |
commit | ed2c8b720edb0886f72e97539fc5b08d943dda42 (patch) | |
tree | 1878a3884cce3b1c026db1ef2de1dfbd87a64f56 /src | |
parent | ad97d4350c55055c3fcf084915a0a067c09939da (diff) | |
download | voidsky-ed2c8b720edb0886f72e97539fc5b08d943dda42.tar.zst |
Dont apply the content-language filter if it will remove all content (#3492)
* Dont apply the content-language filter if it will remove all content * Improve code
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/api/feed-manip.ts | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts index 227062592..85089608a 100644 --- a/src/lib/api/feed-manip.ts +++ b/src/lib/api/feed-manip.ts @@ -1,11 +1,12 @@ import { + AppBskyEmbedRecord, + AppBskyEmbedRecordWithMedia, AppBskyFeedDefs, AppBskyFeedPost, - AppBskyEmbedRecordWithMedia, - AppBskyEmbedRecord, } from '@atproto/api' -import {ReasonFeedSource} from './feed/types' + import {isPostInLanguage} from '../../locale/helpers' +import {ReasonFeedSource} from './feed/types' type FeedViewPost = AppBskyFeedDefs.FeedViewPost export type FeedTunerFn = ( @@ -341,6 +342,8 @@ export class FeedTuner { tuner: FeedTuner, slices: FeedViewPostsSlice[], ): FeedViewPostsSlice[] => { + const candidateSlices = slices.slice() + // early return if no languages have been specified if (!preferredLangsCode2.length || preferredLangsCode2.length === 0) { return slices @@ -357,10 +360,17 @@ export class FeedTuner { // if item does not fit preferred language, remove it if (!hasPreferredLang) { - slices.splice(i, 1) + candidateSlices.splice(i, 1) } } - return slices + + // if the language filter cleared out the entire page, return the original set + // so that something always shows + if (candidateSlices.length === 0) { + return slices + } + + return candidateSlices } } } |