Files
shd.build/src/lib/components/SystemMessageBody.svelte
T

25 lines
794 B
Svelte

<script lang="ts">
let { body, expanded = false }: { body: string; expanded?: boolean } = $props();
const parsed = $derived.by(() => {
const detailMatch = body.match(/^(.*?)(?:\s+)(Oversight reason|Reason|Required action|Details):\s*(.+)$/i);
if (!detailMatch) return { summary: body, detailLabel: null, detail: null };
return {
summary: detailMatch[1].trim(),
detailLabel: detailMatch[2].toUpperCase(),
detail: detailMatch[3].trim()
};
});
</script>
<div class="system-message-body" class:expanded>
<div class="system-message-kicker"><span aria-hidden="true">◇</span><b>ISAC TRANSMISSION</b></div>
<p>{parsed.summary}</p>
{#if parsed.detail}
<div class="system-message-detail">
<span>{parsed.detailLabel}</span>
<p>{parsed.detail}</p>
</div>
{/if}
</div>