Przeglądaj źródła

Add button to go back to top

Fixes #72
Zed 7 lat temu
rodzic
commit
a5c0fc3d72
2 zmienionych plików z 28 dodań i 2 usunięć
  1. 22 2
      src/sass/timeline.scss
  2. 6 0
      src/views/timeline.nim

+ 22 - 2
src/sass/timeline.scss

@@ -7,8 +7,8 @@
 .timeline {
     background-color: $bg_panel;
 
-    > div:not(:last-child) {
-        border-bottom: 1px solid $border_grey;
+    > div:not(:first-child) {
+        border-top: 1px solid $border_grey;
     }
 }
 
@@ -121,6 +121,26 @@
     }
 }
 
+.top-ref {
+    background-color: #0f0f0f;
+    border-top: none !important;
+
+    .icon-down {
+        font-size: 20px;
+        display: flex;
+        justify-content: center;
+        text-decoration: none;
+
+        &:hover {
+            color: $accent_light;
+        }
+
+        &::before {
+            transform: rotate(180deg) translateY(-1px);
+        }
+    }
+}
+
 .timeline-item {
     overflow-wrap: break-word;
     border-left-width: 0;

+ 6 - 0
src/views/timeline.nim

@@ -32,6 +32,10 @@ proc renderNoneFound(): VNode =
     h2(class="timeline-none"):
       text "No items found"
 
+proc renderToTop(): VNode =
+  buildHtml(tdiv(class="top-ref")):
+    icon "down", href="#"
+
 proc renderThread(thread: seq[Tweet]; prefs: Prefs; path: string): VNode =
   buildHtml(tdiv(class="thread-line")):
     for i, threadTweet in thread.sortedByIt(it.id):
@@ -68,6 +72,7 @@ proc renderTimelineUsers*(results: Result[Profile]; prefs: Prefs; path=""): VNod
         renderUser(user, prefs)
       if results.minId != "0":
         renderMore(results.query, results.minId)
+      renderToTop()
     elif results.beginning:
       renderNoneFound()
     else:
@@ -98,3 +103,4 @@ proc renderTimelineTweets*(results: Result[Tweet]; prefs: Prefs; path: string):
         renderMore(results.query, results.minId)
       else:
         renderNoMore()
+      renderToTop()