From 78d9ae48b250a0ef6efea90817e7830f37f2e738 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Tue, 21 Jul 2026 12:38:45 +0200 Subject: [PATCH] feat(webui): centralize disabled button reasons --- webui/src/components/Button.tsx | 13 ++++++++++--- webui/src/index.ts | 1 + webui/tests/data-grid-actions.test.tsx | 6 ++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/webui/src/components/Button.tsx b/webui/src/components/Button.tsx index 5ea6811..757a0b2 100644 --- a/webui/src/components/Button.tsx +++ b/webui/src/components/Button.tsx @@ -1,5 +1,12 @@ -type Props = React.ButtonHTMLAttributes & { variant?: "primary" | "secondary" | "ghost" | "danger" }; +import type { ButtonHTMLAttributes, ReactNode } from "react"; +import DisabledActionTooltip from "./DisabledActionTooltip"; -export default function Button({ variant = "secondary", className = "", ...props }: Props) { - return ); +assertEqual(reasonedButton.includes("disabled=\"\""), true, "a disabled reason disables the central button"); +assertEqual(reasonedButton.includes("disabled-action-tooltip"), true, "a disabled reason remains keyboard discoverable"); +assertEqual(reasonedButton.includes("disabledReason"), false, "the central-only disabled reason is not passed to the DOM");