Browse Source

feat: add lite event wrapper for reposts

as a temporary measure to prevent a wall of json

if this information is displayed at all it should be in the footer
of the event rather than amoung the replies
master
DanConwayDev 2 years ago
parent
commit
961d1d8645
No known key found for this signature in database
GPG Key ID: 68E15486D73F75E1
  1. 23
      src/lib/components/events/EventWrapperLite.svelte
  2. 17
      src/lib/wrappers/EventCard.svelte

23
src/lib/components/events/EventWrapperLite.svelte

@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
<script lang="ts">
import dayjs from 'dayjs'
import UserHeader from '../users/UserHeader.svelte'
import type { User } from '../users/type'
import { defaults as user_defaults } from '../users/type'
export let author: User = { ...user_defaults }
export let created_at: number | undefined
let created_at_ago = ''
$: created_at_ago = created_at ? dayjs(created_at * 1000).fromNow() : ''
</script>
<div class="max-w-4xl border-b border-base-300 p-3 pl-3">
<div class="flex">
<div class="flex-auto">
<div class="inline text-neutral-400"><slot /></div>
<div class="badge bg-base-400 text-neutral-400">
<UserHeader user={author} inline />
</div>
</div>
<span class="m-auto pr-1 text-xs">{created_at_ago}</span>
</div>
</div>

17
src/lib/wrappers/EventCard.svelte

@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@
<script lang="ts">
import EventWrapper from '$lib/components/events/EventWrapper.svelte'
import EventWrapperLite from '$lib/components/events/EventWrapperLite.svelte'
import Status from '$lib/components/events/content/Status.svelte'
import Patch from '$lib/components/events/content/Patch.svelte'
import ParsedContent from '$lib/components/events/content/ParsedContent.svelte'
@ -28,8 +29,23 @@ @@ -28,8 +29,23 @@
onDestroy(() => {
if (author_unsubsriber) author_unsubsriber()
})
const getDtag = (event: NDKEvent): undefined | string => {
try {
const tag = event.replaceableDTag()
return tag
} catch {}
}
</script>
{#if event.kind && event.kind === 6}
<EventWrapperLite author={$author} created_at={event.created_at}>
reposted by
</EventWrapperLite>
{:else if event.kind && event.kind === 30001}
<EventWrapperLite author={$author} created_at={event.created_at}>
added to '{getDtag(event) || 'unknown'}' list by
</EventWrapperLite>
{:else}
<EventWrapper {type} author={$author} created_at={event.created_at} {event}>
{#if event.kind == patch_kind}
{#if isCoverLetter(event.content)}
@ -46,3 +62,4 @@ @@ -46,3 +62,4 @@
<ParsedContent content={event.content} tags={event.tags} />
{/if}
</EventWrapper>
{/if}

Loading…
Cancel
Save