fix(web): 簽核失敗視覺回饋 (Phase 22 P0)
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:
OG T
2026-03-31 19:18:25 +08:00
parent 2739ae5de9
commit 172ff04653

View File

@@ -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>
)})}