mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-10-06 20:32:05 +00:00
fix(work-orders): restore AAP span grip while keeping keyboard reorder
This commit is contained in:
parent
370b2a68ad
commit
9f9aa5c824
2 changed files with 8 additions and 26 deletions
|
|
@ -7,13 +7,6 @@ type WoTableRowReorderHandleProps = {
|
||||||
onArrowReorder: (delta: -1 | 1) => void;
|
onArrowReorder: (delta: -1 | 1) => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
function gripCursor(disabled: boolean, isDragging: boolean): string {
|
|
||||||
if (disabled) {
|
|
||||||
return "default";
|
|
||||||
}
|
|
||||||
return isDragging ? "grabbing" : "grab";
|
|
||||||
}
|
|
||||||
|
|
||||||
export function WoTableRowReorderHandle({
|
export function WoTableRowReorderHandle({
|
||||||
disabled,
|
disabled,
|
||||||
isDragging,
|
isDragging,
|
||||||
|
|
@ -21,27 +14,15 @@ export function WoTableRowReorderHandle({
|
||||||
onArrowReorder,
|
onArrowReorder,
|
||||||
}: WoTableRowReorderHandleProps) {
|
}: WoTableRowReorderHandleProps) {
|
||||||
return (
|
return (
|
||||||
<button
|
<span
|
||||||
type="button"
|
role="button"
|
||||||
disabled={disabled}
|
aria-disabled={disabled}
|
||||||
tabIndex={disabled ? -1 : 0}
|
tabIndex={disabled ? -1 : 0}
|
||||||
aria-label={woNumber ? `Reorder work order ${woNumber}` : "Reorder work order"}
|
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={{
|
style={{
|
||||||
appearance: "none",
|
cursor: isDragging ? "grabbing" : "grab",
|
||||||
display: "inline-flex",
|
|
||||||
boxSizing: "border-box",
|
|
||||||
verticalAlign: "middle",
|
|
||||||
cursor: gripCursor(disabled, isDragging),
|
|
||||||
color: "var(--color-text-muted)",
|
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()}
|
onClick={(event) => event.stopPropagation()}
|
||||||
onKeyDown={(event) => {
|
onKeyDown={(event) => {
|
||||||
|
|
@ -54,6 +35,6 @@ export function WoTableRowReorderHandle({
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<GripVertical size={14} aria-hidden />
|
<GripVertical size={14} aria-hidden />
|
||||||
</button>
|
</span>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -126,7 +126,8 @@ describe("WoTableRow keyboard reorder", () => {
|
||||||
renderRow(row, [row], handlers({ onReorder }));
|
renderRow(row, [row], handlers({ onReorder }));
|
||||||
|
|
||||||
const grip = screen.getByRole("button", { name: "Reorder work order WO-1" });
|
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" });
|
fireEvent.keyDown(grip, { key: "ArrowDown" });
|
||||||
expect(onReorder).not.toHaveBeenCalled();
|
expect(onReorder).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue