fix(web): add rejected badge for skill versions that failed review

This commit is contained in:
yun-zhi-ztl 2026-03-19 11:11:14 +08:00 • committed by Xudong Sun
parent a4cb9f0cf9
commit 7222ff0f37
4 changed files with 13 additions and 0 deletions

View file

@ -614,6 +614,7 @@
"statusArchived": "Archived",
"statusHidden": "Hidden",
"pendingPreviewBadge": "Pending Preview",
"rejectedBadge": "Review Rejected",
"pendingPreviewTitle": "You are previewing a pending version",
"pendingPreviewDescription": "This version is only visible to you. Before review approval, you can inspect the README, files, and version information, but you cannot star, rate, report, or download it.",
"pendingPreviewInteractionHint": "Stars, ratings, and reports are disabled while this version is pending review.",

View file

@ -614,6 +614,7 @@
"statusArchived": "已归档",
"statusHidden": "已隐藏",
"pendingPreviewBadge": "待审核预览",
"rejectedBadge": "审核未通过",
"pendingPreviewTitle": "当前正在预览待审核版本",
"pendingPreviewDescription": "该版本仅你本人可见。审核通过前,你可以查看 README、文件和版本信息,但不能收藏、评分、举报或下载。",
"pendingPreviewInteractionHint": "待审核预览期间不可收藏、评分或举报。",

View file

@ -250,6 +250,11 @@ export function MySkillsPage() {
{resolveStatusLabel(ownerPreviewVersion?.status)}
</span>
) : null}
{!hasPendingPreview && ownerPreviewVersion?.status === 'REJECTED' && ownerPreviewVersion?.version !== headlineVersion?.version ? (
<span className={resolveStatusClassName('REJECTED')}>
{resolveStatusLabel('REJECTED')}
</span>
) : null}
</div>
</div>
<div className="flex items-center gap-2 pl-4">

View file

@ -133,6 +133,7 @@ export function SkillDetailPage() {
const canHideSkill = hasRole('SUPER_ADMIN')
const isPendingPreview = skill ? isOwnerPreviewResolution(skill) : false
const hasPendingOwnerPreview = ownerPreviewVersion?.status === 'PENDING_REVIEW'
const hasRejectedVersion = versions?.some((v) => v.status === 'REJECTED') ?? false
const hasPublishedPendingReview = Boolean(publishedVersion && hasPendingOwnerPreview)
const canInteract = skill?.canInteract ?? true
const canReport = skill?.canReport ?? true
@ -558,6 +559,11 @@ export function SkillDetailPage() {
{t('skillDetail.pendingPreviewBadge')}
</span>
)}
{!isPendingPreview && hasRejectedVersion && skill.canManageLifecycle && (
<span className="badge-soft" style={{ background: '#fee2e2', color: '#991b1b' }}>
{t('skillDetail.rejectedBadge')}
</span>
)}
</div>
<h1 className="text-balance text-4xl font-bold font-heading text-foreground">{skill.displayName}</h1>
{skill.ownerDisplayName && (