@steventoben
Posted
One thing I'd suggest is memoizing components, especially todolist items. Every interaction with anything on the todo list rerenders every single component in your tree, which is pretty unnecessary when not much will be changing.
@p1t1ch
Posted
@steventoben Right. Performance optimization was in my todo list (pun intended) but I completely forgot about that. Thank you for reminder!
Updated solution with TodoListItem / Input / NavPanel splitted in separate components. And wrapped TodoListItem in React.memo + passed handlers wrapped in useCallback. It should be much better now