diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-12-12 13:07:09 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-12 13:07:09 -0800 |
commit | 870505cbe23a04aeece902943e335c6e78ab5d8b (patch) | |
tree | adf63122bc8c71e29c61b0fcaa19ea7930c36fd9 /src/lib/api/feed-manip.ts | |
parent | 90647fe7cf41d5dd66b6df64910bf7d481548d6b (diff) | |
download | voidsky-870505cbe23a04aeece902943e335c6e78ab5d8b.tar.zst |
Go back to content-driven slice keys in feeds (#2190)
* Go back to deterministic react keys * Quick fix to cases when custom feeds serve empty responses
Diffstat (limited to 'src/lib/api/feed-manip.ts')
-rw-r--r-- | src/lib/api/feed-manip.ts | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/lib/api/feed-manip.ts b/src/lib/api/feed-manip.ts index 622724b35..9a050fd3e 100644 --- a/src/lib/api/feed-manip.ts +++ b/src/lib/api/feed-manip.ts @@ -14,9 +14,15 @@ export type FeedTunerFn = ( ) => FeedViewPostsSlice[] export class FeedViewPostsSlice { + _reactKey: string isFlattenedReply = false - constructor(public items: FeedViewPost[], public _reactKey: string) {} + constructor(public items: FeedViewPost[]) { + const item = items[0] + this._reactKey = `slice-${item.post.uri}-${ + item.reason?.indexedAt || item.post.indexedAt + }` + } get uri() { if (this.isFlattenedReply) { @@ -120,9 +126,7 @@ export class NoopFeedTuner { feed: FeedViewPost[], _opts?: {dryRun: boolean; maintainOrder: boolean}, ): FeedViewPostsSlice[] { - return feed.map( - item => new FeedViewPostsSlice([item], `slice-${this.keyCounter++}`), - ) + return feed.map(item => new FeedViewPostsSlice([item])) } } @@ -160,9 +164,7 @@ export class FeedTuner { }) if (maintainOrder) { - slices = feed.map( - item => new FeedViewPostsSlice([item], `slice-${this.keyCounter++}`), - ) + slices = feed.map(item => new FeedViewPostsSlice([item])) } else { // arrange the posts into thread slices for (let i = feed.length - 1; i >= 0; i--) { @@ -178,9 +180,7 @@ export class FeedTuner { continue } } - slices.unshift( - new FeedViewPostsSlice([item], `slice-${this.keyCounter++}`), - ) + slices.unshift(new FeedViewPostsSlice([item])) } } |