-
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
HLD: Handling table cell state when scrolling, cell custom element changes #1052
Conversation
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
@rajsite updated the HLD with the proposal we talked about. I also did some prototyping around the action menu to come up with some code to handle closing those, so updated that part of the HLD. I also moved all of the text selection info to "Alternative Implementations" since based on previous discussions, we're not planning on doing anything for text selection. I also have a Storybook of my prototype if anyone wants to dig into the implementation details more (I have some |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't have an opinion on option 1 vs 2 but let me know if you need help making that decision.
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/table-columns-hld.md
Outdated
Show resolved
Hide resolved
@rajsite @atmgrifter00 @jattasNI @mollykreis this should be ready to re-review now, with the custom element changes we discussed. There'll probably need some more changes needed to naming of things like |
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/table-columns-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/table-columns-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/table-columns-hld.md
Outdated
Show resolved
Hide resolved
@rajsite addressed the open issues on this HLD. Keeping it open for now since you haven't approved it yet / in case you want to take a look again. |
packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md
Outdated
Show resolved
Hide resolved
packages/nimble-components/src/table/specs/table-columns-hld.md
Outdated
Show resolved
Hide resolved
β¦olling-hld.md Co-authored-by: mollykreis <[email protected]>
Co-authored-by: mollykreis <[email protected]>
# Pull Request ## π€¨ Rationale Fixes #997 ## π©βπ» Implementation Implementation is similar to what was outlined in the the [HLD](https://github.com/ni/nimble/blob/main/packages/nimble-components/src/table/specs/cell-state-when-scrolling-hld.md) ([PR](#1052)): - Add a `TableCellView<TCellRecord, TColumnConfig>` class. TableCellView instances will be used in `TableCell`s, instead of the old approach (column-provided cellTemplate and cellStyles). - Add `cellViewTag` property to `TableColumn` (links the column with the associated `TableCellView` type) - `TableCellView` defines a `focusedRecycleCallback()` method which is a no-op by default. If a cell view contains a focusable element, and a cell is focused, and then a scroll (row recycle) occurs, this gives the cell view an opportunity to commit/blur/etc. - We don't yet have a column type exercising this, but there's a new autotest for this code path. - If a cell action menu is open when a scroll/ row recycle occurs, the action menu is closed (via the associated menu button). ## π§ͺ Testing - Updated existing autotests - Added new tests for `focusedRecycleCallback` and the code that closes action menus on scroll - Manually tested table in Storybook + Angular + Blazor example apps ## β Checklist - [x] I have updated the project documentation to reflect my changes or determined no changes are needed.
Pull Request
π€¨ Rationale
HLD for #997
Note: This HLD/PR also has some new proposed changes dealing with using custom elements provided by the column plugin authors in table cells.
π©βπ» Implementation
N/A
π§ͺ Testing
Research done locally in Chrome, Firefox, and Safari.
See prototypes linked in the HLD.
β Checklist