Title tooltip in dropdowns - #1663
Open
Arnei wants to merge 8 commits into
Open
Conversation
This was already false per default, but was set to false explicitly to fix a tab navigation issue in the metadata tab of events/series dialog. So this sets openMenuOnFocus to false in RenderFields, so that it may be true in other components again
Before we only made a copy if skipTranslate was true. This could have cause errors with immutable arrays, so it is probably better to copy everytime.
menuPlacement defaults to this anyway, no need to check here again
By using useRef instead of createRef we can avoid recreating the ref all the time. Should result in a very, very minor performance boost.
Avoid potential rerenders for virtualized options which can end up quite costly for larger lists. Could also help with flickering and focus reset issues somewhat.
Previous code was just delaying the fetch by a second. It would still fire all accumulated request anyway (e.g. requests for "C", "Co, "Cou", "Cour", "Cours" and "Course", instead of just "Course". Implements debouncing, which should make for less load and cleaner rendering steps when searching in an async dropdown.
The 1s debounce delay predates the backend performance work on the ACL role picker (see the opencast20-side fixes for /admin-ng/acl/roles.json): when a search could take several seconds regardless, an extra second of debounce was a small fraction of the total wait. Now that a real search responds in roughly 100ms, the fixed 1s delay is the dominant, and now clearly excessive, part of the perceived latency -- pull it down to 300ms, in line with typical search-as-you-type debounce intervals, and give it a name instead of a bare literal so it's easy to find and retune later.
Adds wrappers around certain react-select components that add the title attribute to them. This results in tooltips when hovering certain dropdowns or their options. The goal here is to allow users to still read labels that do not fit in the dropdown. This is supposed to help with an issue where two users had have the same name but different e-mail addresses, but the e-mail addresses were not readable so the users could not be distinguished. The tooltips are only supposed to help with edge cases. If a dropdown is too small in general, that is a different issue.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Includes #1655, this adds only the last commit.
Adds wrappers around certain react-select components that add the title attribute to them. This results in tooltips when hovering certain dropdowns or their options.
The goal here is to allow users to still read labels that do not fit in the dropdown. This is supposed to help with an issue where two users had have the same name but different e-mail addresses, but the e-mail addresses were not readable so the users could not be distinguished. The tooltips are only supposed to help with edge cases. If a dropdown is too small in general, that is a different issue.
How to test this
Can be tested as is. Go to the event details, open the ACL tab and type in a role dropdown. For better effect configure
sanitize=falseandprop.org.opencastproject.acl.additional.actions.annotate=Annotatein the Opencast config files.AI Usage
Claude Sonnet was used to write the wrappers.