feat(webui): centralize disabled button reasons

This commit is contained in:
2026-07-21 12:38:45 +02:00
parent 4cb3e94de3
commit 78d9ae48b2
3 changed files with 17 additions and 3 deletions

View File

@@ -3,6 +3,7 @@ function assertEqual<T>(actual: T, expected: T, message: string): void {
}
import { renderToStaticMarkup } from "react-dom/server";
import Button from "../src/components/Button";
import { DataGridEmptyAction, DataGridRowActions } from "../src/components/table/DataGrid";
import TableActionGroup, { runTableAction } from "../src/components/table/TableActionGroup";
@@ -60,3 +61,8 @@ const noReorderActions = renderToStaticMarkup(
<DataGridRowActions onAddBelow={noop} onRemove={noop} />
);
assertEqual(buttonCount(noReorderActions), 2, "row actions omit reorder controls when ordering does not apply");
const reasonedButton = renderToStaticMarkup(<Button disabledReason="Permission denied">Save</Button>);
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");