fix(web): pending-approvals-card 加防重複點擊 + loading 狀態

linter 自動強化: actioningId state 防止同一張卡重複操作
- disabled + opacity 0.6 + cursor not-allowed
- loading 時按鈕顯示 '...'
- finally() 確保 actioningId 清除

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-04-09 18:38:08 +08:00
parent 890e2a9568
commit 896bef94ee
7 changed files with 89 additions and 48 deletions

View File

@@ -3795,8 +3795,9 @@ class TelegramGateway:
"reply_markup": {"inline_keyboard": info_buttons},
},
)
except Exception:
pass
except Exception as _e:
# 2026-04-09 Claude Sonnet 4.6: I3 架構Review修復 — 加 warning 防止靜默失敗
logger.warning("notify_approval_edit_keyboard_failed", incident_id=incident_id, error=str(_e))
try:
# 2. 在原訊息下回覆狀態
@@ -3810,14 +3811,14 @@ class TelegramGateway:
},
)
return
except Exception:
pass
except Exception as _e:
logger.warning("notify_approval_reply_failed", incident_id=incident_id, error=str(_e))
# fallback: 發新通知
try:
await self.send_notification(status_line, parse_mode="HTML")
except Exception:
pass
except Exception as _e:
logger.warning("notify_approval_fallback_failed", incident_id=incident_id, error=str(_e))
async def _execute_approval_action(
self,