Thread viewer for Bluesky

fixed when missing replies are actually hidden replies

+22 -8
+9 -8
src/components/posts/PostComponent.svelte
··· 77 77 } 78 78 79 79 function onMoreRepliesLoaded(newPost: Post) { 80 - replies = post.replies = newPost.replies; 81 - repliesLoaded = true; 82 - // TODO: more replies turning into hidden replies 80 + post.updateDataFromPost(newPost); 81 + replies = post.replies; 83 82 } 84 83 85 84 function onHiddenRepliesLoaded(newReplies: (AnyPost | null)[]) { ··· 156 155 {/if} 157 156 158 157 {#if placement == 'thread' && !repliesLoaded} 159 - {#if post.hasMoreReplies} 160 - <LoadMoreLink onLoad={onMoreRepliesLoaded} onError={onRepliesLoadingError} /> 161 - {:else if post.hasHiddenReplies && settings.biohazardsEnabled !== false} 162 - <HiddenRepliesLink onLoad={onHiddenRepliesLoaded} onError={onRepliesLoadingError} /> 163 - {/if} 158 + {#key replies} 159 + {#if post.hasMoreReplies} 160 + <LoadMoreLink onLoad={onMoreRepliesLoaded} onError={onRepliesLoadingError} /> 161 + {:else if post.hasHiddenReplies && settings.biohazardsEnabled !== false} 162 + <HiddenRepliesLink onLoad={onHiddenRepliesLoaded} onError={onRepliesLoadingError} /> 163 + {/if} 164 + {/key} 164 165 {/if} 165 166 166 167 {#if missingHiddenReplies !== undefined}
+13
src/models/posts.js
··· 252 252 } 253 253 } 254 254 255 + /** @param {Post} post */ 256 + 257 + updateDataFromPost(post) { 258 + this.record = post.record; 259 + this.embed = post.embed; 260 + this.author = post.author; 261 + this.viewerData = post.viewerData; 262 + this.viewerLike = post.viewerLike; 263 + this.level = post.level; 264 + this.absoluteLevel = post.absoluteLevel; 265 + this.setReplies(post.replies); 266 + } 267 + 255 268 /** @param {AnyPost[]} replies */ 256 269 257 270 setReplies(replies) {