You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

47 lines
1.6 KiB

<script lang="ts">
import ProposalsListItem from '$lib/components/proposals/ProposalsListItem.svelte'
import type { IssueSummary } from '../issues/type'
import type { ProposalSummary } from './type'
export let title: string = ''
export let proposals_or_issues: ProposalSummary[] | IssueSummary[] = []
export let repo_naddr_override: string | undefined = undefined
export let loading: boolean = false
export let show_repo: boolean = false
export let limit: number = 0
export let allow_more = true
export let sort_youngest_first = true
let current_limit = limit
</script>
<div class="">
{#if title.length > 0}
<div class="prose">
<h4>{title}</h4>
</div>
{/if}
{#if proposals_or_issues.length == 0 && !loading}
<p class="prose">None</p>
{/if}
<ul class=" divide-y divide-base-400">
{#each sort_youngest_first ? proposals_or_issues.sort((a, b) => (b.created_at || 0) - (a.created_at || 0)) : proposals_or_issues as proposal, index}
{#if current_limit === 0 || index + 1 <= current_limit}
<ProposalsListItem {...proposal} {repo_naddr_override} {show_repo} />
{/if}
{/each}
{#if loading}
<ProposalsListItem loading={true} />
{#if proposals_or_issues.length == 0}
<ProposalsListItem loading={true} />
<ProposalsListItem loading={true} />
{/if}
{:else if allow_more && limit !== 0 && proposals_or_issues.length > current_limit}
<button
on:click={() => {
current_limit = current_limit + 5
}}
class="btn mt-3 p-3 font-normal">more</button
>
{/if}
</ul>
</div>