Implement proper infinite scroll for replies

Fixes #125
This commit is contained in:
Zed
2020-04-29 18:09:13 +02:00
parent d20cddd15f
commit c6215876fa
9 changed files with 102 additions and 44 deletions

View File

@@ -29,6 +29,15 @@ proc renderReplyThread(thread: Chain; prefs: Prefs; path: string): VNode =
if thread.more != 0:
renderMoreReplies(thread)
proc renderReplies*(replies: Result[Chain]; prefs: Prefs; path: string): VNode =
buildHtml(tdiv(class="replies", id="r")):
for thread in replies.content:
if thread == nil: continue
renderReplyThread(thread, prefs, path)
if replies.hasMore:
renderMore(Query(), replies.minId, focus="#r")
proc renderConversation*(conversation: Conversation; prefs: Prefs; path: string): VNode =
let hasAfter = conversation.after != nil
let showReplies = not prefs.hideReplies
@@ -60,10 +69,4 @@ proc renderConversation*(conversation: Conversation; prefs: Prefs; path: string)
renderNewer(Query(), getLink(conversation.tweet))
if conversation.replies.content.len > 0 and showReplies:
tdiv(class="replies", id="r"):
for thread in conversation.replies.content:
if thread == nil: continue
renderReplyThread(thread, prefs, path)
if conversation.replies.hasMore and showReplies:
renderMore(Query(), conversation.replies.minId, focus="#r")
renderReplies(conversation.replies, prefs, path)