From 6c4dad675f608a873bb69f4257b66cf32beac7ad Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Dec 2023 16:34:12 +1300 Subject: [PATCH] Switch to case-insensitive tag comparison --- .../pages/basePages/listPage/listPage.jsx | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/client/homebrew/pages/basePages/listPage/listPage.jsx b/client/homebrew/pages/basePages/listPage/listPage.jsx index e37fee8e5..499bbfb5b 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.jsx +++ b/client/homebrew/pages/basePages/listPage/listPage.jsx @@ -207,22 +207,28 @@ const ListPage = createClass({ const testString = _.deburr(this.state.filterString).toLowerCase(); brews = _.filter(brews, (brew)=>{ + // Filter by user entered text const brewStrings = _.deburr([ brew.title, brew.description, brew.tags].join('\n') .toLowerCase()); - return brewStrings.includes(testString); - }); + const filterTextTest = brewStrings.includes(testString); - if(this.state.filterTags.length > 0) { - brews = _.filter(brews, (brew)=>{ - return this.state.filterTags.every((tag)=>{ - return brew.tags?.includes(tag); + // Filter by user selected tags + let filterTagTest = true; + if(this.state.filterTags.length > 0){ + filterTagTest = this.state.filterTags.every((tag)=>{ + if(typeof brew.tags == 'string') return false; + return brew.tags.findIndex((brewTag)=>{ + return brewTag.toLowerCase() == tag.toLowerCase(); + }) >= 0; }); - }); - } + } + + return filterTextTest && filterTagTest; + }); return _.orderBy(brews, (brew)=>{ return this.sortBrewOrder(brew); }, this.state.sortDir); },