fix: show review failure reasons

This commit is contained in:
yun-zhi-ztl 2026-03-17 11:13:37 +08:00
parent 97db5efa8f
commit b01bedf392
3 changed files with 26 additions and 4 deletions

View file

@ -0,0 +1,13 @@
import { describe, expect, it } from 'vitest'
import { resolveReviewActionErrorDescription } from './review-error'
describe('resolveReviewActionErrorDescription', () => {
it('returns the error message when present', () => {
expect(resolveReviewActionErrorDescription(new Error('审核规则校验失败'))).toBe('审核规则校验失败')
})
it('returns undefined for blank or non-error values', () => {
expect(resolveReviewActionErrorDescription(new Error(' '))).toBeUndefined()
expect(resolveReviewActionErrorDescription('审核失败')).toBeUndefined()
})
})

View file

@ -0,0 +1,8 @@
export function resolveReviewActionErrorDescription(error: unknown): string | undefined {
if (!(error instanceof Error)) {
return undefined
}
const message = error.message.trim()
return message || undefined
}

View file

@ -7,6 +7,7 @@ import { Textarea } from '@/shared/ui/textarea'
import { Label } from '@/shared/ui/label'
import { ConfirmDialog } from '@/shared/components/confirm-dialog'
import { toast } from '@/shared/lib/toast'
import { resolveReviewActionErrorDescription } from '@/features/review/review-error'
import { useReviewDetail, useApproveReview, useRejectReview } from '@/features/review/use-review-detail'
export function ReviewDetailPage() {
@ -36,8 +37,8 @@ export function ReviewDetailPage() {
toast.success(t('review.approveSuccess'))
navigate({ to: '/dashboard/reviews' })
},
onError: () => {
toast.error(t('review.approveFailed'))
onError: (error) => {
toast.error(t('review.approveFailed'), resolveReviewActionErrorDescription(error))
},
}
)
@ -55,8 +56,8 @@ export function ReviewDetailPage() {
toast.success(t('review.rejectSuccess'))
navigate({ to: '/dashboard/reviews' })
},
onError: () => {
toast.error(t('review.rejectFailed'))
onError: (error) => {
toast.error(t('review.rejectFailed'), resolveReviewActionErrorDescription(error))
},
}
)