~james/core

core/web/src/lib/components/timeline/TimelineFollowers.svelte -rw-r--r-- 1.1 KiB
452f17b7 — james chore(import): snapshot james.dad.town/core at f70c71c7696a 16 hours ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<script lang="ts">
	import User from "#lib/components/ui/User.svelte";
	import FollowCard from "#lib/components/profile/FollowCard.svelte";
	import TimelineCard from "#lib/components/timeline/TimelineCard.svelte";
	import TimelineTargetHeader from "#lib/components/timeline/TimelineTargetHeader.svelte";
	import { toPerson } from "#lib/components/timeline/mappers.ts";
	import type { TimelineEvent } from "#lib/components/timeline/group.ts";
	import type { FollowEvent } from "#lib/api/lexicons/types/org/tangled/feed/getTimeline.ts";

	let { items, signedIn = false }: { items: TimelineEvent<FollowEvent>[]; signedIn?: boolean } =
		$props();

	const subject = $derived(items[0].event.subject);
</script>

<TimelineCard>
	{#snippet header()}
		<TimelineTargetHeader
			actors={items.map((item) => item.event.actor)}
			verb="followed"
			eventAt={items[0].eventAt}
		>
			<User
				handle={subject.handle}
				did={subject.did}
				link
				class="gap-[calc(var(--spacing-word)+1px)]"
			/>
		</TimelineTargetHeader>
	{/snippet}

	<FollowCard
		person={toPerson(subject)}
		followButton={signedIn}
		border={false}
		background={false}
	/>
</TimelineCard>