diff --git a/src/lib/components/events/EventWrapper.svelte b/src/lib/components/events/EventWrapper.svelte
index 3aa6192..0a8edd0 100644
--- a/src/lib/components/events/EventWrapper.svelte
+++ b/src/lib/components/events/EventWrapper.svelte
@@ -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 @@
>
- replySent()}
- />
+ replySent()} />
{/if}
diff --git a/src/lib/wrappers/ComposeIssue.svelte b/src/lib/wrappers/ComposeIssue.svelte
index 21fc6ea..14e3ec3 100644
--- a/src/lib/wrappers/ComposeIssue.svelte
+++ b/src/lib/wrappers/ComposeIssue.svelte
@@ -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 = [
diff --git a/src/lib/wrappers/ComposeReply.svelte b/src/lib/wrappers/ComposeReply.svelte
index ebeaa20..15401b9 100644
--- a/src/lib/wrappers/ComposeReply.svelte
+++ b/src/lib/wrappers/ComposeReply.svelte
@@ -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 @@
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 @@
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 @@
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(() => {
diff --git a/src/lib/wrappers/EventCard.svelte b/src/lib/wrappers/EventCard.svelte
index 6dce90e..78b059b 100644
--- a/src/lib/wrappers/EventCard.svelte
+++ b/src/lib/wrappers/EventCard.svelte
@@ -26,13 +26,7 @@
})
-
+
{#if event.kind == patch_kind}
{:else if event.kind && proposal_status_kinds.includes(event.kind)}
diff --git a/src/lib/wrappers/ThreadTree.svelte b/src/lib/wrappers/ThreadTree.svelte
index 6b8c6ec..a206e83 100644
--- a/src/lib/wrappers/ThreadTree.svelte
+++ b/src/lib/wrappers/ThreadTree.svelte
@@ -131,6 +131,6 @@
{/each}
{#if show_compose}
-
+
{/if}