Browse Source

feat: show proposal / issue event as thread msg

so they appears as part of the conversation
master
DanConwayDev 2 years ago
parent
commit
0f4fd41b6b
No known key found for this signature in database
GPG Key ID: 68E15486D73F75E1
  1. 2
      src/lib/wrappers/Thread.svelte
  2. 18
      src/routes/repo/[repo_id]/issue/[issue_id]/+page.svelte
  3. 37
      src/routes/repo/[repo_id]/proposal/[proposal_id]/+page.svelte

2
src/lib/wrappers/Thread.svelte

@ -4,6 +4,7 @@
import EventCard from './EventCard.svelte' import EventCard from './EventCard.svelte'
import ThreadWrapper from '$lib/components/events/ThreadWrapper.svelte' import ThreadWrapper from '$lib/components/events/ThreadWrapper.svelte'
import { writable } from 'svelte/store' import { writable } from 'svelte/store'
import ComposeReply from './ComposeReply.svelte'
export let event: NDKEvent export let event: NDKEvent
export let type: 'proposal' | 'issue' = 'proposal' export let type: 'proposal' | 'issue' = 'proposal'
@ -26,4 +27,5 @@
{#each $replies_store as event} {#each $replies_store as event}
<EventCard {type} {event} /> <EventCard {type} {event} />
{/each} {/each}
<ComposeReply {type} reply_to_event_id={event.id} />
</ThreadWrapper> </ThreadWrapper>

18
src/routes/repo/[repo_id]/issue/[issue_id]/+page.svelte

@ -12,8 +12,6 @@
import RepoHeader from '$lib/components/repo/RepoHeader.svelte' import RepoHeader from '$lib/components/repo/RepoHeader.svelte'
import Thread from '$lib/wrappers/Thread.svelte' import Thread from '$lib/wrappers/Thread.svelte'
import Container from '$lib/components/Container.svelte' import Container from '$lib/components/Container.svelte'
import ParsedContent from '$lib/components/events/content/ParsedContent.svelte'
import ComposeReply from '$lib/wrappers/ComposeReply.svelte'
import ProposalHeader from '$lib/components/proposals/ProposalHeader.svelte' import ProposalHeader from '$lib/components/proposals/ProposalHeader.svelte'
import ProposalDetails from '$lib/components/proposals/ProposalDetails.svelte' import ProposalDetails from '$lib/components/proposals/ProposalDetails.svelte'
@ -68,15 +66,13 @@
<div class="mx-auto max-w-6xl md:flex"> <div class="mx-auto max-w-6xl md:flex">
<div class="md:mr-2 md:w-2/3"> <div class="md:mr-2 md:w-2/3">
<div class="max-w-4xl"> <div class="max-w-4xl">
<div class="my-3"> {#if $selected_issue_full.issue_event}
<ParsedContent content={$selected_issue_full.summary.descritpion} /> <Thread
</div> type="issue"
{#each $selected_issue_replies as event} event={$selected_issue_full.issue_event}
<Thread type="issue" {event} replies={[]} /> replies={$selected_issue_replies}
{/each} />
<div class="my-3"> {/if}
<ComposeReply type="issue" />
</div>
</div> </div>
</div> </div>
<div class="prose ml-2 hidden w-1/3 md:flex"> <div class="prose ml-2 hidden w-1/3 md:flex">

37
src/routes/repo/[repo_id]/proposal/[proposal_id]/+page.svelte

@ -14,10 +14,6 @@
import Thread from '$lib/wrappers/Thread.svelte' import Thread from '$lib/wrappers/Thread.svelte'
import ProposalDetails from '$lib/components/proposals/ProposalDetails.svelte' import ProposalDetails from '$lib/components/proposals/ProposalDetails.svelte'
import Container from '$lib/components/Container.svelte' import Container from '$lib/components/Container.svelte'
import ParsedContent from '$lib/components/events/content/ParsedContent.svelte'
import ComposeReply from '$lib/wrappers/ComposeReply.svelte'
import { patch_kind } from '$lib/kinds'
import Patch from '$lib/components/events/content/Patch.svelte'
export let data: { export let data: {
repo_id: string repo_id: string
@ -72,19 +68,17 @@
<div class="mx-auto max-w-6xl md:flex"> <div class="mx-auto max-w-6xl md:flex">
<div class="md:mr-2 md:w-2/3"> <div class="md:mr-2 md:w-2/3">
<div class="max-w-4xl"> <div class="max-w-4xl">
<div class="my-3"> {#if $selected_proposal_full.proposal_event}
{#if $selected_proposal_full.proposal_event && $selected_proposal_full.proposal_event.kind === patch_kind} <Thread
<Patch type="proposal"
content={$selected_proposal_full.proposal_event.content} event={$selected_proposal_full.proposal_event}
tags={$selected_proposal_full.proposal_event.tags} replies={$selected_proposal_replies}
/>
{:else}
<ParsedContent
content={$selected_proposal_full.summary.descritpion}
/> />
{/if} {/if}
</div> </div>
<div role="alert" class="alert mt-3"> </div>
<div class="prose ml-2 w-1/3">
<div role="alert" class="alert mt-3 w-full">
<svg <svg
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
fill="none" fill="none"
@ -98,8 +92,8 @@
></path></svg ></path></svg
> >
<div> <div>
<h3 class="prose mb-2 text-sm font-bold"> <h3 class="prose mb-2 mt-2 text-sm font-bold">
view proposal in local git repository view in local git repository
</h3> </h3>
<p class="prose text-xs"> <p class="prose text-xs">
<a href="/ngit">install ngit</a>, run <a href="/ngit">install ngit</a>, run
@ -109,15 +103,7 @@
</p> </p>
</div> </div>
</div> </div>
{#each $selected_proposal_replies as event} <div class="block">
<Thread type="proposal" {event} replies={[]} />
{/each}
<div class="my-3">
<ComposeReply type="proposal" />
</div>
</div>
</div>
<div class="prose ml-2 hidden w-1/3 md:flex">
<ProposalDetails <ProposalDetails
summary={$selected_proposal_full.summary} summary={$selected_proposal_full.summary}
labels={$selected_proposal_full.labels} labels={$selected_proposal_full.labels}
@ -125,5 +111,6 @@
/> />
</div> </div>
</div> </div>
</div>
</Container> </Container>
{/if} {/if}

Loading…
Cancel
Save