-
-
Notifications
You must be signed in to change notification settings - Fork 65
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can't focus tree by using just keyboard. #328
Comments
Hello, thanks for the report. I'm not actually sure this is something I would like to handle inside of the library. The underlying issue is that RCT keeps track of which item is currently focused, and only makes the item focusable that is registered as focused. So removing an item from the outside that is currently focused, ends in the tree having the focused item state pointing to an item that is no longer rendered in. Unfortunately, if the item is removed from the outside, there is no convenient way for RCT to know if the currently focused item was affected by that. I could make the tree search through the entire tree to find out if there is an focused item and reset that state if not, but I would rather not want to do that for performance reasons. I think I would rather leave that up to the library consumer, to manually reset the focused item state when the tree content changes in a way that makes the focused item state enter an invalid value. The consumer could manually check if the tree mutation affected the focused item, or manually reset the focused item to the root item everytime the tree is changed from the outside, since that might affect the content in a way that invalidates the focused item anyways, if that makes sense in the respective use case. |
Hm that is odd, I don't really understand what could be throwing there. Is there a stacktrace that points to where this is thrown? Can you also check what happens if you supply a third parameter I tried to expand the sample implementation in my storybook instance to achieve something similar, where it now also updates the focused item, though I can't reproduce the issue there: https://github.com/lukasbach/react-complex-tree/blob/main/packages/core/src/stories/CustomDataProvider.stories.tsx#L48 |
FYI I've added a new addition in v2.4.3 where it now also checks if an item exists before it focuses that item, and falls back to the first item in the tree, so theoretically this should also solve this situation by default when an focused item is programmatically removed from the tree. |
Describe the bug
I can't focus tree by using just keyboard if items are removed from the tree. I am not sure if it is a defect.
To Reproduce
Expected behavior
Can focus tree.
Screenshots
N / A
Desktop :
The text was updated successfully, but these errors were encountered: