feat: hide recent tanks when filters

This commit is contained in:
tresabhi committed 2024-11-12 21:08:45 -06:00
1 parent a40f86f982
commit 19664d55aa
1 file changed
+15 -1
@@ -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 (
<Flex direction="column" gap="2" mt="2" mb="6">