feat(wrapper): add onSelectionChange handler

This commit is contained in:
moklick
2020-05-25 14:00:46 +02:00
parent 3d80fb6586
commit f154f59e74
9 changed files with 62 additions and 43 deletions
+4 -7
View File
@@ -11,22 +11,19 @@ interface HookParams {
}
export default ({ deleteKeyCode, onElementsRemove }: HookParams): void => {
const state = useStoreState(s => ({
const state = useStoreState((s) => ({
selectedElements: s.selectedElements,
edges: s.edges,
}));
const setNodesSelection = useStoreActions(a => a.setNodesSelection);
const setNodesSelection = useStoreActions((a) => a.setNodesSelection);
const deleteKeyPressed = useKeyPress(deleteKeyCode);
useEffect(() => {
if (deleteKeyPressed && state.selectedElements.length) {
if (deleteKeyPressed && state.selectedElements) {
let elementsToRemove = state.selectedElements;
// we also want to remove the edges if only one node is selected
if (
state.selectedElements.length === 1 &&
!isEdge(state.selectedElements[0])
) {
if (state.selectedElements.length === 1 && !isEdge(state.selectedElements[0])) {
const node = (state.selectedElements[0] as unknown) as Node;
const connectedEdges = getConnectedEdges([node], state.edges);
elementsToRemove = [...state.selectedElements, ...connectedEdges];