Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 20 additions & 16 deletions packages/kbn-dom-drag-drop/src/draggable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -345,20 +345,7 @@ const DraggableImpl = memo(function DraggableImpl({
hoveredDropTarget.dropType !== 'reorder';

return (
<div
className={classNames(className, 'domDraggable', {
'domDraggable_active--move': draggedItemProps && dragType === 'move' && !keyboardMode,
'domDraggable_dragover_keyboard--move': shouldShowGhostImageInstead,
'domDraggable_active--copy': draggedItemProps && dragType === 'copy' && !keyboardMode,
'domDraggable_dragover_keyboard--copy':
keyboardMode && draggedItemProps && hoveredDropTarget,
})}
data-test-subj={dataTestSubj || `${dataTestSubjPrefix}_domDraggable_${value.humanData.label}`}
draggable
onDragEnd={dragEnd}
onDragStart={dragStart}
onMouseDown={removeSelection}
>
<>
<EuiScreenReaderOnly showOnFocus>
<button
aria-label={value.humanData.label}
Expand Down Expand Up @@ -402,8 +389,25 @@ const DraggableImpl = memo(function DraggableImpl({
onKeyUp={modifierHandlers.onKeyUp}
/>
</EuiScreenReaderOnly>
{children}
</div>
<div
className={classNames(className, 'domDraggable', {
'domDraggable_active--move': draggedItemProps && dragType === 'move' && !keyboardMode,
'domDraggable_dragover_keyboard--move': shouldShowGhostImageInstead,
'domDraggable_active--copy': draggedItemProps && dragType === 'copy' && !keyboardMode,
'domDraggable_dragover_keyboard--copy':
keyboardMode && draggedItemProps && hoveredDropTarget,
})}
data-test-subj={
dataTestSubj || `${dataTestSubjPrefix}_domDraggable_${value.humanData.label}`
}
draggable
onDragEnd={dragEnd}
onDragStart={dragStart}
onMouseDown={removeSelection}
>
{children}
</div>
</>
);
});

Expand Down
2 changes: 1 addition & 1 deletion test/functional/page_objects/discover_page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -809,7 +809,7 @@ export class DiscoverPageObject extends FtrService {
* */
public async dragFieldWithKeyboardToTable(fieldName: string) {
const field = await this.find.byCssSelector(
`[data-test-subj="dscFieldListPanelField-${fieldName}"] [data-test-subj="domDragDrop-keyboardHandler"]`
`[data-attr-field="${fieldName}"] [data-test-subj="domDragDrop-keyboardHandler"]`
);
await field.focus();
await this.retry.try(async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ export function InnerFieldItem(props: FieldItemProps) {
}, [dataViewField, filters, hideDetails, indexPattern, query, services]);

return (
<li>
<li data-attr-field={field.name}>
<FieldPopover
isOpen={infoIsOpen}
closePopover={closePopover}
Expand Down
20 changes: 14 additions & 6 deletions x-pack/test/functional/page_objects/lens_page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont
metaKey?: 'shift' | 'alt' | 'ctrl'
) {
const field = await find.byCssSelector(
`[data-test-subj="lnsFieldListPanelField-${fieldName}"] [data-test-subj="lnsDragDrop-keyboardHandler"]`
`[data-attr-field="${fieldName}"] [data-test-subj="lnsDragDrop-keyboardHandler"]`
);
await field.focus();
await retry.try(async () => {
Expand Down Expand Up @@ -432,17 +432,21 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont
metaKey?: 'shift' | 'alt' | 'ctrl'
) {
const elements = await find.allByCssSelector(
`[data-test-subj="${group}"] [data-test-subj="lnsDragDrop-keyboardHandler"]`
`[data-test-subj="${group}"] [data-test-subj="lnsDragDrop-keyboardHandler"]`
);
const el = elements[index];
await el.focus();
await browser.pressKeys(browser.keys.ENTER);
for (let i = 0; i < steps; i++) {
// This needs to be slowed down to avoid flakiness
await common.sleep(200);
await browser.pressKeys(reverse ? browser.keys.LEFT : browser.keys.RIGHT);
}
if (metaKey) {
await this.pressMetaKey(metaKey);
}

await common.sleep(200);
await browser.pressKeys(browser.keys.ENTER);

await this.waitForLensDragDropToFinish();
Expand All @@ -464,8 +468,12 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont
await el.focus();
await browser.pressKeys(browser.keys.ENTER);
for (let i = 0; i < steps; i++) {
// This needs to be slowed down to avoid flakiness
await common.sleep(200);
await browser.pressKeys(reverse ? browser.keys.ARROW_UP : browser.keys.ARROW_DOWN);
}

await common.sleep(200);
await browser.pressKeys(browser.keys.ENTER);

await this.waitForLensDragDropToFinish();
Expand Down Expand Up @@ -1528,10 +1536,10 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont
*/
async assertFocusedField(name: string) {
const input = await find.activeElement();
const fieldAncestor = await input.findByXpath('./../..');
const focusedElementText = await fieldAncestor.getVisibleText();
const dataTestSubj = await fieldAncestor.getAttribute('data-test-subj');
const fieldPopover = await input.findByXpath('./..');
const focusedElementText = await fieldPopover.getVisibleText();
expect(focusedElementText).to.eql(name);
const dataTestSubj = await fieldPopover.getAttribute('data-test-subj');
expect(dataTestSubj).to.eql('lnsFieldListPanelField');
},

Expand All @@ -1542,7 +1550,7 @@ export function LensPageProvider({ getService, getPageObjects }: FtrProviderCont
*/
async assertFocusedDimension(name: string) {
const input = await find.activeElement();
const fieldAncestor = await input.findByXpath('./../../..');
const fieldAncestor = await input.findByXpath('./../..');
const focusedElementText = await fieldAncestor.getVisibleText();
expect(focusedElementText).to.eql(name);
},
Expand Down