-
Notifications
You must be signed in to change notification settings - Fork 841
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
[EuiDataGrid] Allow consuming applications to control various internal state via ref
#5590
Commits on Jan 11, 2022
-
[EuiDataGrid] Set up
ref
that exposes focus/popover internal APIs (#……5499) * Set up types * Set up forwardRef * Add setFocusedCell API to returned grid ref obj * Add colIndex prop to cell actions - so that cell actions that trigger modals or flyouts can re-focus into the correct cell using the new ref API * Add documentation + example + props * Add changelog * [PR feedback] Types Co-authored-by: Chandler Prall <chandler.prall@gmail.com> * [PR feedback] Clean up unit test * [Rebase] Tweak useImperativeHandle location - Moving it below fullscreen logic, as we're oging to expose setIsFullScreen as an API shortly Co-authored-by: Chandler Prall <chandler.prall@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 59461c7 - Browse repository at this point
Copy the full SHA 59461c7View commit details -
Configuration menu - View commit details
-
Copy full SHA for d96203d - Browse repository at this point
Copy the full SHA d96203dView commit details
Commits on Jan 12, 2022
-
[EuiDataGrid] Add
setIsFullScreen
to ref API (#5531)* Expose `setIsFullScreen` to ref API * Update documentation/examples
Constance authoredJan 12, 2022 Configuration menu - View commit details
-
Copy full SHA for e5def1c - Browse repository at this point
Copy the full SHA e5def1cView commit details
Commits on Jan 14, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 5638646 - Browse repository at this point
Copy the full SHA 5638646View commit details
Commits on Jan 18, 2022
-
Configuration menu - View commit details
-
Copy full SHA for ffc93f1 - Browse repository at this point
Copy the full SHA ffc93f1View commit details
Commits on Jan 20, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 18cb489 - Browse repository at this point
Copy the full SHA 18cb489View commit details
Commits on Jan 26, 2022
-
[EuiDataGrid] Add
openCellPopover
andcloseCellPopover
to ref APIs (#5550) * [setup] Update testCustomHook to expose fn that allows accessing most recent state/value - without this callback, the initial returned hook values will be stale/not properly return most recent values - see next commit for example usage within useCellPopover * Set up cell popover context - set up initial open/location state, + open/close popover APIs returned to consumers - improve auto props documentation - remove EuiDataGridCellLocation in favor of specifying rowIndex and colIndex (it's less DRY but it's easier for devs to not have to look up EuiDataGridCellLocation from our docs) * Pass down popoverContext to cells as a prop - I'm not using context here because we're already using this.context for focus, and unfortunately class components can only initialize one context at time using `static contextType` (see https://reactjs.org/docs/context.html#classcontexttype) * Remove internal cell popoverIsOpen state - This should now be handled by the overarching context state, and the cell should simply react to it or update it (similar to how focusContext works) + add new var for hasCellButtons + add unit tests for isFocusedCell alongside isPopoverOpen (since both methods perform similar functions) * Update cell popovers to set the popover anchor & content - content is TODO, will likely be easier to compare when cleaning it up/moving it all at once * Refactor EuiDataGridCellPopover - It should no longer exist as a reusable component that belongs to every single cell, but instead as a single popover that exists at the top grid level and moves from cell to cell - I cleaned and split up the JSX for the popover (e.g. moving popover actions to data_grid_cell_buttons, where it feels like it belongs more) and think it's significantly more DRY now - note the entire `anchorContent` branch removed from EuiDataGridCell that is no longer necessary - Note that due to this change, we now have to mock EuiWrappingPopover in EuiDataGrid tests, as we see failures otherwise * [bugfix] Handle cells with open popover being scrolled out of view - this is the same behavior as in prod - causes weird DOM issues if we don't close the cell popover automatically * [bugfix] Workaround for popover DOM stuttering issues * [enhancement] Account for openCellPopover being called on cells out of view + write bonus Cypress test for useScroll's focus effect now that we have access to the imperative ref * Update documentation example + remove code snippet - it was starting to get redundant with the API bullet points, and is already available as tab if needed + fix control button widths * [PR feedback] Be more specific about useImperativeHandle dependencies + add a few explanatory comments * [PR feedback] Rename openCellLocation to cellLocation - to make it sound less like a verb/method * [PR feedback] Ignore edge case of `openCellPopover` being called on an `isExpandable: false` cell
Constance authoredJan 26, 2022 Configuration menu - View commit details
-
Copy full SHA for f8a25bc - Browse repository at this point
Copy the full SHA f8a25bcView commit details
Commits on Jan 27, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 0a94221 - Browse repository at this point
Copy the full SHA 0a94221View commit details
Commits on Feb 1, 2022
-
[EuiDataGrid] Handle exposed ref APIs potentially pointing to invalid…
…, off-page, or out of view cells (#5572) * Enable sorting + targeting row indices outside of the current page - to test handling the exposed APIs when dealing with sorted/paginated data * Switch data grid example to Typescript - to test type issues during consumer usage + @ts-ignore faker complaints * Fix cell expansion buttons on paginated pages not working correctly * Attempt to more clearly document `rowIndex`s that are actually `visibleRowIndex`s * [setup] Move imperative handler setup to its own util file - this will let us set up ref-specific helpers & add more comment context without bloating the main file * Add catch/check for cell locations that do not exist in the current grid * Add getVisibleRowIndex helper - Converts the `rowIndex` from the consumer to a `visibleRowIndex` that our internal state can use - Account for sorted grid by finding the inversed index of the `sortedRowMap` - To make this easier, I converted soredRowMap to an array (since it's already only uses numbers for both keys and values), since arrays have a handy .findIndex method - Handles automatically paginating the grid if the targeted cell is on a different page * Replace grid ref Jest tests with more complete Cypress tests * Update documentation with new behavior * [PR feedback] Rename fns to indicate multiple concerns - having a side effect in a getter feels bad, so change that to a `find` - rename use hook to indicate sorting and pagination concerns
Constance authoredFeb 1, 2022 Configuration menu - View commit details
-
Copy full SHA for a31880b - Browse repository at this point
Copy the full SHA a31880bView commit details -
Configuration menu - View commit details
-
Copy full SHA for ee7e2a9 - Browse repository at this point
Copy the full SHA ee7e2a9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 27b69db - Browse repository at this point
Copy the full SHA 27b69dbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 36201c6 - Browse repository at this point
Copy the full SHA 36201c6View commit details
Commits on Feb 2, 2022
-
Configuration menu - View commit details
-
Copy full SHA for a06db0f - Browse repository at this point
Copy the full SHA a06db0fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 938e2d8 - Browse repository at this point
Copy the full SHA 938e2d8View commit details -
Fix colIndex to be available in renderCellValue as well as cell actions
- primarily for use within trailing/leading cells and custom actions - see 1609e45
Configuration menu - View commit details
-
Copy full SHA for 2056498 - Browse repository at this point
Copy the full SHA 2056498View commit details -
Configuration menu - View commit details
-
Copy full SHA for f65cfda - Browse repository at this point
Copy the full SHA f65cfdaView commit details -
Configuration menu - View commit details
-
Copy full SHA for fbc2114 - Browse repository at this point
Copy the full SHA fbc2114View commit details