From 19664d55aaee03c032439fbdd09bcf5ea5ec25dc Mon Sep 17 00:00:00 2001 From: tresabhi <43380238+tresabhi@users.noreply.github.com> Date: Tue, 12 Nov 2024 21:08:45 -0600 Subject: [PATCH] feat: hide recent tanks when filters --- .../TankSearch/components/RecentlyViewed.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/website/src/components/TankSearch/components/RecentlyViewed.tsx b/packages/website/src/components/TankSearch/components/RecentlyViewed.tsx index 22bdb3aec..d9984e3e7 100644 --- a/packages/website/src/components/TankSearch/components/RecentlyViewed.tsx +++ b/packages/website/src/components/TankSearch/components/RecentlyViewed.tsx @@ -1,5 +1,8 @@ import { fetchTankDefinitions } from '@blitzkit/core'; +import { useStore } from '@nanostores/react'; import { Flex, Separator, Text } from '@radix-ui/themes'; +import { isEqual } from 'lodash-es'; +import { $tankFilters, initialTankFilters } from '../../../stores/tankFilters'; import { TankopediaPersistent } from '../../../stores/tankopediaPersistent'; import { TankCard } from './TankCard'; import { TankCardWrapper } from './TankCardWrapper'; @@ -8,10 +11,21 @@ const tankDefinitions = await fetchTankDefinitions(); export function RecentlyViewed() { const tankopediaPersistentStore = TankopediaPersistent.useStore(); + const filters = useStore($tankFilters); // non-reactive because it is a little weird that it updates instantly even before the page loads const recentlyViewed = tankopediaPersistentStore.getState().recentlyViewed; - if (recentlyViewed.length === 0) return null; + if ( + recentlyViewed.length === 0 || + Object.entries(filters).some(([key, value]) => { + return !isEqual( + value, + initialTankFilters[key as keyof typeof initialTankFilters], + ); + }) + ) { + return null; + } return (