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

johnandersen777.bsky.social/knotless

git that lives in your Atmosphere account

Forked from chadtmiller.com/knotless

0
0
32 lines · 1.1 KB Raw History
<script lang="ts">
	import type * as getFeed from '#lib/lexicons/dev/knotless/getFeed.ts';
	import { urlPath } from '#lib/format.ts';
	import Avatar from '#lib/atoms/Avatar.svelte';
	import BotMark from '#lib/atoms/BotMark.svelte';
	import Icon from '#lib/atoms/Icon.svelte';
	/** Several accounts who did one thing: a row of their pictures, the first few, opening to all of them by name. */
	let { actors }: { actors: Pick<getFeed.ActorView, 'did' | 'handle' | 'avatar' | 'bot'>[] } =
		$props();
	const SHOWN = 8;
	const more = $derived(actors.length - SHOWN);
</script>

<details class="crowd">
	<summary aria-label="Who: {actors.length}"
		><span class="faces"
			>{#each actors.slice(0, SHOWN) as a (a.did)}<Avatar
					name={a.handle}
					did={a.did}
					src={a.avatar}
					bot={a.bot}
				/>{/each}</span
		>{#if more > 0}<span class="more">+{more}</span>{/if}<Icon name="caret" /></summary
	>
	<ul>
		{#each actors as a (a.did)}<li>
				<Avatar name={a.handle} did={a.did} src={a.avatar} /><a href="/{urlPath(a.handle)}"
					>{a.handle}</a
				>{#if a.bot}<BotMark />{/if}
			</li>{/each}
	</ul>
</details>