From 1c9c515238377b590f3036e658821c2d8045d6e6 Mon Sep 17 00:00:00 2001 From: aditya matukumalli Date: Tue, 24 Aug 2021 16:09:06 -0400 Subject: [PATCH] Scope focusable row to the scroll container, refs STCOM-870, ERM-815 (#1603) --- CHANGELOG.md | 1 + lib/MultiColumnList/MCLRenderer.js | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fe5e1325..4c8909f14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ * `` add new `loading` and `loadingMessage` props to display while loading options. Refs STCOM-858. * Applied maxheight to ``. Fixes STCOM-848 * Fix `` `inputRef` prop not working. Refs STCOM-869 +* Scope the focusable row to the scroll container. Refs STCOM-870 ## [9.2.0](https://github.com/folio-org/stripes-components/tree/v9.2.0) (2021-06-08) [Full Changelog](https://github.com/folio-org/stripes-components/compare/v9.1.0...v9.2.0) diff --git a/lib/MultiColumnList/MCLRenderer.js b/lib/MultiColumnList/MCLRenderer.js index 7354a33a6..6a9302562 100644 --- a/lib/MultiColumnList/MCLRenderer.js +++ b/lib/MultiColumnList/MCLRenderer.js @@ -521,7 +521,9 @@ class MCLRenderer extends React.Component { } } else if (pagingType === 'click' || pagingType === 'prev-next') { if (this.focusTargetIndex) { - const target = document.querySelector(`[data-row-index="row-${this.focusTargetIndex}"]`); + const { current } = this.scrollContainer; + const target = current && current.querySelector(`[data-row-index="row-${this.focusTargetIndex}"]`); + if (target) { const inner = getNextFocusable(target, true, true); const elem = inner || target; @@ -567,7 +569,7 @@ class MCLRenderer extends React.Component { } if (contentData.length !== 0 && - !virtualize) { + !virtualize) { this.scrollToItemToView(); } } @@ -936,7 +938,7 @@ class MCLRenderer extends React.Component { onClick, onKeyDown, 'style': defaultStyle, - 'data-row-inner' : rowIndex, + 'data-row-inner': rowIndex, }; const cellObject = this.renderCells(rowIndex, this.getRowData(rowIndex)); @@ -1117,7 +1119,7 @@ class MCLRenderer extends React.Component { shouldPosition={!staticBody} rowIndex={endIndex} > - { ({ position }) => { + {({ position }) => { return (
- { headerInner } + {headerInner}
); @@ -1754,7 +1756,7 @@ class MCLRenderer extends React.Component { tabIndex="0" // eslint-disable-line jsx-a11y/no-noninteractive-tabindex ref={this.container} > - { typeof isEmptyMessage === 'string' ? {isEmptyMessage} : isEmptyMessage } + {typeof isEmptyMessage === 'string' ? {isEmptyMessage} : isEmptyMessage} ); }