fix: cascade deletion removes parent and cleans up grandparent refs in TravelPlan useImmer example
This update fixes the TravelPlan example in “Choosing the State Structure” so that deleting a place now behaves correctly and cleans up all related data.
When the last child of a node is removed, the example now:
Removes the entire subtree of that child (for proper memory cleanup)
Removes the deleted node’s ID from its parent’s childIds
Automatically deletes the parent if it becomes empty (and isn’t the root)
Removes that parent’s ID from its own parent, cascading the cleanup upward until the root
This prevents dangling references and ensures that deletions cascade cleanly through the hierarchy.
Changed file:
src/content/learn/choosing-the-state-structure.md
Notes:
The root node (ID 0) is always preserved.
The logic uses concise use-immer draft updates for clarity and immutability.
Size changes
📦 Next.js Bundle Analysis for react-dev
This analysis was generated by the Next.js Bundle Analysis action. 🤖
This PR introduced no changes to the JavaScript bundle! 🙌