refactor: use domNode prop to get edge-label-renderer

This commit is contained in:
GeoffreyLiu
2022-11-14 19:55:56 +08:00
parent 23aa8bb270
commit 038835772f
@@ -4,19 +4,17 @@ import { useStore } from '../../hooks/useStore';
import { ReactFlowState } from '../../types';
const selector = (s: ReactFlowState) => ({
d3Selection: s.d3Selection,
edgeLabelRenderer: s.domNode?.querySelector('.react-flow__edgelabel-renderer'),
});
function EdgeLabelRenderer({ children }: { children: ReactNode }) {
const { d3Selection } = useStore(selector);
const { edgeLabelRenderer } = useStore(selector);
const edgeLabelRendererElement = d3Selection?.select('.react-flow__edgelabel-renderer').node();
if (!edgeLabelRendererElement || !(edgeLabelRendererElement instanceof HTMLDivElement)) {
if (!edgeLabelRenderer) {
return null;
}
return createPortal(children, edgeLabelRendererElement);
return createPortal(children, edgeLabelRenderer);
}
export default EdgeLabelRenderer;