-
Notifications
You must be signed in to change notification settings - Fork 429
feat: add columns resizable options #2935
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
feat: add columns resizable options #2935
Conversation
Resolves: B2BSOLUT-5767
Thanks for opening this pull request! 💯 This is a community-driven project, and we can't do it without your participation. Please check out our contributing guidelines and review the Contributor Checklist if you haven't already, to make sure everything is squared away. CircleCI will take about 10 minutes to run through the same items that are on the Contributor checklist with a pass/fail check below. Please fix any issues that cause CircleCI to fail or ask for clarification--we try, but sometimes the errors can be unclear. |
Thanks for the contribution! Before we can merge this, we need @mmarchett to sign the Salesforce.com Contributor License Agreement. |
I've started an issue and spec for this feature. |
…com/mmarchett/design-system-react into B2BSOLUT-5767-add-columns-resizable
All the column cells have a tab stop now which is great! That should only be the case in action/edit mode however. The DataTable should only have one tab stop for the whole table when in Navigation mode. Now all cells have a tab index when in Navigation mode. The tab events within a cell are broken now. Tab key now takes the user to the next column even if there are multiple tabbable items within a cell. It should only tab to the next column after tabbing through all tabbable items in a cell. See Opportunity Name column on http://localhost:9001/?path=/story/sldsdatatable--interactive-elements when in edit mode. |
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 did a quick first pass of the code and left a few comments. This is looking great! We are getting really close.
Due to the "double header" way that the fixed layout feature is implemented, we will want to set the width of the "second header table column" to the same width on initial resize. It works when the table is scrolled due to events which is great, but isn't sync'd initially when columns are resized when fixedLayout/fixedHeader
is enabled. See below:
Does your usage/UX need non-scrollable tables to be column resizable? After reviewing the examples, I believe it would be best to limit resizing to only fixedLayout/fixedHeader
. This isn't something I realized early on. Does that work for your use case? @mmarchett This PR will make the usage more predictable and limit what we need to support/debug in the future! mmarchett#2
For instance, https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/example doesn't even allow a non-scrollable/basic table.
* Make resizable require keyboardNavigation * Remove non fixed header example * Rename variables in examples * Limit resizable use to fixed layout and header
…ent on table reload. Add unique id for header-cell. Add documentation for resize feature.
Thanks for the feedback, as you advised, now the resize functionality would be available in conjunction with fixedLayout only, as specified at https://react.lightningdesignsystem.com/components/data-tables/ |
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.
This is looking great! UX is good. I left one request for tests.
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.
Looks good!
Congrats on merging your first pull request to Design System React! 🎉 |
Resolves: B2BSOLUT-5767
Fixes #2936
Additional description
Added the functionality to modify the width of the columns in the data-table component.
CONTRIBUTOR checklist (do not remove)
Please complete for every pull request
npm run lint:fix
has been run and linting passes.components/component-docs.json
CI tests pass (npm test
).REVIEWER checklist (do not remove)
components/component-docs.json
tests.Required only if there are markup / UX changes
last-slds-markup-review
inpackage.json
and push.last-accessibility-review
, topackage.json
and push.npm run local-update
within locally cloned site repo to confirm the site will function correctly at the next release.