-
Notifications
You must be signed in to change notification settings - Fork 8
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
Refactor combobox and select for readability, code sharing, and API consistency #1948
Comments
Ideally, as part of the work to re-align the |
# Pull Request ## 🤨 Rationale [AzDO bug 'Nimble combo box | Issue in showing list options'](https://ni.visualstudio.com/DevCentral/_workitems/edit/2687002) ## 👩💻 Implementation Simple reversion of problem code. I've also created a [tech debt item](#1948) to track the work needed to ultimately re-align the `Combobox` and `Select` implementations. ## 🧪 Testing Just removing the related test. ## ✅ Checklist <!--- Review the list and put an x in the boxes that apply or ~~strike through~~ around items that don't (along with an explanation). --> - [ ] I have updated the project documentation to reflect my changes or determined no changes are needed.
# Pull Request ## 🤨 Rationale - #1948 As part of the effort to bring the `Combobox` implementation in alignment with the `Select`, namely with how we handle controlling the visibility of the options in the dropdown, as well as the need to register options as part of the `connectedCallback` hook, it makes sense to fork the FAST `Combobox` implementation into our own, as we did with the `Select`, to make it more clear what is happening within our own implementation for the various new behaviors we require. ## 👩💻 Implementation Essentially bringing over the current `Combobox` implementation from the FAST `archives/fast-element1` branch into our own. Copied the FAST `FormAssociatedCombobox` that our `Combobox` now extends. ## 🧪 Testing Ran existing unit tests. Manual testing. Verified that our existing tests still replicate all of the tests currently in the FAST `archives/fast-element1` repo. ## ✅ Checklist <!--- Review the list and put an x in the boxes that apply or ~~strike through~~ around items that don't (along with an explanation). --> - [ ] I have updated the project documentation to reflect my changes or determined no changes are needed. --------- Co-authored-by: Milan Raj <rajsite@users.noreply.github.com>
@atmgrifter00 we are trying to figure out how to prioritize this tech debt but I think it contains several issues that might have differing priorities. Could you take a pass at listing those and bucketing them into separate issues if we think we should fix them separately? Brainstormed possible issues with Milan:
|
Here's some additional tech and/or architecture debt that might be covered by this.
Re-adding the triage tag to trigger a discussion about whether these should be separate issues and what their priority is. Hopefully we can prioritize at least some of it because we had multiple instances of select changes unexpectedly breaking client apps and needing to be reverted and we believe these issues contributed to that happening. |
@atmgrifter00 and the team agreed that he'll work on these issues this cycle and come up with a recommendation of how to split up the work once he's done some initial research. This will be be prioritized after the first 1 or 2 SLE combobox -> select migrations. |
Also need to consider dynamic options equivalents for combobox (i.e. combobox analog to select's filter-mode manual) |
With Meyer's help I repurposed this issue to be the grab-bag tech debt issue and linked to all the sub-tasks that might be part of it. |
Another item I'd like to see in the alignment design (and might be a bigger set of trade-offs to discuss). It would be "ideal" to have some technical outcomes:
|
🧹 Tech Debt
After recent work on these components we feel that the codebase isn't as easy to work in as we would like and there are opportunities to improve API consistency. We should focus on improving this. As a side effect (but not the primary goal) this could also include:
Tasks
hidden
state of options #1902Combobox
implementation with theSelect
resulted in a bug in Angular, where the options would ultimately remain hidden upon a reload of the DOM after they had been filtered out. The cause of this seems rooted in the newregisterOption
implementation, but it's unclear at the moment exactly why this is resulting in the new behavior.The text was updated successfully, but these errors were encountered: