fix(work-orders): restore AAP span grip while keeping keyboard reorder

This commit is contained in:
Arthur Bassi 2026-09-04 13:27:53 -03:00
parent 370b2a68ad
commit 9f9aa5c824
2 changed files with 8 additions and 26 deletions

View file

@ -7,13 +7,6 @@ type WoTableRowReorderHandleProps = {
onArrowReorder: (delta: -1 | 1) => void;
};
function gripCursor(disabled: boolean, isDragging: boolean): string {
if (disabled) {
return "default";
}
return isDragging ? "grabbing" : "grab";
}
export function WoTableRowReorderHandle({
disabled,
isDragging,
@ -21,27 +14,15 @@ export function WoTableRowReorderHandle({
onArrowReorder,
}: WoTableRowReorderHandleProps) {
return (
<button
type="button"
disabled={disabled}
<span
role="button"
aria-disabled={disabled}
tabIndex={disabled ? -1 : 0}
aria-label={woNumber ? `Reorder work order ${woNumber}` : "Reorder work order"}
className="flex items-center justify-center bg-transparent p-0"
className="flex items-center justify-center"
style={{
appearance: "none",
display: "inline-flex",
boxSizing: "border-box",
verticalAlign: "middle",
cursor: gripCursor(disabled, isDragging),
cursor: isDragging ? "grabbing" : "grab",
color: "var(--color-text-muted)",
border: "none",
background: "transparent",
padding: 0,
margin: 0,
lineHeight: 0,
font: "inherit",
minWidth: 0,
minHeight: 0,
}}
onClick={(event) => event.stopPropagation()}
onKeyDown={(event) => {
@ -54,6 +35,6 @@ export function WoTableRowReorderHandle({
}}
>
<GripVertical size={14} aria-hidden />
</button>
</span>
);
}

View file

@ -126,7 +126,8 @@ describe("WoTableRow keyboard reorder", () => {
renderRow(row, [row], handlers({ onReorder }));
const grip = screen.getByRole("button", { name: "Reorder work order WO-1" });
expect(grip).toBeDisabled();
expect(grip).toHaveAttribute("aria-disabled", "true");
expect(grip).toHaveAttribute("tabindex", "-1");
fireEvent.keyDown(grip, { key: "ArrowDown" });
expect(onReorder).not.toHaveBeenCalled();
});