Browse Source

feat: include kind in share nevent

as requested in:
nostr:nevent1qvzqqqqqqypzpepndn2jthmelfxn4umylktqp493ph8yy9d2fse76al2ppprgjcsqy88wumn8ghj7mn0wvhxcmmv9uq3wamnwvaz7tmjv4kxz7fwdehhxarj9e3xzmny9uqzpu6lzfhs9xfjm8ue47mvvuxfwa3rm5v2fdd43ma6g47t7ssv7x70ed7vr6
master
DanConwayDev 2 years ago
parent
commit
e1e5cb7d2a
No known key found for this signature in database
GPG Key ID: 68E15486D73F75E1
  1. 6
      src/lib/components/events/EventWrapper.svelte
  2. 30
      src/lib/components/repo/utils.ts

6
src/lib/components/events/EventWrapper.svelte

@ -7,6 +7,8 @@ @@ -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 @@ @@ -90,11 +92,11 @@
<div class="prose"><h3>Share</h3></div>
<CopyField
label="nostr address"
content={`nostr:${event.encode()}`}
content={`nostr:${ndkEventToNeventOrNaddr(event)}`}
/>
<CopyField
label="njump"
content={`https://njump.me/${event.encode()}`}
content={`https://njump.me/${ndkEventToNeventOrNaddr(event)}`}
border_color="secondary"
/>
<CopyField

30
src/lib/components/repo/utils.ts

@ -2,6 +2,7 @@ import type { AddressPointer } from 'nostr-tools/lib/types/nip19' @@ -2,6 +2,7 @@ import type { AddressPointer } from 'nostr-tools/lib/types/nip19'
import type { RepoCollection, RepoEvent } from './type'
import { nip19 } from 'nostr-tools'
import { repo_kind } from '$lib/kinds'
import type { NDKEvent, NDKRelay } from '@nostr-dev-kit/ndk'
export const selectRepoFromCollection = (
collection: RepoCollection
@ -103,3 +104,32 @@ export const neventOrNoteToHexId = (s: string): string | undefined => { @@ -103,3 +104,32 @@ export const neventOrNoteToHexId = (s: string): string | undefined => {
} 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())
}
}

Loading…
Cancel
Save