diff --git a/src/lib/components/events/EventWrapper.svelte b/src/lib/components/events/EventWrapper.svelte new file mode 100644 index 0000000..3a57a6d --- /dev/null +++ b/src/lib/components/events/EventWrapper.svelte @@ -0,0 +1,14 @@ + + +
+ +
+ +
+
diff --git a/src/lib/components/events/ThreadWrapper.svelte b/src/lib/components/events/ThreadWrapper.svelte new file mode 100644 index 0000000..d150fbd --- /dev/null +++ b/src/lib/components/events/ThreadWrapper.svelte @@ -0,0 +1,3 @@ +
+ +
diff --git a/src/lib/components/events/type.ts b/src/lib/components/events/type.ts new file mode 100644 index 0000000..ef7247f --- /dev/null +++ b/src/lib/components/events/type.ts @@ -0,0 +1,12 @@ +import { defaults as user_defaults } from "../users/type"; +import type { User } from "../users/type"; + +export interface Event { + author: User; + content: any; +} + +let defaults: Event = { + author: { ...user_defaults }, + content: [], +} \ No newline at end of file diff --git a/src/lib/components/prs/type.ts b/src/lib/components/prs/type.ts index 6ca9d52..c4c889d 100644 --- a/src/lib/components/prs/type.ts +++ b/src/lib/components/prs/type.ts @@ -1,5 +1,7 @@ import type { User } from "../users/type"; import { defaults as user_defaults } from "../users/type"; +import type { Event } from "../events/type"; +import type { NDKEvent } from "@nostr-dev-kit/ndk"; export interface PRSummary { title: string; @@ -35,11 +37,15 @@ export const summaries_defaults: PRSummaries = { export interface PRFull { summary: PRSummary; + pr_event: NDKEvent | undefined; + events: Event[]; loading: boolean; } export const full_defaults: PRFull = { summary: { ...summary_defaults }, + pr_event: undefined, + events: [], loading: true, }; diff --git a/src/lib/stores/PR.ts b/src/lib/stores/PR.ts index 7d5f43a..2ff35de 100644 --- a/src/lib/stores/PR.ts +++ b/src/lib/stores/PR.ts @@ -50,6 +50,7 @@ export let ensurePRFull = (repo_id: string, pr_id: string) => { selected_pr_full.update(full => { return { ...full, + pr_event: event, summary: { ...full.summary, title: event.tagValue("name") || "", diff --git a/src/lib/wrappers/EventCard.svelte b/src/lib/wrappers/EventCard.svelte new file mode 100644 index 0000000..72d7451 --- /dev/null +++ b/src/lib/wrappers/EventCard.svelte @@ -0,0 +1,21 @@ + + +{event.content} diff --git a/src/lib/wrappers/Thread.svelte b/src/lib/wrappers/Thread.svelte new file mode 100644 index 0000000..d3e7e2d --- /dev/null +++ b/src/lib/wrappers/Thread.svelte @@ -0,0 +1,24 @@ + + + + + + {#each $replies as event} + + {/each} + diff --git a/src/routes/repo/[repo_id]/pr/[pr_id]/+page.svelte b/src/routes/repo/[repo_id]/pr/[pr_id]/+page.svelte index ecc2e91..09324a0 100644 --- a/src/routes/repo/[repo_id]/pr/[pr_id]/+page.svelte +++ b/src/routes/repo/[repo_id]/pr/[pr_id]/+page.svelte @@ -3,6 +3,7 @@ import { ensurePRFull, selected_pr_full } from "$lib/stores/PR"; import PrHeader from "$lib/components/prs/PRHeader.svelte"; import RepoHeader from "$lib/components/repo/RepoHeader.svelte"; + import Thread from "$lib/wrappers/Thread.svelte"; export let data: { repo_id: string; @@ -21,8 +22,9 @@
-
placeholder for PR summary
-
placeholder for all related events
+ {#if $selected_pr_full.pr_event} + + {/if}
placeholder for status, tags, contributors