Skip to content

Commit 2817fcb

Browse files
committed
Fix dependencies for nodeTypes memo
1 parent 96211a5 commit 2817fcb

File tree

1 file changed

+12
-7
lines changed
  • rust/cubesql/cubesql/egraph-debug-template/src

1 file changed

+12
-7
lines changed

rust/cubesql/cubesql/egraph-debug-template/src/index.js

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ const splitLabel = (label) => {
212212
};
213213

214214
const ChildrenNode =
215-
({ navigate, nodes }) =>
215+
({ navigate /*, nodes*/ }) =>
216216
({ data: { label } }) => {
217217
return (
218218
<div>
@@ -224,10 +224,12 @@ const ChildrenNode =
224224
style={{ color: 'blue', cursor: 'pointer' }}
225225
onClick={() => navigate(s)}
226226
key={i}
227-
title={nodes
228-
.filter((n) => n.id.indexOf(`${s}-`) === 0)
229-
.map((n) => n.label)
230-
.join(', ')}
227+
// title is broken due to circular deps, see nodeTypes comment
228+
// TODO fix it
229+
// title={nodes
230+
// .filter((n) => n.id.indexOf(`${s}-`) === 0)
231+
// .map((n) => n.label)
232+
// .join(', ')}
231233
>
232234
{s}
233235
</span>
@@ -350,9 +352,12 @@ const LayoutFlow = () => {
350352

351353
const nodeTypes = useMemo(
352354
() => ({
353-
default: ChildrenNode({ navigate, nodes }),
355+
// `nodeTypes` can't depend on `nodes`, because `nodes` will be changed by ReactFlow
356+
// There will be a dep cycle nodeTypes -> ReactFlow instance -> onNodesChange -> nodes -> nodeTypes
357+
default: ChildrenNode({ navigate /*, nodes*/ }),
354358
}),
355-
[navHistory],
359+
// TODO dependency on navigate will cause nodeTypes rebuild after each navigation history change
360+
[navigate],
356361
);
357362

358363
useEffect(() => {

0 commit comments

Comments
 (0)