- {imageCandidates.length === 0
- ? Array.from({ length: 5 }).map((_, i) =>
)
- : imageCandidates.map((c) => (
-
toggleImageSelection(c.candidate_id)}
- className={`relative rounded-xl overflow-hidden border cursor-pointer transition-all
- ${selectedImageIds.includes(c.candidate_id) ? 'border-brand-orange ring-2 ring-brand-orange' : 'border-border-default hover:border-brand-orange/50'}`}
- aria-label={`图片 ${c.role},${selectedImageIds.includes(c.candidate_id) ? '已选中' : '未选中'}`}
- >
-

-
{c.role}
-
- ))}
-
+ {imageCandidates.length === 0 ? (
+
有 {failedBatches.length} 批没出来。
{failedBatches.filter((b) => b.retryable).map((b) => (
+ className="ml-2 underline" aria-label={`重试${ROLE_LABEL[b.batch] || b.batch}`}>
+ ⟳ 重试{ROLE_LABEL[b.batch] || b.batch}
+
))}
)}
@@ -83,6 +123,16 @@ export default function ImageSelectionPage() {