From bda98c8f064a64ceadfd3ca06d2cb52f21bff0c5 Mon Sep 17 00:00:00 2001 From: plouc Date: Sun, 9 Jan 2022 07:34:17 +0900 Subject: [PATCH] feat(website): fix components explorer filtering --- .../components/components/explorer/ComponentsGrid.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/website/src/components/components/explorer/ComponentsGrid.tsx b/website/src/components/components/explorer/ComponentsGrid.tsx index 988cbbc555..02f927dba7 100644 --- a/website/src/components/components/explorer/ComponentsGrid.tsx +++ b/website/src/components/components/explorer/ComponentsGrid.tsx @@ -3,7 +3,7 @@ import styled from 'styled-components' import { ComponentsGridItem } from './ComponentsGridItem' import * as nav from '../../../data/nav' import media from '../../../theming/mediaQueries' -import { ChartNavData } from '../../../types' +import { ChartNavData, Flavor } from '../../../types' type FilterFunction = (item: ChartNavData) => boolean @@ -13,9 +13,11 @@ const getFilterFunction = (term?: string | null, filter?: string | null): Filter predicates.push(({ name }) => name.toLowerCase().includes(term.toLowerCase())) } if (filter) { - // @ts-ignore - predicates.push(({ flavors }) => flavors[filter.toLowerCase()] === true) - predicates.push(({ tags }) => tags.includes(filter)) + const normalizedFilter = filter.toLowerCase() + predicates.push(({ tags, flavors }) => { + if (tags.includes(normalizedFilter)) return true + return !!(normalizedFilter in flavors && flavors[normalizedFilter as Flavor]) + }) } return item => predicates.every(predicate => predicate(item))