| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- import strutils, strformat
- import karax/[karaxdsl, vdom]
- import ../types
- import tweet, renderutils
- proc renderReplyThread(thread: Thread; prefs: Prefs): VNode =
- buildHtml(tdiv(class="reply thread thread-line")):
- for i, tweet in thread.tweets:
- let last = (i == thread.tweets.high and thread.more == 0)
- renderTweet(tweet, prefs, index=i, last=last)
- if thread.more != 0:
- let num = if thread.more != -1: $thread.more & " " else: ""
- let reply = if thread.more == 1: "reply" else: "replies"
- tdiv(class="status-el more-replies"):
- a(class="more-replies-text", title="Not implemented yet"):
- text $num & "more " & reply
- proc renderConversation*(conversation: Conversation; prefs: Prefs): VNode =
- let hasAfter = conversation.after != nil
- buildHtml(tdiv(class="conversation", id="posts")):
- tdiv(class="main-thread"):
- if conversation.before != nil:
- tdiv(class="before-tweet thread-line"):
- for i, tweet in conversation.before.tweets:
- renderTweet(tweet, prefs, index=i)
- tdiv(class="main-tweet"):
- let afterClass = if hasAfter: "thread thread-line" else: ""
- renderTweet(conversation.tweet, prefs, class=afterClass)
- if hasAfter:
- tdiv(class="after-tweet thread-line"):
- let total = conversation.after.tweets.high
- for i, tweet in conversation.after.tweets:
- renderTweet(tweet, prefs, index=i, total=total)
- if conversation.replies.len > 0:
- tdiv(class="replies"):
- for thread in conversation.replies:
- renderReplyThread(thread, prefs)
|