diff --git a/src/lib/components/events/EventWrapper.svelte b/src/lib/components/events/EventWrapper.svelte
index cc79146..c1ac561 100644
--- a/src/lib/components/events/EventWrapper.svelte
+++ b/src/lib/components/events/EventWrapper.svelte
@@ -7,6 +7,8 @@
import { logged_in_user } from '$lib/stores/users'
import type { NDKEvent } from '@nostr-dev-kit/ndk'
import CopyField from '../CopyField.svelte'
+ import { nip19 } from 'nostr-tools'
+ import { ndkEventToNeventOrNaddr } from '../repo/utils'
export let type: 'proposal' | 'issue' = 'proposal'
export let author: User = { ...user_defaults }
@@ -90,11 +92,11 @@
Share
{
} catch {}
return undefined
}
+
+/** this functoin can be removed when ndk.encode includes kind in nevent */
+export const ndkEventToNeventOrNaddr = (
+ event: NDKEvent
+): string | undefined => {
+ let relays: string[] = []
+ if (event.onRelays.length > 0) {
+ relays = event.onRelays.map((relay) => relay.url)
+ } else if (event.relay) {
+ relays = [event.relay.url]
+ }
+ if (event.kind && event.isParamReplaceable()) {
+ return nip19.naddrEncode({
+ kind: event.kind,
+ pubkey: event.pubkey,
+ identifier: event.replaceableDTag(),
+ relays,
+ })
+ } else if (relays.length > 0) {
+ return nip19.neventEncode({
+ kind: event.kind,
+ id: event.tagId(),
+ relays,
+ author: event.pubkey,
+ })
+ } else {
+ return nip19.noteEncode(event.tagId())
+ }
+}