Skip to content

Commit

Permalink
Merge branch 'main' into fix-typos
Browse files Browse the repository at this point in the history
  • Loading branch information
mattn committed Oct 18, 2023
2 parents 4a39da7 + d63c106 commit b09e08e
Showing 1 changed file with 58 additions and 2 deletions.
60 changes: 58 additions & 2 deletions web/src/routes/[slug=note]/+page.svelte
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<script lang="ts">
import type { Event } from 'nostr-typedef';
import { createRxOneshotReq, filterKind, uniq, type LazyFilter } from 'rx-nostr';
import { tap } from 'rxjs';
import { rxNostr, referencesReqEmit } from '$lib/timelines/MainTimeline';
Expand All @@ -17,6 +18,7 @@
import CustomEmoji from '../content/CustomEmoji.svelte';
import IconRepeat from '@tabler/icons-svelte/dist/svelte/icons/IconRepeat.svelte';
import IconHeart from '@tabler/icons-svelte/dist/svelte/icons/IconHeart.svelte';
import IconBolt from '@tabler/icons-svelte/dist/svelte/icons/IconBolt.svelte';
export let data: PageData;
Expand All @@ -34,6 +36,7 @@
let repliedToEventItems: EventItem[] = [];
let repostEventItems: EventItem[] = [];
let reactionEventItems: EventItem[] = [];
let zapEventItems: EventItem[] = [];
let customEmojiShortcode = new Map<string, string>();
Expand Down Expand Up @@ -69,6 +72,11 @@
return map;
}, new Map<string, EventItem[]>());
$: zapMetadataList =
zapEventItems
.map((x) => $metadataStore.get(x.event.pubkey))
.filter((x): x is Metadata => x !== undefined);
$: if (eventId !== data.eventId) {
eventId = data.eventId;
console.log('[thread event id]', eventId);
Expand Down Expand Up @@ -126,6 +134,34 @@
reactionEventItems.push(eventItem);
reactionEventItems = reactionEventItems;
});
// Zap
observable.pipe(filterKind(9735)).subscribe(packet => {
console.log('[thread kind 9735]', packet);
let event: Event | undefined;
const description = packet.event.tags
.find(([tagName, tagContent]) => tagName === 'description' && tagContent !== undefined)
?.at(1);
if (description !== undefined) {
console.log('[thread kind 9734]', description);
try {
event = JSON.parse(description) as Event;
referencesReqEmit(event, true);
} catch (error) {
console.log('[zap description parse error]', description);
}
}
if (event === undefined) {
return;
}
const eventItem = new EventItem(event);
zapEventItems.sort(chronologicalItem);
zapEventItems.push(eventItem);
zapEventItems = zapEventItems;
});
}
$: if (item !== undefined) {
Expand Down Expand Up @@ -175,6 +211,7 @@
repliedToEventItems = [];
repostEventItems = [];
reactionEventItems = [];
zapEventItems = [];
customEmojiShortcode = new Map<string, string>();
}
</script>
Expand Down Expand Up @@ -209,7 +246,7 @@
<span class="count">{repostEventItems.length}</span>
<ProfileIconList metadataList={repostMetadataList} />
</section>
{#each [...reactionMetadataMap] as [content, items]}
{#each [...reactionMetadataMap] as [content, metadataList]}
<section class="reaction counter card">
<span class="icon" class:heart={content === '+'}>
{#if content === '+'}
Expand All @@ -220,10 +257,25 @@
<span>{content}</span>
{/if}
</span>
<span class="count">{items.length}</span>
<span class="count">{metadataList.length}</span>
<ProfileIconList metadataList={metadataList.map(item => $metadataStore.get(item.event.pubkey))} />
</section>
{:else}
<section class="reaction counter card">
<span class="icon heart">
<IconHeart />
</span>
<span class="count">0</span>
<ProfileIconList metadataList={items.map(item => $metadataStore.get(item.event.pubkey))} />
</section>
{/each}
<section class="zap counter card">
<span class="icon"><IconBolt /></span>
{#if zapMetadataList.length === 0}
<span class="count">-</span>
{/if}
<ProfileIconList metadataList={zapMetadataList} />
</section>
{#if $author !== undefined && item !== undefined}
<div class="mute">
<MuteButton tagName="e" tagContent={rootId === undefined ? item.event.id : rootId} />
Expand Down Expand Up @@ -270,6 +322,10 @@
color: var(--red);
}
.zap .icon {
color: var(--yellow);
}
.mute {
margin-top: 16px;
display: flex;
Expand Down

0 comments on commit b09e08e

Please sign in to comment.