projectstorm / react-diagrams

a super simple, no-nonsense diagramming library written in react that just works
https://projectstorm.cloud/react-diagrams
MIT License
8.46k stars 1.16k forks source link

PathFindingLink Render issue - Uncaught TypeError: Cannot read properties of undefined (reading '75') #903

Open horizon-sk opened 2 years ago

horizon-sk commented 2 years ago

I am trying to use dagre example to render custom nodes with PathFindingLinkModel but it always crashes when the number of nodes are more that cannot fit in the canvas view.

This exception doesn't occur if I switch to DefaultLinkModel.

Also, I am NOT using SmartRouting, but with SmartRouting turned on, same issue is there.

Please advice how to circumvent this issue.

I am using below code -

const autoDistribute = () => {
    let dagreEngine = new DagreEngine({
        graph: {
            rankdir: 'TB',
            ranksep: 200,
            edgesep: 400,
            nodesep: 300,
            ranker: 'network-simplex',
            marginx: 20,
            marginy: 20
            //rankdir: 'RL',
            //ranker: 'longest-path',
            //marginx: 25,
            //marginy: 25
        },
        includeLinks: false
    });
    dagreEngine.redistribute(props.engine.getModel());

    reroute();

    props.engine.repaintCanvas();
};

const reroute = () => { props.engine .getLinkFactories() .getFactory(PathFindingLinkFactory.NAME) .calculateRoutingMatrix(); };

Exception:

Grid.js:89 Uncaught TypeError: Cannot read properties of undefined (reading '75') at Grid.push../node_modules/pathfinding/src/core/Grid.js.Grid.getNodeAt (static/js/vendors~main.chunk.js:153189) at JPFNeverMoveDiagonally.push../node_modules/pathfinding/src/finders/JumpPointFinderBase.js.JumpPointFinderBase.findPath (static/js/vendors~main.chunk.js:155458) at PathFinding.calculateDirectPath (static/js/vendors~main.chunk.js:74697) at PathFindingLinkWidget.render (static/js/vendors~main.chunk.js:75207) at finishClassComponent (static/js/vendors~main.chunk.js:223363) at updateClassComponent (static/js/vendors~main.chunk.js:223316) at beginWork (static/js/vendors~main.chunk.js:224901) at HTMLUnknownElement.callCallback (static/js/vendors~main.chunk.js:209866) at Object.invokeGuardedCallbackDev (static/js/vendors~main.chunk.js:209915) at invokeGuardedCallback (static/js/vendors~main.chunk.js:209975) at beginWork$1 (static/js/vendors~main.chunk.js:229717) at performUnitOfWork (static/js/vendors~main.chunk.js:228553) at workLoopSync (static/js/vendors~main.chunk.js:228490) at renderRootSync (static/js/vendors~main.chunk.js:228456) at performSyncWorkOnRoot (static/js/vendors~main.chunk.js:228073) at static/js/vendors~main.chunk.js:217326 at unstable_runWithPriority (static/js/vendors~main.chunk.js:257040) at runWithPriority$1 (static/js/vendors~main.chunk.js:217272) at flushSyncCallbackQueueImpl (static/js/vendors~main.chunk.js:217321) at flushSyncCallbackQueue (static/js/vendors~main.chunk.js:217309) at discreteUpdates$1 (static/js/vendors~main.chunk.js:228201) at discreteUpdates (static/js/vendors~main.chunk.js:209676) at dispatchDiscreteEvent (static/js/vendors~main.chunk.js:211858)