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

johnandersen777.bsky.social/knotless

git that lives in your Atmosphere account

Forked from chadtmiller.com/knotless

0
0
28 lines · 1.2 KB Raw History
<script lang="ts">
	import type * as getQueue from '#lib/lexicons/dev/knotless/getQueue.ts';
	import { checkIcon } from '#lib/icons.ts';
	import Icon from '#lib/atoms/Icon.svelte';
	import { ago, checkHref, ejectedWhy } from '#lib/format.ts';
	import Time from '#lib/atoms/Time.svelte';
	import Said from '#lib/atoms/Said.svelte';
	import ItemRow from '#lib/molecules/ItemRow.svelte';
	/** The open pulls a merge queue of the repository whose page is at `base` turned away, newest first: why, and the checks of their batch that failed. */
	let { ejected, base }: { ejected: getQueue.EjectedView[]; base: string } = $props();
</script>

<div class="box">
	<div class="boxhead"><Icon name="failed" /><b>Ejected</b></div>
	<ul class="list">
		{#each ejected as e (e.pull.uri)}
			<ItemRow item={e.pull} kind="pull" {base}>
				{#snippet meta()}<span
						>{'Ejected '}<Time at={e.ejectedAt} show={(t) => ago(t, 'on ')} />{': '}<Said
							text={ejectedWhy(e.reason)}
						/></span
					>{#each e.checks as c (c.uri)}<a class="failed-check" href={checkHref(c.repo, c.uri)}
							><Icon name={checkIcon(c.status)} />{c.workflow}</a
						>{/each}{/snippet}
			</ItemRow>
		{/each}
	</ul>
</div>