feat(editor): deleteKey as prop

This commit is contained in:
moklick
2019-10-03 17:46:14 +02:00
parent a4887ea21f
commit 5ffe4f9c93
2 changed files with 8 additions and 5 deletions
+3 -3
View File
@@ -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])
+5 -2
View File
@@ -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;