diff --git a/frontend/apps/editor3d/app/src/components/signaled/TopBar/TaskQueue.tsx b/frontend/apps/editor3d/app/src/components/signaled/TopBar/TaskQueue.tsx index 080ea69aae..860ff413e7 100644 --- a/frontend/apps/editor3d/app/src/components/signaled/TopBar/TaskQueue.tsx +++ b/frontend/apps/editor3d/app/src/components/signaled/TopBar/TaskQueue.tsx @@ -128,6 +128,11 @@ const CompletedCard = ({ {task.title} { + console.log("Failed to load thumbnail", e); + // NB: Replace the broken thumbnail with a placeholder. + e.currentTarget.src="/resources/placeholders/placeholder.png"; + }} className="h-full w-full object-cover" /> ) : ( @@ -147,7 +152,7 @@ const CompletedCard = ({ )} {task.completedAt && (
- {task.completedAt} + {task.completedAt.toISOString()}
)} diff --git a/frontend/libs/components/gallery-modal/src/lib/GalleryDraggableItem.tsx b/frontend/libs/components/gallery-modal/src/lib/GalleryDraggableItem.tsx index 624dc125d4..e4cc3cb155 100644 --- a/frontend/libs/components/gallery-modal/src/lib/GalleryDraggableItem.tsx +++ b/frontend/libs/components/gallery-modal/src/lib/GalleryDraggableItem.tsx @@ -26,7 +26,7 @@ interface GalleryDraggableItemProps { activeFilter: string; selected: boolean; onClick: () => void; - onImageError: () => void; + onImageError: (e: React.SyntheticEvent) => void; disableTooltipAndBadge?: boolean; imageFit?: "cover" | "contain"; onDeleted?: (id: string) => void; diff --git a/frontend/libs/components/gallery-modal/src/lib/gallery-modal.tsx b/frontend/libs/components/gallery-modal/src/lib/gallery-modal.tsx index 307291ad92..71f8aa0781 100644 --- a/frontend/libs/components/gallery-modal/src/lib/gallery-modal.tsx +++ b/frontend/libs/components/gallery-modal/src/lib/gallery-modal.tsx @@ -637,9 +637,11 @@ export const GalleryModal = React.memo( activeFilter={activeFilter} selected={selectedItemIds.includes(item.id)} onClick={() => handleItemClick(item)} - onImageError={() => - handleImageError(item.thumbnail!) - } + onImageError={(e) => { + // NB: Replace the broken thumbnail with a placeholder. + e.currentTarget.src = "/resources/placeholders/placeholder.png"; + handleImageError(item.thumbnail!); + }} disableTooltipAndBadge={mode === "select"} imageFit={imageFit} onDeleted={handleItemDeleted}