From 5b668f7fb0aaff2ba255733bd97d91005eaf796b Mon Sep 17 00:00:00 2001 From: "Umang G. Patel" <23169768+robonetphy@users.noreply.github.com> Date: Wed, 12 Oct 2022 20:29:26 +0530 Subject: [PATCH] common search function added --- src/frontend/js/classes/sidebar-filter.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/frontend/js/classes/sidebar-filter.js b/src/frontend/js/classes/sidebar-filter.js index b233a6e..436f5f0 100644 --- a/src/frontend/js/classes/sidebar-filter.js +++ b/src/frontend/js/classes/sidebar-filter.js @@ -285,6 +285,17 @@ export default class SidebarFilter { } } + /** + * Check if content contains search text. + * + * @param {string} content - content to be searched. + * @param {string} searchValue - Search value. + * @returns {boolean} - true if content contains search value. + */ + isValueMatched(content, searchValue) { + return content.toLowerCase().indexOf(searchValue.toLowerCase()) !== -1; + } + /** * filter sidebar items. * @@ -297,8 +308,8 @@ export default class SidebarFilter { const sectionList = section.querySelector('.' + SidebarFilter.CSS.sectionList); // check if section title matches. - const isTitleMatch = sectionTitle.innerText.trim().toLowerCase() - .indexOf(searchValue.toLowerCase()) !== -1; + const isTitleMatch = this.isValueMatched(sectionTitle.textContent, searchValue); + const matchResults = []; // match with section items. let isSingleItemMatch = false; @@ -307,8 +318,7 @@ export default class SidebarFilter { const sectionListItems = sectionList.querySelectorAll('.' + SidebarFilter.CSS.sectionListItem); sectionListItems.forEach(item => { - if (item.innerText.trim().toLowerCase() - .indexOf(searchValue.toLowerCase()) !== -1) { + if (this.isValueMatched(item.textContent, searchValue)) { // remove hiden class from item. item.parentElement.classList.remove(SidebarFilter.CSS.sectionListItemWrapperHidden); // add item to search results.