v3.13.2
Fixes
- Inputs rendered inside the tree (e.g. an
<input>in a modal) can now receive Space characters again. The tree's keyboard handler no longer intercepts keystrokes that originate from a nested form field or contenteditable element. (#377)
v3.13.1
Fixes
-
NodeApiaction methods (toggle,select,activate,focus,edit, etc.) are now bound to the node, so passing them as callbacks — e.g.<Toggle onClick={node.toggle} />— no longer throws "Cannot read properties of undefined (reading 'tree')" when invoked detached. (#374)
v3.13.0
Features
-
useSimpleTreenow accepts anonChangeoption, called with the full data array after any internal move/create/rename/delete — a single place to persist the whole tree without wiring up each handler yourself. (#373)
v3.12.0
Features
- Added a
disableDeselectOnClickprop. By default, clicking the empty area below the rows clears the selection; setting this prop keeps the current selection intact instead (#245, #308). (#369)
v3.11.0
Features
-
TreeApinow exposesscrollToOffset(offset)to scroll the list to an exact pixel offset from the top, and ascrollOffsetgetter to read the current position — the offset-based counterpart toscrollTo(id), useful for saving and restoring scroll position (#194). (#368)
v3.10.6
Fixes
-
scrollTo(and theselectionprop /tree.scrollTo()paths that use it) now scrolls horizontally as well as vertically, bringing a deeply nested node's indented content into view when rows overflow the tree's width. Previously only the vertical position was adjusted, leaving deep nodes off-screen to the right. (#367)
v3.10.5
Fixes
-
TreeApimethods (select,focus,delete,edit, node creation, etc.) now honor a customidAccessorwhen given raw row data, instead of always reading.id. The identifier parameters and theonCreatereturn type accept your data type, so a custom accessor works end-to-end. (#366)
v3.10.4
Fixes
-
initialDatanow honorsidAccessorandchildrenAccessor(issue #73, also #170). The built-in data controller behindinitialDatahardcodedidandchildren, so trees keyed differently couldn't be reordered (drag ids never matched) and moving a node with children dropped them. The controller now reads ids and children through the same accessors as the rest of the tree. A stringchildrenAccessoris fully supported for reorder/create/delete; a functionchildrenAccessoris read-only, so write-back falls back to thechildrenkey. (#365)
v3.10.3
Fixes
- A node can no longer be dragged while it's being renamed (issue #195). Previously, dragging inside the rename input picked the row up and moved it — visible even in the official Gmail demo. The drag source now refuses to start a drag while the node is in editing state, matching the VS Code explorer. (#364)
v3.10.2
Fixes
- Dropping a dragged node in the empty area below the last row fires
onMoveagain (issue #313). The drop logic had been moved into the per-row drop hook but never added to the outer (bottom-of-list) drop target, so drops to the very bottom of the tree were silently ignored. The shared handler now lives ontree.drop()and is used by both drop targets. (#361)