refactor: use domNode prop to get edge-label-renderer
This commit is contained in:
@@ -4,19 +4,17 @@ import { useStore } from '../../hooks/useStore';
|
|||||||
import { ReactFlowState } from '../../types';
|
import { ReactFlowState } from '../../types';
|
||||||
|
|
||||||
const selector = (s: ReactFlowState) => ({
|
const selector = (s: ReactFlowState) => ({
|
||||||
d3Selection: s.d3Selection,
|
edgeLabelRenderer: s.domNode?.querySelector('.react-flow__edgelabel-renderer'),
|
||||||
});
|
});
|
||||||
|
|
||||||
function EdgeLabelRenderer({ children }: { children: ReactNode }) {
|
function EdgeLabelRenderer({ children }: { children: ReactNode }) {
|
||||||
const { d3Selection } = useStore(selector);
|
const { edgeLabelRenderer } = useStore(selector);
|
||||||
|
|
||||||
const edgeLabelRendererElement = d3Selection?.select('.react-flow__edgelabel-renderer').node();
|
if (!edgeLabelRenderer) {
|
||||||
|
|
||||||
if (!edgeLabelRendererElement || !(edgeLabelRendererElement instanceof HTMLDivElement)) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return createPortal(children, edgeLabelRendererElement);
|
return createPortal(children, edgeLabelRenderer);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default EdgeLabelRenderer;
|
export default EdgeLabelRenderer;
|
||||||
|
|||||||
Reference in New Issue
Block a user