From db3edd522defc8dc3fa28abbc67ff78443749fd8 Mon Sep 17 00:00:00 2001 From: Benjamin Lu Date: Mon, 22 Dec 2025 18:21:23 -0800 Subject: [PATCH] Add list view --- src/components/sidebar/tabs/AssetsSidebarListView.vue | 11 +++++++++++ src/composables/queue/useJobActions.ts | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/components/sidebar/tabs/AssetsSidebarListView.vue b/src/components/sidebar/tabs/AssetsSidebarListView.vue index 63d22b7f2..7f42ed319 100644 --- a/src/components/sidebar/tabs/AssetsSidebarListView.vue +++ b/src/components/sidebar/tabs/AssetsSidebarListView.vue @@ -9,6 +9,7 @@ :preview-alt="job.title" :icon-name="job.iconName" :icon-class="getJobIconClass(job)" + :icon-wrapper-class="getJobIconWrapperClass(job)" :primary-text="job.title" :secondary-text="job.meta" :progress-total-percent="job.progressTotalPercent" @@ -195,12 +196,22 @@ function onJobLeave(jobId: string) { } } +function getJobIconWrapperClass(job: JobListItem): string | undefined { + if (job.state === 'failed') { + return 'bg-modal-card-placeholder-background' + } + return undefined +} + function getJobIconClass(job: JobListItem): string | undefined { const classes = [] const iconName = job.iconName ?? iconForJobState(job.state) if (!job.iconImageUrl && iconName === iconForJobState('pending')) { classes.push('animate-spin') } + if (job.state === 'failed') { + classes.push('text-destructive-background') + } return classes.length ? classes.join(' ') : undefined } diff --git a/src/composables/queue/useJobActions.ts b/src/composables/queue/useJobActions.ts index f5be45399..f257e199e 100644 --- a/src/composables/queue/useJobActions.ts +++ b/src/composables/queue/useJobActions.ts @@ -6,7 +6,7 @@ import type { JobListItem } from '@/composables/queue/useJobList' import { useJobMenu } from '@/composables/queue/useJobMenu' import type { JobState } from '@/types/queue' -type JobActionKey = 'cancel' +export type JobActionKey = 'cancel' export type JobAction = { key: JobActionKey