-
Notifications
You must be signed in to change notification settings - Fork 176
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
Clipboard indeterminate selection incorrect #4636
Comments
Checkbox supports indeterminate state https://design-system.learningequality.org/kcheckbox/#states So most likely a bug either in Studio or in KDS. |
@MisRob Looking at the source, you can see that the only indeterminate state will render with the primary color ( |
@bjester Okay. I didn't understand what you mean by 'indeterminately unselected'. Yes, this would be a new state for KCheckbox. |
With that I am not suggesting we add a new gray state yet to KDS. Do we know if this is Studio specific - was gray in the designs or was this Vuetify related? I am a bit suspicious this is just a mismatch between the two libraries, and wonder if it'd make sense to have consistent experience and go with the current pattern that is used elsewhere in our products. If there's clarity in that this was intentional rather than just Vuetify's default or there is an intentional nuance I a missing, no problem. I just don't quite yet get what would be the value for the user and if they would be able to understand blue indeterminate selected vs gray indeterminate unselected if they saw them next to each other. For most of the people I'd guess the nature of the indeterminate is simply somewhat..indeterminate :) Alternatively we could change blue to gray for the current indeterminate that would take effect everywhere. Wouldn't like to speculate too much here though, this sounds rather like something for designers to have final call on anyways. Generally, we will be occasionally running into situations where KDS migration will cause some visual changes to be talked through. |
With the current implementation of That feature of the clipboard is an intentional UX decision because it allows the users to maintain the folder organization of nodes during the bulk operation. If the user selects a subset of a folder's nodes and the folder itself, then it's indeterminately selected (blue). If the user instead wishes to omit the folder itself from the operation, then it's indeterminately unselected (gray). You can see these in the 'Additional behavior' I outlined in the issue body. The Vuetify library did support this because it's possible from the implementation perspective of the checkbox. I agree users may not immediately know what this means. I don't know that we can provide the functionality we intend, while upholding indeterminate as |
Thanks for elaborating @bjester - I think I can understand better and agree it is important to preserve distinguishing them for bulk selections - otherwise the underlying feature of having choice to preserve/not-preserve would not be communicated very clearly. Can't think of anything else either. It sounds like an advanced operation and I guess people using the clipboard frequently will learn the difference over time. One thing that may help and just a side note at this point, sounds like a good candidate for a nice popup during onboarding tutorial for new users to Studio, shall we ever have that :) Perhaps after it is explored in Kolibri. I imagine it could be handy for more reasons. |
I'm digging into this further to understand very well so that it informs upcoming KDS migration work that I sometimes open issues for. I think that to prevent from regression like this, it'll be always good to gather the most unusual/tricky places in Studio and decide if there is something that needs to be projected to KDS. If yes, then we'd update KDS, and only then proceed to the Studio refactor itself. We probably won't plan for everything that the refactoring process will reveal, but perhaps it will help a bit. |
@MisRob I agree, there's very likely more we can do to make this clearer to the user. I think the hierarchical selection structure limits us in what we can change. So unless we decide to change that design, I think enhancing the UI's explanation of itself should add great value. |
I think that we might be able to hack the expected visual behavior with some changes to how the Basically, KCheckbox will put a check-mark in the box if Seems like we can handle the four states on the Studio side in the short-term if needed, but I suspect that we can do a non-breaking change to KCheckbox. To be clear on the expectations here, we have the following checkbox states which need to be covered:
I think we can handle this without any breaking changes assuming that we don't inadvertently pass |
This will need significant regression testing, but learningequality/kolibri-design-system#744 appears to fix the problem. |
Observed behavior
When a topic or folder has descendants selected, but itself isn't selected, it shows as unselected, with ancestors selected.
Additionally, there's also a minor cosmetic fix for the alignment of the checkbox, which could be fixed along with this issue.
Expected behavior
A topic/folder should be shown as indeterminately unselected when it has descendants selected, but itself isn't selected.
User-facing consequences
The indeterminate states are meant to make all possible selection states clear to the user. While this is inherently complex in its nature, it's the appropriate manner for visualizing each state, without overlap.
Additional behavior
Replicate the behavior that currently exists in production. As this is likely a regression in the checkbox itself, the state management is unlikely the issue, so attention should be focused towards producing the desired states with the checkbox. Since we migrated to using KDS checkboxes, the issue might be the lack of support for the indeterminately unselected state.
Steps to reproduce the issue
Usage Details
unstable
branchThe text was updated successfully, but these errors were encountered: