diff --git a/frontend/src/lib/components/runs/JobRunsPreview.svelte b/frontend/src/lib/components/runs/JobRunsPreview.svelte index e28e20f8df..3c3f4ec370 100644 --- a/frontend/src/lib/components/runs/JobRunsPreview.svelte +++ b/frontend/src/lib/components/runs/JobRunsPreview.svelte @@ -35,6 +35,8 @@ } let currentJob: Job | undefined = $state(undefined) + let loadError: string | undefined = $state(undefined) + let isLoadingJobDetails: boolean = $state(false) let lastJobId: string | undefined = $state(undefined) let concurrencyKey: string | undefined = $state(undefined) @@ -67,15 +69,27 @@ } }) $effect(() => { - id && - jobLoader && + if (id && jobLoader) { + loadError = undefined + isLoadingJobDetails = true untrack(() => jobLoader?.watchJob(id, { done(x) { onDone(x) + loadError = undefined + isLoadingJobDetails = false + }, + doneError({ error }) { + loadError = error?.body || error?.message || 'Failed to load job details' + currentJob = undefined + isLoadingJobDetails = false + }, + change() { + isLoadingJobDetails = false } }) ) + } }) $effect(() => { @@ -111,7 +125,21 @@