From c00f6e008faf75064cd176d728e55bec7e3ca315 Mon Sep 17 00:00:00 2001 From: Cee Chen Date: Thu, 23 Nov 2023 12:28:35 -0800 Subject: [PATCH] Fix popover/focus trap bug when clicking cell actions and then outside popover --- .../datagrid/body/data_grid_cell_popover.spec.tsx | 12 ++++++++++++ .../datagrid/body/data_grid_cell_popover.tsx | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/components/datagrid/body/data_grid_cell_popover.spec.tsx b/src/components/datagrid/body/data_grid_cell_popover.spec.tsx index 03d0271ffd94..53e5e49982b8 100644 --- a/src/components/datagrid/body/data_grid_cell_popover.spec.tsx +++ b/src/components/datagrid/body/data_grid_cell_popover.spec.tsx @@ -155,6 +155,18 @@ describe('EuiDataGridCellPopover', () => { cy.get('[data-test-subj="cellActionB"]').first().realClick(); cy.get('[data-test-subj="euiDataGridExpansionPopover"]').should('exist'); + + // Clicking the cell actions outside the popover should not have disabled the focus trap + cy.repeatRealPress('Tab', 3); + cy.focused().should( + 'have.attr', + 'data-test-subj', + 'euiDataGridExpansionPopover' + ); + cy.get('body').realClick({ position: 'bottomRight' }); + cy.get('[data-test-subj="euiDataGridExpansionPopover"]').should( + 'not.exist' + ); }); it('allows consumers to use setCellPopoverProps, passed from renderCellPopover, to customize popover props', () => { diff --git a/src/components/datagrid/body/data_grid_cell_popover.tsx b/src/components/datagrid/body/data_grid_cell_popover.tsx index c02f771fa5e1..5deee06719d9 100644 --- a/src/components/datagrid/body/data_grid_cell_popover.tsx +++ b/src/components/datagrid/body/data_grid_cell_popover.tsx @@ -107,7 +107,7 @@ export const useCellPopover = (): { anchorPosition={popoverAnchorPosition} repositionToCrossAxis={false} {...cellPopoverProps} - focusTrapProps={{ onClickOutside }} + focusTrapProps={{ onClickOutside, clickOutsideDisables: false }} panelProps={{ 'data-test-subj': 'euiDataGridExpansionPopover', ...(cellPopoverProps.panelProps || {}),