diff --git a/src/lib/components/events/EventWrapper.svelte b/src/lib/components/events/EventWrapper.svelte index 673c7d7..14b21eb 100644 --- a/src/lib/components/events/EventWrapper.svelte +++ b/src/lib/components/events/EventWrapper.svelte @@ -7,6 +7,7 @@ import { logged_in_user } from '$lib/stores/users' import type { NDKEvent } from '@nostr-dev-kit/ndk' + export let type: 'proposal' | 'issue' = 'proposal' export let author: User = { ...user_defaults } export let created_at: number | undefined export let event_id = '' @@ -96,7 +97,7 @@ >
- +
{/if} diff --git a/src/lib/components/events/content/utils.ts b/src/lib/components/events/content/utils.ts index 93b0327..f7e8308 100644 --- a/src/lib/components/events/content/utils.ts +++ b/src/lib/components/events/content/utils.ts @@ -104,3 +104,20 @@ export const extractPatchMessage = (s: string): string | undefined => { return undefined } } + +/** this doesn't work for all patch formats and options */ +export const extractPatchTitle = (s: string): string | undefined => { + const msg = extractPatchMessage(s) + if (!msg) return undefined + return s.split('\n')[0] +} + +export const extractIssueTitle = (s: string): string => { + return s.split('\n')[0] || '' +} + +export const extractIssueDescription = (s: string): string => { + const split = s.split('\n') + if (split.length === 0) return '' + return s.substring(split[0].length) || '' +} diff --git a/src/lib/components/proposals/ProposalDetails.svelte b/src/lib/components/proposals/ProposalDetails.svelte index 4be5689..6490100 100644 --- a/src/lib/components/proposals/ProposalDetails.svelte +++ b/src/lib/components/proposals/ProposalDetails.svelte @@ -1,9 +1,12 @@
@@ -26,9 +29,10 @@ {:else}

Status

{/if}
diff --git a/src/lib/components/proposals/ProposalHeader.svelte b/src/lib/components/proposals/ProposalHeader.svelte index 8f7d664..ecabf16 100644 --- a/src/lib/components/proposals/ProposalHeader.svelte +++ b/src/lib/components/proposals/ProposalHeader.svelte @@ -10,6 +10,7 @@ import Status from './Status.svelte' dayjs.extend(relativeTime) + export let type: 'proposal' | 'issue' = 'proposal' export let { title, descritpion, @@ -59,7 +60,7 @@
- +
opened {created_at_ago} diff --git a/src/lib/components/proposals/Status.svelte b/src/lib/components/proposals/Status.svelte index fe17853..5f83274 100644 --- a/src/lib/components/proposals/Status.svelte +++ b/src/lib/components/proposals/Status.svelte @@ -5,9 +5,11 @@ proposal_status_draft, proposal_status_open, } from '$lib/kinds' + import { issue_icon_path } from '../issues/icons' import { proposal_icon_path } from './icons' export let status: number | undefined = undefined + export let type: 'proposal' | 'issue' = 'proposal' export let edit_mode = false @@ -32,7 +34,14 @@ xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" class="h-5 w-5 flex-none fill-success-content pt-1" - > + > + {#if type === 'proposal'} + + {:else if type === 'issue'} + {#each issue_icon_path.open as p} + + {/each} + {/if} Open {:else if status === proposal_status_applied} @@ -40,16 +49,30 @@ xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="h-5 w-5 flex-none fill-primary-content pt-1" - > + {#if type === 'proposal'} + + {:else if type === 'issue'} + {#each issue_icon_path.resolved as p} + + {/each} + {/if} + Applied {:else if status === proposal_status_closed} + {#if type === 'proposal'} + + {:else if type === 'issue'} + {#each issue_icon_path.closed as p} + + {/each} + {/if} + Closed {:else if status === proposal_status_draft} @@ -70,7 +71,8 @@ try { let _ = await event.publish(NDKRelaySet.fromRelayUrls(relays, ndk)) selected_proposal_full.update((proposal_full) => { - if (proposal_full.summary.id !== proposal_id) return proposal_full + if (proposal_full.summary.id !== proposal_or_issue_id) + return proposal_full return { ...proposal_full, summary: { @@ -89,20 +91,20 @@ {:else}
{#each $selected_proposal_replies as event} - + {/each}
- +