From 5de1f4563ae6f7c93a65ae982f7773ce5a620658 Mon Sep 17 00:00:00 2001 From: Qstick Date: Sat, 30 May 2020 14:46:51 -0400 Subject: [PATCH] Fixed: Manual Import Movie filter Input losing focus Fixes #4297 Co-Authored-By: Mark McDowall --- frontend/src/Components/Scroller/Scroller.js | 8 +++++++- frontend/src/Components/Table/VirtualTable.js | 6 +++++- .../InteractiveImport/Movie/SelectMovieModalContent.js | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/frontend/src/Components/Scroller/Scroller.js b/frontend/src/Components/Scroller/Scroller.js index 4ae94c78b..603e27cc6 100644 --- a/frontend/src/Components/Scroller/Scroller.js +++ b/frontend/src/Components/Scroller/Scroller.js @@ -17,6 +17,8 @@ class Scroller extends Component { componentDidMount() { const { + scrollDirection, + autoFocus, scrollTop } = this.props; @@ -24,7 +26,9 @@ class Scroller extends Component { this._scroller.scrollTop = scrollTop; } - this._scroller.focus({ preventScroll: true }); + if (autoFocus && scrollDirection !== scrollDirections.NONE) { + this._scroller.focus({ preventScroll: true }); + } } // @@ -73,6 +77,7 @@ class Scroller extends Component { Scroller.propTypes = { className: PropTypes.string, scrollDirection: PropTypes.oneOf(scrollDirections.all).isRequired, + autoFocus: PropTypes.bool.isRequired, autoScroll: PropTypes.bool.isRequired, scrollTop: PropTypes.number, children: PropTypes.node, @@ -82,6 +87,7 @@ Scroller.propTypes = { Scroller.defaultProps = { scrollDirection: scrollDirections.VERTICAL, + autoFocus: true, autoScroll: true, registerScroller: () => {} }; diff --git a/frontend/src/Components/Table/VirtualTable.js b/frontend/src/Components/Table/VirtualTable.js index 18b2bbb78..fa947ec9e 100644 --- a/frontend/src/Components/Table/VirtualTable.js +++ b/frontend/src/Components/Table/VirtualTable.js @@ -95,6 +95,7 @@ class VirtualTable extends Component { className, items, scroller, + focusScroller, header, headerHeight, rowRenderer, @@ -135,6 +136,7 @@ class VirtualTable extends Component { {header}
@@ -179,6 +181,7 @@ VirtualTable.propTypes = { items: PropTypes.arrayOf(PropTypes.object).isRequired, scrollIndex: PropTypes.number, scroller: PropTypes.instanceOf(Element).isRequired, + focusScroller: PropTypes.bool.isRequired, header: PropTypes.node.isRequired, headerHeight: PropTypes.number.isRequired, rowRenderer: PropTypes.func.isRequired @@ -186,7 +189,8 @@ VirtualTable.propTypes = { VirtualTable.defaultProps = { className: styles.tableContainer, - headerHeight: 38 + headerHeight: 38, + focusScroller: true }; export default VirtualTable; diff --git a/frontend/src/InteractiveImport/Movie/SelectMovieModalContent.js b/frontend/src/InteractiveImport/Movie/SelectMovieModalContent.js index d9173f5a8..619f3bffc 100644 --- a/frontend/src/InteractiveImport/Movie/SelectMovieModalContent.js +++ b/frontend/src/InteractiveImport/Movie/SelectMovieModalContent.js @@ -147,6 +147,7 @@ class SelectMovieModalContent extends Component {
{ @@ -159,6 +160,7 @@ class SelectMovieModalContent extends Component { items={suggestions} isSmallScreen={false} scroller={scroller} + focusScroller={false} rowRenderer={this.rowRenderer} /> }