{eventNames[cell.type]}
+diff --git a/examples/sds-demo/src/lib/components/History.svelte b/examples/sds-demo/src/lib/components/History.svelte index a519d30..bb99e89 100644 --- a/examples/sds-demo/src/lib/components/History.svelte +++ b/examples/sds-demo/src/lib/components/History.svelte @@ -206,7 +206,10 @@ display: flex; flex-direction: column; height: 100%; - overflow: hidden; + overflow-y: scroll; + overflow-x: hidden; + min-width: 400px; + scrollbar-width: none; } .virtualizer-container { diff --git a/examples/sds-demo/src/lib/components/HistoryItem.svelte b/examples/sds-demo/src/lib/components/HistoryItem.svelte index 57995d5..5906f11 100644 --- a/examples/sds-demo/src/lib/components/HistoryItem.svelte +++ b/examples/sds-demo/src/lib/components/HistoryItem.svelte @@ -3,11 +3,15 @@ import type { MessageChannelEventObject } from '$lib/sds/stream'; import { getMessageId } from '$lib/sds/message'; - export let event: MessageChannelEventObject; - export let identicon: string; + export let event: MessageChannelEventObject | undefined = undefined; + export let identicon: string = ''; export let currentIdFilter: string | null = null; - export let onEventClick: (id: string | null) => void; - export let onDependencyClick: (messageId: string, event: Event) => void; + export let onEventClick: (id: string | null) => void = () => {}; + export let onDependencyClick: (messageId: string, event: Event) => void = () => {}; + export let width: number = 340; + export let height: number = 178; + + export let overflow: boolean = true; // Map event types to colors using index signature const eventColors: { [key in string]: string } = { @@ -29,13 +33,15 @@ [MessageChannelEvent.MissedMessages]: 'Missed' }; - $: id = getMessageId(event); - $: color = eventColors[event.type] || '#888'; - $: name = eventNames[event.type] || event.type; + $: id = event ? getMessageId(event) : null; + $: color = event ? (eventColors[event.type] || '#888') : '#f0f0f0'; + $: name = event ? (eventNames[event.type] || event.type) : ''; $: matchesFilter = currentIdFilter && id === currentIdFilter; function handleEventClick() { - onEventClick(id); + if (event && id) { + onEventClick(id); + } } function handleDependencyClick(messageId: string, e: Event) { @@ -43,65 +49,75 @@ } -
{row.lamportTimestamp}
+ {#each row.columns as cell} + {#if cell?.type} +{eventNames[cell.type]}
+