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.
50 lines
1.4 KiB
50 lines
1.4 KiB
<script lang="ts"> |
|
import { full_defaults, summary_defaults, type ProposalSummary } from './type' |
|
import UserHeader from '../users/UserHeader.svelte' |
|
import StatusSelector from './StatusSelector.svelte' |
|
import type { IssueSummary } from '../issues/type' |
|
|
|
export let type: 'proposal' | 'issue' = 'proposal' |
|
export let summary: ProposalSummary | IssueSummary = { ...summary_defaults } |
|
export let { labels, loading } = { ...full_defaults } |
|
</script> |
|
|
|
<div class="max-w-md"> |
|
<div> |
|
{#if loading} |
|
<div class="skeleton my-3 h-5 w-20"></div> |
|
<div class="badge skeleton my-2 block w-60"></div> |
|
<div class="badge skeleton my-2 block w-40"></div> |
|
{:else} |
|
<h4>Author</h4> |
|
<UserHeader user={summary.author} /> |
|
{/if} |
|
</div> |
|
|
|
<div> |
|
{#if loading} |
|
<div class="skeleton my-3 h-5 w-20"></div> |
|
<div class="badge skeleton my-2 block w-60"></div> |
|
<div class="badge skeleton my-2 block w-40"></div> |
|
{:else} |
|
<h4>Status</h4> |
|
<StatusSelector |
|
{type} |
|
status={summary.status} |
|
proposal_or_issue_id={summary.id} |
|
/> |
|
{/if} |
|
</div> |
|
|
|
<div> |
|
{#if loading} |
|
<div class="badge skeleton w-20"></div> |
|
<div class="badge skeleton w-20"></div> |
|
{:else} |
|
<h4>Labels</h4> |
|
{#each labels as label} |
|
<div class="badge badge-secondary mr-2">{label}</div> |
|
{/each} |
|
{/if} |
|
</div> |
|
</div>
|
|
|