html and css updates

This commit is contained in:
Zed
2020-06-01 02:22:22 +02:00
parent 762d00b21d
commit 2950c0de35
14 changed files with 246 additions and 224 deletions

View File

@@ -1,3 +1,4 @@
import uri
import karax/[karaxdsl, vdom]
import ".."/[types, formatters]
@@ -13,7 +14,7 @@ proc renderMoreReplies(thread: Chain): VNode =
let reply = if thread.more == 1: "reply" else: "replies"
let link = getLink(thread.content[^1])
buildHtml(tdiv(class="timeline-item more-replies")):
if link.len > 0:
if thread.content[^1].available:
a(class="more-replies-text", href=link):
text $num & "more " & reply
else:
@@ -32,41 +33,45 @@ proc renderReplyThread(thread: Chain; prefs: Prefs; path: string): VNode =
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
if thread.content.len == 0: continue
renderReplyThread(thread, prefs, path)
if replies.hasMore:
renderMore(Query(), replies.minId, focus="#r")
if replies.bottom.len > 0:
renderMore(Query(), encodeUrl(replies.bottom), focus="#r")
proc renderConversation*(conversation: Conversation; prefs: Prefs; path: string): VNode =
let hasAfter = conversation.after != nil
let showReplies = not prefs.hideReplies
proc renderConversation*(conv: Conversation; prefs: Prefs; path: string): VNode =
let hasAfter = conv.after.content.len > 0
let threadId = conv.tweet.threadId
buildHtml(tdiv(class="conversation")):
tdiv(class="main-thread"):
if conversation.before != nil:
if conv.before.content.len > 0:
tdiv(class="before-tweet thread-line"):
if conversation.before.more == -1:
renderEarlier(conversation.before)
for i, tweet in conversation.before.content:
let first = conv.before.content[0]
if threadId != first.id and (first.replyId > 0 or not first.available):
renderEarlier(conv.before)
for i, tweet in conv.before.content:
renderTweet(tweet, prefs, path, index=i)
tdiv(class="main-tweet", id="m"):
let afterClass = if hasAfter: "thread thread-line" else: ""
renderTweet(conversation.tweet, prefs, path, class=afterClass,
mainTweet=true)
renderTweet(conv.tweet, prefs, path, class=afterClass, mainTweet=true)
if hasAfter:
tdiv(class="after-tweet thread-line"):
let total = conversation.after.content.high
let more = conversation.after.more
for i, tweet in conversation.after.content:
renderTweet(tweet, prefs, path, index=i, last=(i == total and more == 0))
let
total = conv.after.content.high
more = conv.after.more
for i, tweet in conv.after.content:
renderTweet(tweet, prefs, path, index=i,
last=(i == total and more == 0), afterTweet=true)
if more != 0:
renderMoreReplies(conversation.after)
renderMoreReplies(conv.after)
if conversation.replies != nil and showReplies:
if not conversation.replies.beginning:
renderNewer(Query(), getLink(conversation.tweet))
if conversation.replies.content.len > 0:
renderReplies(conversation.replies, prefs, path)
if not prefs.hideReplies:
if not conv.replies.beginning:
renderNewer(Query(), getLink(conv.tweet), focus="#r")
if conv.replies.content.len > 0 or conv.replies.bottom.len > 0:
renderReplies(conv.replies, prefs, path)
renderToTop(focus="#m")