restore context menu focus

This commit is contained in:
Thomas Camlong authored and ajnart committed 2026-08-14 11:07:08 +02:00
1 parent 869dd45de5
commit 68751d85dc
2 files changed
+7 -1

No files matched your search

@@ -101,6 +101,7 @@ export const BoardEmptySpaceContextMenu = ({ section, refs, children, ...boxProp
if (!placement) return;
event.preventDefault();
event.stopPropagation();
returnFocusRef.current = event.currentTarget;
setMenu({ x: event.clientX, y: event.clientY, placement });
};
@@ -108,11 +109,13 @@ export const BoardEmptySpaceContextMenu = ({ section, refs, children, ...boxProp
if (!enabled || event.pointerType !== "touch") return;
const placement = resolvePlacement(event.target, event.pageX, event.pageY);
if (!placement) return;
const returnFocus = event.currentTarget;
clearLongPress();
longPressPointer.current = { pointerId: event.pointerId, x: event.clientX, y: event.clientY };
touchGuardElement.current = event.currentTarget;
touchGuardElement.current.classList.add(suppressTouchCalloutClass);
longPressTimer.current = setTimeout(() => {
returnFocusRef.current = returnFocus;
setMenu({ x: event.clientX, y: event.clientY, placement });
navigator.vibrate?.(20);
}, 500);
+4 -1
View File
@@ -265,11 +265,14 @@ describe("Board advanced interactions", () => {
await expect(addHereMenuItem).toBeVisible({ timeout: 1_000 });
await page.keyboard.press("Escape");
await expect(addHereMenuItem).toBeHidden();
await expect(grid).toBeFocused();
await rightClickEmptyGridSpaceAsync(grid);
await expect(addHereMenuItem).toBeVisible();
await addHereMenuItem.click();
await expect(page.getByRole("dialog").filter({ hasText: "Choose item to add" })).toBeVisible();
await page.keyboard.press("Escape");
await expect(addHereMenuItem).toBeHidden();
await expect(grid).toBeFocused();
} finally {
await context.close();
}