Browse Source

feat: ComposeReply add nip10 p tags

tag in pubkeys participating in thread
master
DanConwayDev 2 years ago
parent
commit
ef3fd9e9cc
No known key found for this signature in database
GPG Key ID: 68E15486D73F75E1
  1. 9
      src/lib/components/events/EventWrapper.svelte
  2. 1
      src/lib/wrappers/ComposeIssue.svelte
  3. 44
      src/lib/wrappers/ComposeReply.svelte
  4. 8
      src/lib/wrappers/EventCard.svelte
  5. 2
      src/lib/wrappers/ThreadTree.svelte

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

@ -10,8 +10,7 @@ @@ -10,8 +10,7 @@
export let type: 'proposal' | 'issue' = 'proposal'
export let author: User = { ...user_defaults }
export let created_at: number | undefined
export let event_id = ''
export let event: NDKEvent | undefined = undefined
export let event: NDKEvent
let show_compose = false
let show_raw_json_modal = false
let created_at_ago = ''
@ -100,11 +99,7 @@ @@ -100,11 +99,7 @@
>
</div>
<div class="">
<ComposeReply
{type}
reply_to_event_id={event_id}
sentFunction={() => replySent()}
/>
<ComposeReply {type} {event} sentFunction={() => replySent()} />
</div>
</div>
{/if}

1
src/lib/wrappers/ComposeIssue.svelte

@ -31,7 +31,6 @@ @@ -31,7 +31,6 @@
'root',
])
repo_event.maintainers.forEach((m) => event.tags.push(['p', m.hexpubkey]))
// TODO nip-10 reply chain p tags
event.content = content
submitting = true
let relays = [

44
src/lib/wrappers/ComposeReply.svelte

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
import { base_relays, ndk } from '$lib/stores/ndk'
import { NDKEvent, NDKRelaySet } from '@nostr-dev-kit/ndk'
import { reply_kind, repo_kind } from '$lib/kinds'
import { getUserRelays, logged_in_user } from '$lib/stores/users'
import { getUserRelays, logged_in_user, user_relays } from '$lib/stores/users'
import {
selected_repo_collection,
selected_repo_event,
@ -12,9 +12,10 @@ @@ -12,9 +12,10 @@
import { selected_issue_full } from '$lib/stores/Issue'
import type { IssueFull } from '$lib/components/issues/type'
import type { ProposalFull } from '$lib/components/proposals/type'
import { get } from 'svelte/store'
export let type: 'proposal' | 'issue' = 'proposal'
export let reply_to_event_id = ''
export let event: NDKEvent
export let sentFunction = () => {}
let repo_identifier: string
let selected_proposal_or_issue: IssueFull | ProposalFull
@ -36,43 +37,52 @@ @@ -36,43 +37,52 @@
async function sendReply(content: string) {
if (!$logged_in_user) return
let event = new NDKEvent(ndk)
event.kind = reply_kind
event.tags.push([
let new_event = new NDKEvent(ndk)
new_event.kind = reply_kind
new_event.tags.push([
'e',
selected_proposal_or_issue.summary.id,
$selected_repo_event.relays[0] || '',
'root',
])
if (reply_to_event_id.length > 0) {
event.tags.push([
if (new_event.id.length > 0) {
new_event.tags.push([
'e',
reply_to_event_id,
new_event.id,
$selected_repo_event.relays[0] || '',
'reply',
])
}
if ($selected_repo_event.unique_commit) {
event.tags.push(['r', $selected_repo_event.unique_commit])
new_event.tags.push(['r', $selected_repo_event.unique_commit])
}
event.tags.push([
new_event.tags.push([
'a',
`${repo_kind}:${$selected_repo_event.maintainers[0].hexpubkey}:${repo_identifier}`,
])
$selected_repo_event.maintainers.forEach((m) =>
event.tags.push(['p', m.hexpubkey])
let parent_event_user_relay = user_relays[event.pubkey]
? get(user_relays[event.pubkey]).ndk_relays?.writeRelayUrls[0]
: undefined
new_event.tags.push(
parent_event_user_relay
? ['p', event.pubkey, parent_event_user_relay]
: ['p', event.pubkey]
)
// TODO nip-10 reply chain p tags
event.content = content
new_event.tags
.filter((tag) => tag[0] === 'p')
.forEach((tag) => {
new_event.tags.push(tag)
})
new_event.content = content
submitting = true
let relays = [
...($selected_repo_event.relays.length > 3
? $selected_repo_event.relays
: [...base_relays].concat($selected_repo_event.relays)),
]
try {
event.sign()
new_event.sign()
} catch {
alert('failed to sign event')
}
@ -89,7 +99,7 @@ @@ -89,7 +99,7 @@
alert('failed to get user relays')
}
try {
let _ = await event.publish(NDKRelaySet.fromRelayUrls(relays, ndk))
let _ = await new_event.publish(NDKRelaySet.fromRelayUrls(relays, ndk))
submitting = false
submitted = true
setTimeout(() => {

8
src/lib/wrappers/EventCard.svelte

@ -26,13 +26,7 @@ @@ -26,13 +26,7 @@
})
</script>
<EventWrapper
{type}
author={$author}
created_at={event.created_at}
event_id={event.id}
{event}
>
<EventWrapper {type} author={$author} created_at={event.created_at} {event}>
{#if event.kind == patch_kind}
<Patch content={event.content} tags={event.tags} />
{:else if event.kind && proposal_status_kinds.includes(event.kind)}

2
src/lib/wrappers/ThreadTree.svelte

@ -131,6 +131,6 @@ @@ -131,6 +131,6 @@
</ThreadWrapper>
{/each}
{#if show_compose}
<ComposeReply {type} reply_to_event_id={tree.event.id} />
<ComposeReply {type} event={tree.event} />
{/if}
</ThreadWrapper>

Loading…
Cancel
Save