Start working on threads page

This commit is contained in:
Jon Staab
2024-09-23 13:10:15 -07:00
parent 4c9b7da586
commit 26eb4faf37
11 changed files with 252 additions and 10 deletions
+45
View File
@@ -0,0 +1,45 @@
<script lang="ts">
import cx from "classnames"
import {onMount} from "svelte"
import type {Readable} from "svelte/store"
import {createEditor, type Editor, EditorContent} from "svelte-tiptap"
import {displayPubkey} from '@welshman/util'
import {deriveProfile, deriveProfileDisplay, formatTimestamp} from "@welshman/app"
import Avatar from '@lib/components/Avatar.svelte'
import {getChatViewOptions} from '@app/editor'
export let root
export let replies
const profile = deriveProfile(root.pubkey)
const profileDisplay = deriveProfileDisplay(root.pubkey)
let editor: Readable<Editor>
onMount(() => {
editor = createEditor(getChatViewOptions(root.content))
})
</script>
<div>
<div class="card2 flex flex-col gap-2">
<div class="flex justify-between items-center gap-2">
<div class="flex gap-2">
<div class="py-1">
<Avatar src={$profile?.picture} size={10} />
</div>
<div class="flex flex-col">
<div class="text-bold">{$profileDisplay}</div>
<div class="text-sm opacity-75">{displayPubkey(root.pubkey)}</div>
</div>
</div>
<span class="text-sm opacity-75">{formatTimestamp(root.created_at)}</span>
</div>
<div class="ml-12">
<EditorContent editor={$editor} />
</div>
</div>
{#if replies.length > 0}
Show {replies.length} {replies.length === 1 ? 'reply' : 'replies'}
{/if}
</div>