simplify logic
This commit is contained in:
@@ -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}
|
||||||
|
|||||||
Reference in New Issue
Block a user