simplify logic

This commit is contained in:
peterkogo
2025-10-15 16:19:08 +02:00
parent 75aff8ef26
commit 3993b00782
+4 -22
View File
@@ -121,39 +121,21 @@ export function Pane({
const onWheel = onPaneScroll ? (event: React.WheelEvent) => onPaneScroll(event) : undefined; const onWheel = onPaneScroll ? (event: React.WheelEvent) => onPaneScroll(event) : undefined;
const onMouseDownCapture = (event: ReactMouseEvent) => {
isNoKeyEvent.current =
isNoKeyEvent.current === null ? !!(event.target as HTMLElement).closest('.nokey') : isNoKeyEvent.current;
if (isNoKeyEvent.current) {
return;
}
event.stopPropagation();
};
const onClickCapture = (event: ReactMouseEvent) => { const onClickCapture = (event: ReactMouseEvent) => {
if (isNoKeyEvent.current) {
isNoKeyEvent.current = null;
return;
}
isNoKeyEvent.current = null;
event.stopPropagation(); event.stopPropagation();
}; };
const onPointerDown = (event: ReactPointerEvent): void => { const onPointerDown = (event: ReactPointerEvent): void => {
const { resetSelectedElements, domNode } = store.getState(); const { resetSelectedElements, domNode } = store.getState();
containerBounds.current = domNode?.getBoundingClientRect(); containerBounds.current = domNode?.getBoundingClientRect();
isNoKeyEvent.current = const isNoKeyEvent = event.target !== container.current && !!(event.target as HTMLElement).closest('.nokey');
isNoKeyEvent.current === null ? !!(event.target as HTMLElement).closest('.nokey') : isNoKeyEvent.current;
if (!elementsSelectable || !isSelecting || event.button !== 0 || !containerBounds.current || isNoKeyEvent.current) { if (!elementsSelectable || !isSelecting || event.button !== 0 || !containerBounds.current || isNoKeyEvent) {
return; return;
} }
event.stopPropagation(); event.stopPropagation();
event.preventDefault();
(event.target as Partial<Element> | null)?.setPointerCapture?.(event.pointerId); (event.target as Partial<Element> | null)?.setPointerCapture?.(event.pointerId);
@@ -250,6 +232,7 @@ export function Pane({
}; };
const onPointerUp = (event: ReactPointerEvent) => { const onPointerUp = (event: ReactPointerEvent) => {
console.log('onPointerUp');
if (event.button !== 0 || !selectionStarted.current) { if (event.button !== 0 || !selectionStarted.current) {
return; return;
} }
@@ -296,7 +279,6 @@ export function Pane({
onPointerMove={hasActiveSelection ? onPointerMove : onPaneMouseMove} onPointerMove={hasActiveSelection ? onPointerMove : onPaneMouseMove}
onPointerUp={hasActiveSelection ? onPointerUp : undefined} onPointerUp={hasActiveSelection ? onPointerUp : undefined}
onPointerDownCapture={hasActiveSelection ? onPointerDown : undefined} onPointerDownCapture={hasActiveSelection ? onPointerDown : undefined}
onMouseDownCapture={hasActiveSelection ? onMouseDownCapture : undefined}
onClickCapture={hasActiveSelection ? onClickCapture : undefined} onClickCapture={hasActiveSelection ? onClickCapture : undefined}
onPointerLeave={onPaneMouseLeave} onPointerLeave={onPaneMouseLeave}
ref={container} ref={container}