Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647<script lang="ts"> import History from "$icon/history"; import RouteOff from "$icon/route-off"; import EmptyState from "#lib/components/ui/EmptyState.svelte"; import Pending from "#lib/components/ui/Pending.svelte"; import PreviewCard from "#lib/components/timeline/PreviewCard.svelte"; import PreviewEmpty from "#lib/components/timeline/PreviewEmpty.svelte"; import RecentItem from "#lib/components/timeline/RecentItem.svelte"; import { recentPath } from "#lib/components/timeline/recents.ts"; import timelineRecentspreviewSkeletonFixture from "#lib/bones/timeline-recentspreview--skeleton-fixture.bones.json"; import Bones from "#lib/components/ui/Bones.svelte"; import type { RecentItemData } from "#lib/components/timeline/types.ts";
let { items }: { items?: RecentItemData[] | Promise<RecentItemData[]> } = $props();</script>
{#snippet content(resolvedItems: RecentItemData[])} {#if resolvedItems.length > 0} <div class="relative flex flex-col p-2xs"> <div class="absolute inset-y-0 z-1 w-px bg-border-default" style="left: 1.375rem"></div> {#each resolvedItems as item (recentPath(item))} <RecentItem {item} /> {/each} </div> {:else} <PreviewEmpty icon={RouteOff}> <EmptyState size="inline" message="No recent pages yet." class="justify-center" /> </PreviewEmpty> {/if}{/snippet}
<PreviewCard title="Recents" icon={History}> {#if items === undefined} <Bones capture={timelineRecentspreviewSkeletonFixture} /> {:else if items instanceof Promise} <Pending> {#snippet skeleton()} <Bones capture={timelineRecentspreviewSkeletonFixture} /> {/snippet} {@const resolved = await items} {@render content(resolved)} </Pending> {:else} {@render content(items)} {/if}</PreviewCard>