diff --git a/src/lib/components/event/event-card.svelte b/src/lib/components/event/event-card.svelte index e586821808..e5046b27c5 100644 --- a/src/lib/components/event/event-card.svelte +++ b/src/lib/components/event/event-card.svelte @@ -1,13 +1,15 @@ - -
-

Summary

- - {#snippet children(decodedValue)} - - {decodedValue} - - {/snippet} - -
diff --git a/src/lib/components/event/event-summary-row.svelte b/src/lib/components/event/event-summary-row.svelte index fa94ff1f3a..79d7bd3044 100644 --- a/src/lib/components/event/event-summary-row.svelte +++ b/src/lib/components/event/event-summary-row.svelte @@ -4,6 +4,7 @@ import { page } from '$app/state'; + import PayloadSummary from '$lib/components/payload/payload-summary.svelte'; import { timestamp } from '$lib/components/timestamp.svelte'; import Badge from '$lib/holocene/badge.svelte'; import Copyable from '$lib/holocene/copyable/index.svelte'; @@ -43,7 +44,6 @@ import EventDetailsFull from './event-details-full.svelte'; import EventDetailsRow from './event-details-row.svelte'; import EventLink from './event-link.svelte'; - import MetadataDecoder from './metadata-decoder.svelte'; interface Props { event: IterableEvent; @@ -327,20 +327,12 @@ {/if} {#if currentEvent?.userMetadata?.summary} - - {#snippet children(decodedValue)} - {#if decodedValue} -
-

Summary

- - {decodedValue} - -
- {/if} - {/snippet} -
+
+

Summary

+ +
{/if} {#if currentEvent?.links?.length} - import type { Snippet } from 'svelte'; - - import type { Payload } from '$lib/types'; - import { decodeUserMetadata } from '$lib/utilities/decode-payload'; - - let { - value, - fallback = '', - prefix = '', - onDecode, - children, - }: { - value?: Payload; - fallback?: string; - prefix?: string; - onDecode?: (decodedValue: string) => void; - children?: Snippet<[string]>; - } = $props(); - - const maxLength = 120; - - let decodedValue = ''; - - const setPrefix = (metadata: string) => { - if (prefix) { - metadata = `${prefix} • ${metadata}`; - if (metadata.length < maxLength) return metadata; - return metadata.slice(0, maxLength) + '...'; - } - return metadata; - }; - - const decodePayload = $derived(async (_value: Payload | undefined) => { - if (!_value) return fallback; - if (decodedValue) return decodedValue; - - const metadata = await decodeUserMetadata(_value); - - if (typeof metadata === 'string') { - decodedValue = setPrefix(metadata); - onDecode?.(decodedValue); - return decodedValue; - } - - decodedValue = fallback; - return fallback; - }); - - -{#await decodePayload(value) then metadata} - {@render children?.(metadata)} -{:catch} - {@render children?.(fallback)} -{/await} diff --git a/src/lib/components/event/payload-decoder.svelte b/src/lib/components/event/payload-decoder.svelte deleted file mode 100644 index c0560f053b..0000000000 --- a/src/lib/components/event/payload-decoder.svelte +++ /dev/null @@ -1,52 +0,0 @@ - - -{@render children(decodedValue)} diff --git a/src/lib/components/lines-and-dots/svg/group-details-text.svelte b/src/lib/components/lines-and-dots/svg/group-details-text.svelte deleted file mode 100644 index 9ccd66e3eb..0000000000 --- a/src/lib/components/lines-and-dots/svg/group-details-text.svelte +++ /dev/null @@ -1,71 +0,0 @@ - - -{#if typeof value === 'object'} - {#if value?.payloads} - - {#snippet children(decodedValue)} - {#key decodedValue} - - {/key} - {/snippet} - - {:else if key === 'searchAttributes'} - - {#snippet children(decodedValue)} - {#key decodedValue} - - {/key} - {/snippet} - - {:else} - - {#snippet children(decodedValue)} - {#key decodedValue} - - {/key} - {/snippet} - - {/if} -{:else if linkType !== 'none'} - -{:else} - {value} -{/if} diff --git a/src/lib/components/lines-and-dots/svg/timeline-graph-row.svelte b/src/lib/components/lines-and-dots/svg/timeline-graph-row.svelte index b1355c5ddc..625b3c9ce6 100644 --- a/src/lib/components/lines-and-dots/svg/timeline-graph-row.svelte +++ b/src/lib/components/lines-and-dots/svg/timeline-graph-row.svelte @@ -5,7 +5,7 @@ import { page } from '$app/state'; - import MetadataDecoder from '$lib/components/event/metadata-decoder.svelte'; + import PayloadSummary from '$lib/components/payload/payload-summary.svelte'; import { translate } from '$lib/i18n/translate'; import type { EventGroup } from '$lib/models/event-groups/event-groups'; import { setActiveGroup } from '$lib/stores/active-events'; @@ -256,7 +256,7 @@ /> {/if} {#if showText} - {/snippet} - + {/if} + import CodeBlock from '$lib/holocene/code-block.svelte'; + import { translate } from '$lib/i18n/translate'; + import type { + PayloadContainingObject, + PotentiallyDecodable, + } from '$lib/utilities/decode-payload'; + + import PayloadDecoder from './payload-decoder.svelte'; + + interface Props { + value: PotentiallyDecodable | PayloadContainingObject; + maxHeight?: number; + testId?: string; + language?: 'text' | 'json'; + } + + let { value, maxHeight, testId, language = 'json' }: Props = $props(); + + + + {#snippet children(decodedValue)} +
+ {#each decodedValue as data, index (index)} + + {/each} +
+ {/snippet} +
diff --git a/src/lib/components/payload/payload-decoder.svelte b/src/lib/components/payload/payload-decoder.svelte new file mode 100644 index 0000000000..fcb3051ef5 --- /dev/null +++ b/src/lib/components/payload/payload-decoder.svelte @@ -0,0 +1,52 @@ + + +{#await decodePayloadValue(value)} + {@render loading?.()} +{:then decodedValue} + {@render children(decodedValue)} +{/await} diff --git a/src/lib/components/payload/payload-inline.svelte b/src/lib/components/payload/payload-inline.svelte new file mode 100644 index 0000000000..19a220f6b0 --- /dev/null +++ b/src/lib/components/payload/payload-inline.svelte @@ -0,0 +1,28 @@ + + + + {#snippet children(decodedValue)} +
+ +
{(decodedValue[0] ?? '').slice(
+            0,
+            truncateAt,
+          )}
+
+
+ {/snippet} +
diff --git a/src/lib/components/payload/payload-summary.svelte b/src/lib/components/payload/payload-summary.svelte new file mode 100644 index 0000000000..ed3255ef5f --- /dev/null +++ b/src/lib/components/payload/payload-summary.svelte @@ -0,0 +1,69 @@ + + +{#if children} + {@render children(decodedValue)} +{:else if className} + {decodedValue || fallback} +{:else} + {decodedValue || fallback} +{/if} diff --git a/src/lib/components/schedule/schedule-form/schedule-input-payload.svelte b/src/lib/components/schedule/schedule-form/schedule-input-payload.svelte index 0ba8dab179..cbda4c872c 100644 --- a/src/lib/components/schedule/schedule-form/schedule-input-payload.svelte +++ b/src/lib/components/schedule/schedule-form/schedule-input-payload.svelte @@ -1,7 +1,7 @@
- - -
- -
-
+ + {#snippet children(_decodedValue)} + +
+ +
+
+ {/snippet}
diff --git a/src/lib/components/schedule/schedule-input.svelte b/src/lib/components/schedule/schedule-input.svelte index 2639e505c4..6ce8bd6038 100644 --- a/src/lib/components/schedule/schedule-input.svelte +++ b/src/lib/components/schedule/schedule-input.svelte @@ -3,7 +3,6 @@ import InputAndResultsPayload from '$lib/components/workflow/input-and-results-payload.svelte'; import { translate } from '$lib/i18n/translate'; import type { Payloads } from '$lib/types'; - import { stringifyWithBigInt } from '$lib/utilities/parse-with-big-int'; let { input }: { input: Payloads } = $props(); @@ -11,7 +10,7 @@ {#snippet titleSnippet()}

diff --git a/src/lib/components/standalone-activities/activity-input-and-outcome.svelte b/src/lib/components/standalone-activities/activity-input-and-outcome.svelte index 8c6ffc8ed6..748729bba9 100644 --- a/src/lib/components/standalone-activities/activity-input-and-outcome.svelte +++ b/src/lib/components/standalone-activities/activity-input-and-outcome.svelte @@ -1,11 +1,10 @@ {#snippet defaultTitleSnippet()} @@ -67,42 +31,7 @@
{@render titleSnippet()} {#if content} - {#if payloadsSize > 0} - - {#snippet children(decodedValue)} - {#if payloadsSize > 1} - {#each parsePayloads(decodedValue) as decodedContent} - - {/each} - {:else} - - {/if} - {/snippet} - - {:else} - - {#snippet children(decodedValue)} - - {/snippet} - - {/if} + {:else} {#key activity.attempt} - - {#snippet children(decodedValue)} - - {/snippet} - + {/key}
{/snippet} @@ -194,18 +185,10 @@ {translate('workflows.last-failure')}

{#key activity.attempt} - - {#snippet children(decodedValue)} - - {/snippet} - + {/key} {/if} diff --git a/src/lib/components/workflow/workflow-json-navigator.svelte b/src/lib/components/workflow/workflow-json-navigator.svelte index dada5ddf8e..89812b016e 100644 --- a/src/lib/components/workflow/workflow-json-navigator.svelte +++ b/src/lib/components/workflow/workflow-json-navigator.svelte @@ -1,6 +1,7 @@