~ knotless Search/
↑↓ move↵ open⇧↵ all results

johnandersen777.bsky.social/knotless

git that lives in your Atmosphere account

Forked from chadtmiller.com/knotless

0
0
30 lines · 1.2 KB Raw History
<script lang="ts">
	import type * as getQueue from '#lib/lexicons/dev/knotless/getQueue.ts';
	import { ago, itemHref, plural } from '#lib/format.ts';
	import Icon from '#lib/atoms/Icon.svelte';
	import Sha from '#lib/atoms/Sha.svelte';
	import Time from '#lib/atoms/Time.svelte';
	/** The batches a merge queue of the repository whose page is at `base` landed last, newest first: the commit each left its branch at, and its pulls. */
	let { landed, base }: { landed: getQueue.LandedView[]; base: string } = $props();
</script>

<div class="box">
	<div class="boxhead"><Icon name="merge" /><b>Landed</b></div>
	<ul class="list">
		{#each landed as b (b.commit)}
			<li>
				<span class="st merged pull"><Icon name="merge" /></span>
				<div class="grow">
					<div>
						<span>{`${plural(b.pulls.length, 'pull', 'pulls')} into ${b.branch} as`}</span>
						<Sha sha={b.commit} href={`${base}/commit/${b.commit}`} />
					</div>
					<div class="meta">
						{#if b.landedAt}<span><Time at={b.landedAt} show={(t) => ago(t, 'on ')} />{':'}</span
							>{/if}{#each b.pulls as p (p.uri)}<a href={itemHref(base, p.uri)}>{p.title}</a>{/each}
					</div>
				</div>
			</li>
		{/each}
	</ul>
</div>