feat(selection): clear user selection when mouse leaves the pane
This commit is contained in:
@@ -51,6 +51,7 @@ export default memo(({ selectionKeyPressed }: UserSelectionProps) => {
|
|||||||
const setUserSelection = useStoreActions((actions) => actions.setUserSelection);
|
const setUserSelection = useStoreActions((actions) => actions.setUserSelection);
|
||||||
const updateUserSelection = useStoreActions((actions) => actions.updateUserSelection);
|
const updateUserSelection = useStoreActions((actions) => actions.updateUserSelection);
|
||||||
const unsetUserSelection = useStoreActions((actions) => actions.unsetUserSelection);
|
const unsetUserSelection = useStoreActions((actions) => actions.unsetUserSelection);
|
||||||
|
const unsetNodesSelection = useStoreActions((actions) => actions.unsetNodesSelection);
|
||||||
const renderUserSelectionPane = selectionActive || selectionKeyPressed;
|
const renderUserSelectionPane = selectionActive || selectionKeyPressed;
|
||||||
|
|
||||||
if (!elementsSelectable || !renderUserSelectionPane) {
|
if (!elementsSelectable || !renderUserSelectionPane) {
|
||||||
@@ -81,12 +82,18 @@ export default memo(({ selectionKeyPressed }: UserSelectionProps) => {
|
|||||||
|
|
||||||
const onMouseUp = () => unsetUserSelection();
|
const onMouseUp = () => unsetUserSelection();
|
||||||
|
|
||||||
|
const onMouseLeave = () => {
|
||||||
|
unsetUserSelection();
|
||||||
|
unsetNodesSelection();
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className="react-flow__selectionpane"
|
className="react-flow__selectionpane"
|
||||||
onMouseDown={onMouseDown}
|
onMouseDown={onMouseDown}
|
||||||
onMouseMove={onMouseMove}
|
onMouseMove={onMouseMove}
|
||||||
onMouseUp={onMouseUp}
|
onMouseUp={onMouseUp}
|
||||||
|
onMouseLeave={onMouseLeave}
|
||||||
>
|
>
|
||||||
<SelectionRect />
|
<SelectionRect />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user