diff options
author | dan <dan.abramov@gmail.com> | 2024-08-29 20:22:18 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-29 20:22:18 +0100 |
commit | 0a75969475854e849ae5c5a7383e1a1951c0b233 (patch) | |
tree | 34f421345b9d7f61770795cf5584a8488cdc66da /src | |
parent | e51eb391df754d02f006220eef177ef8c0cd0795 (diff) | |
download | voidsky-0a75969475854e849ae5c5a7383e1a1951c0b233.tar.zst |
Fix language filtering for feeds (#5026)
* Fix language filtering for feeds * Simplify logic
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/api/feed-manip.ts | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts index c2b80ca04..a0ee647b7 100644 --- a/src/lib/api/feed-manip.ts +++ b/src/lib/api/feed-manip.ts @@ -392,27 +392,20 @@ export class FeedTuner { slices: FeedViewPostsSlice[], _dryRun: boolean, ): FeedViewPostsSlice[] => { - const candidateSlices = slices.slice() - // early return if no languages have been specified if (!preferredLangsCode2.length || preferredLangsCode2.length === 0) { return slices } - for (let i = 0; i < slices.length; i++) { - let hasPreferredLang = false - for (const item of slices[i].items) { + const candidateSlices = slices.filter(slice => { + for (const item of slice.items) { if (isPostInLanguage(item.post, preferredLangsCode2)) { - hasPreferredLang = true - break + return true } } - // if item does not fit preferred language, remove it - if (!hasPreferredLang) { - candidateSlices.splice(i, 1) - } - } + return false + }) // if the language filter cleared out the entire page, return the original set // so that something always shows |