Skip to content

Commit c727eda

Browse files
emyarodkodiakhq[bot]tay1orjones
authored
fix(TreeView): use prespecified active and selected on mount only (#11697)
* fix(TreeView): update onSelect signature * fix(TreeView): use prespecified active and selected on mount only Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com> Co-authored-by: Taylor Jones <tay1orjones@users.noreply.github.com>
1 parent 79b0b17 commit c727eda

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

packages/react/src/components/TreeView/TreeView.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,12 @@ export default function TreeView({
5151
} else {
5252
setSelected(selected.filter((selectedId) => selectedId !== nodeId));
5353
}
54+
onSelect?.(event, node);
5455
} else {
5556
setSelected([nodeId]);
5657
setActive(nodeId);
58+
onSelect?.(event, { activeNodeId: nodeId, ...node });
5759
}
58-
onSelect?.(event, node);
5960
}
6061

6162
function handleFocusEvent(event) {
@@ -183,14 +184,17 @@ export default function TreeView({
183184
});
184185
}, [prefix]);
185186

186-
useEffect(() => {
187-
if (preselected.length) {
188-
setSelected(preselected);
189-
}
190-
if (prespecifiedActive) {
191-
setActive(prespecifiedActive);
192-
}
193-
}, [preselected, prespecifiedActive]);
187+
const useActiveAndSelectedOnMount = () =>
188+
useEffect(() => {
189+
if (preselected.length) {
190+
setSelected(preselected);
191+
}
192+
if (prespecifiedActive) {
193+
setActive(prespecifiedActive);
194+
}
195+
}, []);
196+
197+
useActiveAndSelectedOnMount();
194198

195199
const labelId = `${treeId}__label`;
196200
const TreeLabel = () =>
@@ -199,6 +203,7 @@ export default function TreeView({
199203
{label}
200204
</label>
201205
);
206+
202207
return (
203208
<>
204209
<TreeLabel />

0 commit comments

Comments
 (0)