mirror of
https://github.com/iflytek/skillhub.git
synced 2026-09-11 22:51:04 +00:00
fix: show review failure reasons
This commit is contained in:
parent
97db5efa8f
commit
b01bedf392
3 changed files with 26 additions and 4 deletions
13
web/src/features/review/review-error.test.ts
Normal file
13
web/src/features/review/review-error.test.ts
Normal 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()
|
||||
})
|
||||
})
|
||||
8
web/src/features/review/review-error.ts
Normal file
8
web/src/features/review/review-error.ts
Normal 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
|
||||
}
|
||||
|
|
@ -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))
|
||||
},
|
||||
}
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue