From ee682eef65856213a543b1ca5c2fd2e000fd0f8e Mon Sep 17 00:00:00 2001 From: anti Date: Fri, 24 Apr 2026 16:15:47 -0400 Subject: [PATCH] feat(web/webhooks): surface manual FIRE button per row MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The per-row test-delivery action already existed as an icon-only ⚡ zap in the ACTIONS column — backed by POST /webhooks/{uuid}/test, which fires a synthetic test.ping event through the normal HMAC- signed delivery path with retries disabled. Too easy to miss. Replace the icon-only button with a labeled [⚡ FIRE] violet-accented button so it reads as an emphasized dev-tool action right next to edit/delete. Tooltip now spells out the backend endpoint and "fire a synthetic test event" intent. No backend change. Widens the actions column to 180px to accommodate the label. --- decnet_web/src/components/Webhooks.css | 13 ++++++++++++- decnet_web/src/components/Webhooks.tsx | 5 +++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/decnet_web/src/components/Webhooks.css b/decnet_web/src/components/Webhooks.css index 5a64d8fa..5c2c5d30 100644 --- a/decnet_web/src/components/Webhooks.css +++ b/decnet_web/src/components/Webhooks.css @@ -117,7 +117,18 @@ } .webhooks-root .webhooks-table .col-check { width: 28px; } -.webhooks-root .webhooks-table .col-actions { width: 140px; } +.webhooks-root .webhooks-table .col-actions { width: 180px; } + +.webhooks-root .action-btn.fire { + border-color: var(--violet); + color: var(--violet); + letter-spacing: 1.5px; +} +.webhooks-root .action-btn.fire:hover { + background: var(--violet); + color: #000; + box-shadow: var(--violet-glow); +} .webhooks-root .wh-url-cell { font-family: var(--font-mono); diff --git a/decnet_web/src/components/Webhooks.tsx b/decnet_web/src/components/Webhooks.tsx index cc79ce22..552aafd9 100644 --- a/decnet_web/src/components/Webhooks.tsx +++ b/decnet_web/src/components/Webhooks.tsx @@ -439,11 +439,12 @@ const Webhooks: React.FC = () => {