]> git.r.bdr.sh - rbdr/forum/blobdiff - src/components/topic/topic.svelte
Port to sveltekit
[rbdr/forum] / src / components / topic / topic.svelte
index 2aff79a6ce42ef33b64b463a19dd5aab3c2baf3f..181b429557fde68a23a9cdc9ad185dcfc03e83c1 100644 (file)
@@ -1,59 +1,44 @@
 <script>
-  import { _ } from 'svelte-i18n';
+       export let topic;
 
-  import Glyph from '../glyph/glyph.svelte';
+       import { _ } from 'svelte-i18n';
+       import Post from '$/components/post/post.svelte';
+       import { readableTime } from '$/utils/readable_time.js';
+
+       $: remainingTime = topic ? topic.updated_at + topic.ttl - Date.now() : 0;
+       $: remaining = readableTime(remainingTime);
 </script>
 
-<div class="h-entry" title="{$_('topic.title')}">
-  <h1 class="p-name">This is a post in the forum.</h1>
-  <aside class="topic-meta" title="{$_('topic.metadata_title')}">
-    <span class="topic-location">{$_('topic.category_location')} <a href="/f/interaction"
-        class="p-category">{$_('forum.name.interaction')}</a>.</span>
-    <span class="topic-ttl"><a class="u-url u-uid" title="{$_('topic.permalink_title')}" href="/t/2a3fc567af8c897ca6f55fb5fj">{$_('topic.remaining_time', { values: { remaining: $_('time.days', { values: { count: 3 } }) } })}</a>.</span>
-  </aside>
-  <aside class="topic-tags" title="{$_('topic.tags_title')}">
-    {$_('topic.tags_location')}
-    <a href="/g/question" class="p-category">question<span class="tag-weight">(5)</span></a>
-    <a href="/g/meta" class="p-category">meta<span class="tag-weight">(34)</span></a>
-    <a href="/g/carrots" class="p-category">carrots<span class="tag-weight">(1)</span></a>
-    <a href="/g/tpbo" class="p-category">tpbo<span class="tag-weight">(2)</span></a>
-  </aside>
-  <aside class="post-meta" title="{$_('post.metadata_title', { values: { count: 1, total: 2 } })}">
-    <Glyph uuid="3cd8c84e18144a2da71f6bace9392abc" />
-    <span class="h-card">
-      {$_('post.author_credit')} <a href="/a/rbdr" class="p-nickname u-url">rbdr</a>.
-    </span>
-    <time role="presentation" class="dt-published" datetime="2018-08-14T03:32:10.929Z">
-      <a title="{$_('post.permalink_title')}" href="/p/a80c70ea0120387123097ce1907ff">
-        2018-08-14 03:32:10
-      </a>
-    </time>
-  </aside>
-  <article class="e-content" title="{$_('post.title', { values: { count: 1, total: 2, author: 'rbdr' } })}">
-    <p>This is a main topic in the forum. Does that abstraction still even make sense?</p>
-    <p>Is this really it??</p>
-    <p>This might all be fake but at least the links look purple when visited</p>
-  </article>
-  <hr/>
-  <aside class="post-meta" title="{$_('post.metadata_title', { values: { count: 2, total: 2 } })}">
-    <Glyph uuid="b33f0339f7d64d1ca27f1c0aefb7d753" />
-    <span class="h-card">
-      {$_('post.author_credit')} <a href="/a/time4carrots" class="p-nickname u-url">time4carrots</a>.
-    </span>
-    <time role="presentation" class="dt-published" datetime="2018-08-15T04:10:00.929Z">
-      <a href="/p/da9910f3febde91948000ce1535ea">
-        2018-08-15 04:10:00
-      </a>
-    </time>
-  </aside>
-  <article class="e-content" title="{$_('post.title', { values: { count: 1, total: 2, author: 'time4carrots' } })}">
-    <p>It's just how it is...</p>
-  </article>
-  <hr/>
+<div class="h-entry" title={$_('topic.title')}>
+       <h1 class="p-name">{topic.title}</h1>
+       <aside class="topic-meta" title={$_('topic.metadata_title')}>
+               {#if topic.forum}
+                       <span class="topic-location"
+                               >{$_('topic.category_location')}
+                               <a href="/f/{topic.forum.id}" class="p-category"
+                                       >{topic.forum.glyph} {$_(topic.forum.label)}</a
+                               >.</span
+                       >
+               {/if}
+               <span class="topic-ttl"
+                       ><a class="u-url u-uid" title={$_('topic.permalink_title')} href="/t/{topic.id}"
+                               >({$_('topic.remaining_time', {
+                                       values: { remaining: $_(remaining.label, { values: { count: remaining.count } }) }
+                               })})</a
+                       >.</span
+               >
+       </aside>
+       {#if topic.tags.length > 0}
+               <aside class="topic-tags" title={$_('topic.tags_title')}>
+                       {$_('topic.tags_location')}
+                       {#each topic.tags as tag}
+                               <a href="/g/{tag.id}" class="p-category"
+                                       >{tag.id}<span class="tag-weight">({tag.weight})</span></a
+                               >{' '}
+                       {/each}
+               </aside>
+       {/if}
+       {#each topic.posts as post, index}
+               <Post {post} {index} count={topic.posts.length} />
+       {/each}
 </div>
-
-<style>
-  .post-meta * {
-    vertical-align: top;
-  }
-</style>