diff --git a/src/components/library/library.jsx b/src/components/library/library.jsx
index 0a3e3b5252a5378580368d39d14e1dac41da5924..c58d3608c94b7f74ca2573c0857e18267f7fe88a 100644
--- a/src/components/library/library.jsx
+++ b/src/components/library/library.jsx
@@ -43,6 +43,12 @@ class LibraryComponent extends React.Component {
             selectedTag: ALL_TAG_TITLE.toLowerCase()
         };
     }
+    componentDidUpdate (prevProps, prevState) {
+        if (prevState.filterQuery !== this.state.filterQuery ||
+            prevState.selectedTag !== this.state.selectedTag) {
+            this.scrollToTop();
+        }
+    }
     handleBlur (id) {
         this.handleMouseLeave(id);
     }
@@ -58,7 +64,6 @@ class LibraryComponent extends React.Component {
             filterQuery: '',
             selectedTag: tag.toLowerCase()
         });
-        this.scrollToTop();
     }
     handleMouseEnter (id) {
         if (this.props.onItemMouseEnter) this.props.onItemMouseEnter(this.getFilteredData()[id]);
@@ -71,7 +76,6 @@ class LibraryComponent extends React.Component {
             filterQuery: event.target.value,
             selectedTag: ALL_TAG_TITLE.toLowerCase()
         });
-        this.scrollToTop();
     }
     handleFilterClear () {
         this.setState({filterQuery: ''});