···11import {
22+ AppBskyEmbedRecord,
33+ AppBskyEmbedRecordWithMedia,
24 AppBskyFeedDefs,
35 AppBskyFeedPost,
44- AppBskyEmbedRecordWithMedia,
55- AppBskyEmbedRecord,
66} from '@atproto/api'
77+88+import {isPostInLanguage} from '../../locale/helpers'
79import {ReasonFeedSource} from './feed/types'
88-import {isPostInLanguage} from '../../locale/helpers'
910type FeedViewPost = AppBskyFeedDefs.FeedViewPost
10111112export type FeedTunerFn = (
···341342 tuner: FeedTuner,
342343 slices: FeedViewPostsSlice[],
343344 ): FeedViewPostsSlice[] => {
345345+ const candidateSlices = slices.slice()
346346+344347 // early return if no languages have been specified
345348 if (!preferredLangsCode2.length || preferredLangsCode2.length === 0) {
346349 return slices
···357360358361 // if item does not fit preferred language, remove it
359362 if (!hasPreferredLang) {
360360- slices.splice(i, 1)
363363+ candidateSlices.splice(i, 1)
361364 }
362365 }
363363- return slices
366366+367367+ // if the language filter cleared out the entire page, return the original set
368368+ // so that something always shows
369369+ if (candidateSlices.length === 0) {
370370+ return slices
371371+ }
372372+373373+ return candidateSlices
364374 }
365375 }
366376}