refactor(edgeWrapper): cleanup
This commit is contained in:
@@ -5,32 +5,33 @@ import { setSelectedElements } from '../../state/actions';
|
||||
import { isInputNode } from '../../utils';
|
||||
|
||||
export default EdgeComponent => {
|
||||
const WrappedEdge = memo((props) => {
|
||||
const EdgeWrapper = memo((props) => {
|
||||
const {
|
||||
source, target, animated, type,
|
||||
dispatch, selected, onClick
|
||||
} = props;
|
||||
const edgeClasses = cx('react-graph__edge', { selected, animated: animated });
|
||||
const edgeClasses = cx('react-graph__edge', { selected, animated });
|
||||
const onEdgeClick = (evt) => {
|
||||
if (isInputNode(evt)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
dispatch(setSelectedElements({ source, target }));
|
||||
onClick({ source, target, type });
|
||||
};
|
||||
|
||||
return (
|
||||
<g
|
||||
className={edgeClasses}
|
||||
onClick={(e) => {
|
||||
if (isInputNode(e)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
dispatch(setSelectedElements({ source, target }));
|
||||
onClick({ source, target, type });
|
||||
}}
|
||||
onClick={onEdgeClick}
|
||||
>
|
||||
<EdgeComponent {...props} />
|
||||
</g>
|
||||
);
|
||||
});
|
||||
|
||||
WrappedEdge.displayName = 'Wrapped Edge';
|
||||
WrappedEdge.whyDidYouRender = false;
|
||||
EdgeWrapper.displayName = 'EdgeWrapper';
|
||||
EdgeWrapper.whyDidYouRender = false;
|
||||
|
||||
return WrappedEdge;
|
||||
return EdgeWrapper;
|
||||
};
|
||||
|
||||
10
src/utils.js
10
src/utils.js
@@ -2,9 +2,7 @@ export const isFunction = obj => !!(obj && obj.constructor && obj.call && obj.ap
|
||||
|
||||
export const isInputNode = e => e && e.target && ['INPUT', 'SELECT', 'TEXTAREA'].includes(e.target.nodeName);
|
||||
|
||||
export const getDimensions = (node) => {
|
||||
return {
|
||||
width: node.offsetWidth,
|
||||
height: node.offsetHeight
|
||||
};
|
||||
};
|
||||
export const getDimensions = (node = {}) => ({
|
||||
width: node.offsetWidth,
|
||||
height: node.offsetHeight
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user