refactor(easy-peasy): return single values from useStoreState
This commit is contained in:
@@ -2,8 +2,8 @@ import { useEffect } from 'react';
|
||||
|
||||
import { useStoreState, useStoreActions } from '../store/hooks';
|
||||
import useKeyPress from './useKeyPress';
|
||||
import { isEdge, getConnectedEdges } from '../utils/graph';
|
||||
import { Elements, Node } from '../types';
|
||||
import { isNode, getConnectedEdges } from '../utils/graph';
|
||||
import { Elements } from '../types';
|
||||
|
||||
interface HookParams {
|
||||
deleteKeyCode: number;
|
||||
@@ -11,22 +11,21 @@ interface HookParams {
|
||||
}
|
||||
|
||||
export default ({ deleteKeyCode, onElementsRemove }: HookParams): void => {
|
||||
const state = useStoreState((s) => ({
|
||||
selectedElements: s.selectedElements,
|
||||
edges: s.edges,
|
||||
}));
|
||||
const selectedElements = useStoreState((s) => s.selectedElements);
|
||||
const edges = useStoreState((s) => s.edges);
|
||||
|
||||
const setNodesSelection = useStoreActions((a) => a.setNodesSelection);
|
||||
const deleteKeyPressed = useKeyPress(deleteKeyCode);
|
||||
|
||||
useEffect(() => {
|
||||
if (onElementsRemove && deleteKeyPressed && state.selectedElements) {
|
||||
let elementsToRemove = state.selectedElements;
|
||||
if (onElementsRemove && deleteKeyPressed && selectedElements) {
|
||||
let elementsToRemove = selectedElements;
|
||||
|
||||
// we also want to remove the edges if only one node is selected
|
||||
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];
|
||||
if (selectedElements.length === 1 && isNode(selectedElements[0])) {
|
||||
const node = selectedElements[0];
|
||||
const connectedEdges = getConnectedEdges([node], edges);
|
||||
elementsToRemove = [...selectedElements, ...connectedEdges];
|
||||
}
|
||||
|
||||
onElementsRemove(elementsToRemove);
|
||||
|
||||
Reference in New Issue
Block a user