fix(web): 簽核失敗視覺回饋 (Phase 22 P0)
All checks were successful
E2E Health Check / e2e-health (push) Successful in 18s
All checks were successful
E2E Health Check / e2e-health (push) Successful in 18s
問題: 簽核失敗時沒有任何提示,用戶不知道發生了什麼 修復: - 新增 toast.error() 當簽核失敗時 - 新增 Error Overlay (紅色背景 + critical 狀態球) 這與前一個 commit 的 CSRF 修復配合,讓用戶能清楚知道: 1. CSRF 載入中 → 按鈕 disabled 2. CSRF 失敗 → 顯示警告訊息 3. 簽核失敗 → Error Overlay + Toast Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -188,6 +188,8 @@ export function LiveApprovalPanel({
|
||||
}
|
||||
} else {
|
||||
setSigningStates((prev) => ({ ...prev, [id]: 'error' }))
|
||||
// 🔴 Phase 22 P0: 新增錯誤 Toast 提示
|
||||
toast.error('簽核失敗,請檢查網路連線或重新整理頁面')
|
||||
setTimeout(() => {
|
||||
setSigningStates((prev) => {
|
||||
const next = { ...prev }
|
||||
@@ -360,6 +362,18 @@ export function LiveApprovalPanel({
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* 🔴 Phase 22 P0: Error Overlay */}
|
||||
{signingStates[approval.id] === 'error' && (
|
||||
<div className="absolute inset-0 flex items-center justify-center bg-status-critical/20 rounded-xl">
|
||||
<div className="text-center">
|
||||
<StatusOrb status="critical" size="lg" glow />
|
||||
<p className="mt-2 text-status-critical font-mono font-semibold">
|
||||
{tCommon('error')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)})}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user