From 842e9056dd14d77227cf9aa64870ec1f108d1bdd Mon Sep 17 00:00:00 2001 From: Paul Nothaft Date: Tue, 8 Sep 2026 21:37:58 +0200 Subject: [PATCH] fix(usage): explain and de-emphasize the pending-packet button lock MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit An admin whose report delivery is stuck (old schema, network issue, etc.) saw the v5-upgrade and portal buttons greyed out with no indication why, or what to do about it — the backend's single-packet- in-flight guard is correct, but silent. Add an inline note pointing at "Retry / send if due" when a pending packet is the actual cause. Also: "Review expanded usage.v5 scope" didn't read as an upgrade action — renamed to "Upgrade to usage.v5" / "Auf usage.v5 upgraden". "Open usage portal" is now a primary (green) button in both its signed-in and pre-participation forms, matching the visual weight of the other primary actions on this tab instead of blending in as a secondary outline button. --- .../src/features/settings/tabs/ProductUsageTab.tsx | 13 +++++++++++-- frontend/src/i18n/locales/de.json | 3 ++- frontend/src/i18n/locales/en.json | 3 ++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/frontend/src/features/settings/tabs/ProductUsageTab.tsx b/frontend/src/features/settings/tabs/ProductUsageTab.tsx index d633db4d..c4bc3ae8 100644 --- a/frontend/src/features/settings/tabs/ProductUsageTab.tsx +++ b/frontend/src/features/settings/tabs/ProductUsageTab.tsx @@ -223,6 +223,16 @@ export default function ProductUsageTab() { )} + {data.pending_action && data.pending_action !== 'consent' && ( + // The v5-upgrade and portal buttons below are disabled by the same + // pending-packet guard the backend enforces (command() refuses a + // second packet while one is still unacknowledged) — without this + // note the buttons just look broken, and "Retry" above them isn't + // obviously the fix. +

+ {t('productUsage.pendingBlocksActions')} +

+ )}
{data.status === 'disabled' ? (