feat: migrated tank search

This commit is contained in:
TrèsAbhi committed 2024-09-17 22:50:34 -05:00
1 parent e241870ece
commit 187230439b
15 files changed
+28 -31

No files matched your search

@@ -3,10 +3,9 @@ import { useStore } from '@nanostores/react';
import { MagnifyingGlassIcon } from '@radix-ui/react-icons';
import { Flex, Spinner, TextField } from '@radix-ui/themes';
import { debounce } from 'lodash-es';
import { useRouter } from 'next/navigation';
import { type KeyboardEventHandler, useCallback, useRef } from 'react';
import { QuickLink } from './QuickLink';
import { $tankFilters } from '../../../stores/tankFilters';
import { QuickLink } from './QuickLink';
import { Sort } from './Sort';
interface SearchBarProps {
@@ -16,7 +15,6 @@ interface SearchBarProps {
export function SearchBar({ topResult, onSelect }: SearchBarProps) {
const tankFilters = useStore($tankFilters);
const router = useRouter();
const input = useRef<HTMLInputElement>(null);
const performSearch = useCallback(
debounce(() => {
@@ -56,7 +54,7 @@ export function SearchBar({ topResult, onSelect }: SearchBarProps) {
if (onSelect) {
onSelect(topResult);
} else {
router.push(`/tools/tankopedia/${topResult.id}`);
window.location.href = `/tools/tankopedia/${topResult.id}`;
}
},
[topResult],
@@ -9,9 +9,8 @@ import {
type TankDefinition,
} from '@blitzkit/core';
import { useStore } from '@nanostores/react';
import { Flex, Text } from '@radix-ui/themes';
import { Flex, Link, Text } from '@radix-ui/themes';
import { assignInlineVars } from '@vanilla-extract/dynamic';
import Link from 'next/link';
import { useMemo } from 'react';
import { resolveReload } from '../../../core/blitzkit/resolveReload';
import { useAwait } from '../../../hooks/useAwait';
@@ -158,7 +157,6 @@ export function TankCard({ tank, onSelect }: TankCardProps) {
<Link
className={styles.link}
href={onSelect ? '#' : `/tools/tankopedia/${tank.id}`}
prefetch={false}
>
<img alt={tank.name} src={tankIcon(tank.id)} className={styles.image} />
@@ -49,15 +49,15 @@ export const TankSearch = memo<TankSearchProps>(
({ compact, onSelect, onSelectAll, ...props }) => {
const exempt = useAdExempt();
const awaitedGameDefinitions = useAwait(gameDefinitions);
console.log(awaitedGameDefinitions);
const awaitedModelDefinitions = useAwait(modelDefinitions);
const awaitedTankDefinitions = useAwait(tankDefinitions);
const awaitedTanksDefinitionsArray = useAwait(tankDefinitionsArray);
const awaitedTankNames = useAwait(tankNames);
const tankFilters = useStore($tankFilters);
const tankopediaSort = useStore($tankopediaSort);
const tanksFiltered = useMemo(() => {
console.log(awaitedTanksDefinitionsArray);
const tanksFiltered = useMemo(() => {
if (tankFilters.search === undefined) {
const filtered = awaitedTanksDefinitionsArray.filter((tank) =>
filterTank(tankFilters, tank),