feat(editor): deleteKey as prop
This commit is contained in:
@@ -4,10 +4,10 @@ import { useStoreState, useStoreActions } from 'easy-peasy';
|
|||||||
import useKeyPress from '../hooks/useKeyPress';
|
import useKeyPress from '../hooks/useKeyPress';
|
||||||
import { isEdge, getConnectedEdges } from '../graph-utils';
|
import { isEdge, getConnectedEdges } from '../graph-utils';
|
||||||
|
|
||||||
export default memo((props) => {
|
export default memo(({ deleteKey, onElementsRemove }) => {
|
||||||
const state = useStoreState(s => ({ selectedElements: s.selectedElements, edges: s.edges }))
|
const state = useStoreState(s => ({ selectedElements: s.selectedElements, edges: s.edges }))
|
||||||
const setNodesSelection = useStoreActions(a => a.setNodesSelection);
|
const setNodesSelection = useStoreActions(a => a.setNodesSelection);
|
||||||
const removePressed = useKeyPress('Backspace');
|
const removePressed = useKeyPress(deleteKey);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (removePressed && state.selectedElements.length) {
|
if (removePressed && state.selectedElements.length) {
|
||||||
@@ -19,7 +19,7 @@ export default memo((props) => {
|
|||||||
elementsToRemove = [...state.selectedElements, ...connectedEdges];
|
elementsToRemove = [...state.selectedElements, ...connectedEdges];
|
||||||
}
|
}
|
||||||
|
|
||||||
props.onElementsRemove(elementsToRemove);
|
onElementsRemove(elementsToRemove);
|
||||||
setNodesSelection({ isActive: false });
|
setNodesSelection({ isActive: false });
|
||||||
}
|
}
|
||||||
}, [removePressed])
|
}, [removePressed])
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ import '../style.css';
|
|||||||
const ReactGraph = ({
|
const ReactGraph = ({
|
||||||
style, onElementClick, elements, children,
|
style, onElementClick, elements, children,
|
||||||
nodeTypes, edgeTypes, onLoad, onMove, onElementsRemove,
|
nodeTypes, edgeTypes, onLoad, onMove, onElementsRemove,
|
||||||
onConnect, onNodeDragStop, connectionLineType, connectionLineStyle
|
onConnect, onNodeDragStop, connectionLineType, connectionLineStyle,
|
||||||
|
deleteKey
|
||||||
}) => {
|
}) => {
|
||||||
const nodeTypesParsed = useMemo(() => createNodeTypes(nodeTypes), []);
|
const nodeTypesParsed = useMemo(() => createNodeTypes(nodeTypes), []);
|
||||||
const edgeTypesParsed = useMemo(() => createEdgeTypes(edgeTypes), []);
|
const edgeTypesParsed = useMemo(() => createEdgeTypes(edgeTypes), []);
|
||||||
@@ -47,6 +48,7 @@ const ReactGraph = ({
|
|||||||
/>
|
/>
|
||||||
<GlobalKeyHandler
|
<GlobalKeyHandler
|
||||||
onElementsRemove={onElementsRemove}
|
onElementsRemove={onElementsRemove}
|
||||||
|
deleteKey={deleteKey}
|
||||||
/>
|
/>
|
||||||
{children}
|
{children}
|
||||||
</StoreProvider>
|
</StoreProvider>
|
||||||
@@ -74,7 +76,8 @@ ReactGraph.defaultProps = {
|
|||||||
step: StepEdge
|
step: StepEdge
|
||||||
},
|
},
|
||||||
connectionLineType: 'bezier',
|
connectionLineType: 'bezier',
|
||||||
connectionLineStyle: {}
|
connectionLineStyle: {},
|
||||||
|
deleteKey: 'Backspace'
|
||||||
};
|
};
|
||||||
|
|
||||||
export default ReactGraph;
|
export default ReactGraph;
|
||||||
|
|||||||
Reference in New Issue
Block a user