fix(web): Y按鈕簽核回應解析錯誤 - result.status → result.approval.status
根因: API 回傳 {approval: {status: 'approved'}} 但前端誤檢查 result.status
修復:
- dual-state-incident-card.tsx: 正確解析 result.approval.status
- api-client.ts: 更新回傳型別與後端對齊
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -141,13 +141,17 @@ export const DualStateIncidentCard: React.FC<DualStateIncidentCardProps> = ({
|
||||
timeoutRef.current = null
|
||||
}
|
||||
|
||||
if (result.status === 'approved' || result.status === 'APPROVED') {
|
||||
// 🔧 Fix: 正確檢查 result.approval.status (非 result.status)
|
||||
const approvalStatus = result.approval?.status?.toLowerCase()
|
||||
if (approvalStatus === 'approved') {
|
||||
setButtonState('approved')
|
||||
console.log('🎯 授權成功,觸發 onApprovalChange')
|
||||
onApprovalChange?.(approvalId, 'approved')
|
||||
} else {
|
||||
// Multi-sig: 還需要更多簽核
|
||||
console.log('🔐 Multi-sig 等待中,目前簽核:', result.current_signatures, '/', result.required_signatures)
|
||||
const current = result.approval?.current_signatures ?? result.current_signatures ?? 0
|
||||
const required = result.approval?.required_signatures ?? result.required_signatures ?? 1
|
||||
console.log('🔐 Multi-sig 等待中,目前簽核:', current, '/', required)
|
||||
setButtonState('idle')
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
@@ -124,12 +124,17 @@ export const apiClient = {
|
||||
comment: comment,
|
||||
}),
|
||||
})
|
||||
// 🔧 Fix: 回傳型別與後端實際結構對齊
|
||||
return handleResponse<{
|
||||
approval_id: string
|
||||
status: string
|
||||
current_signatures: number
|
||||
required_signatures: number
|
||||
success: boolean
|
||||
message: string
|
||||
approval: ApprovalResponse
|
||||
execution_triggered: boolean
|
||||
// 向下相容舊欄位 (deprecated)
|
||||
approval_id?: string
|
||||
status?: string
|
||||
current_signatures?: number
|
||||
required_signatures?: number
|
||||
}>(res)
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user