From b5fdc4d5cfc46f758f05df56347264222b3d974e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tr=C3=A8sAbhi?= <43380238+tresabhi@users.noreply.github.com> Date: Thu, 4 Apr 2024 10:46:48 -0500 Subject: [PATCH] feat: add functionality --- src/app/tools/compare/page.tsx | 107 ++++++++++++++++++++++++++++++++- 1 file changed, 106 insertions(+), 1 deletion(-) diff --git a/src/app/tools/compare/page.tsx b/src/app/tools/compare/page.tsx index ec8b981e5..2f5251d76 100644 --- a/src/app/tools/compare/page.tsx +++ b/src/app/tools/compare/page.tsx @@ -1,5 +1,110 @@ +'use client'; + +import { PlusIcon } from '@radix-ui/react-icons'; +import { Button, Dialog, Flex, Table, Text } from '@radix-ui/themes'; +import { usePathname, useRouter, useSearchParams } from 'next/navigation'; +import { use, useCallback, useState } from 'react'; import PageWrapper from '../../../components/PageWrapper'; +import { tankDefinitions } from '../../../core/blitzkrieg/tankDefinitions'; +import { tankIcon } from '../../../core/blitzkrieg/tankIcon'; +import { TankSearch } from '../tankopedia/components/TankSearch'; export default function Page() { - return lol; + const router = useRouter(); + const pathname = usePathname(); + const searchParams = useSearchParams(); + const tanks = searchParams.get('tanks')?.split(',').map(Number) ?? []; + const awaitedTankDefinitions = use(tankDefinitions); + const [addTankDialogOpen, setAddTankDialogOpen] = useState(false); + + const createQueryString = useCallback( + (name: string, value: string) => { + const params = new URLSearchParams(searchParams.toString()); + params.set(name, value); + + return params.toString(); + }, + [searchParams], + ); + + return ( + + + + + + + + + + + { + tanks.push(tank.id); + router.push( + pathname + + '?' + + createQueryString('tanks', tanks.join(',')), + ); + setAddTankDialogOpen(false); + }} + /> + + + + + + + + + + Statistics + {tanks.map((id) => { + const tank = awaitedTankDefinitions[id]; + + return ( + + + + {tank.name} + + + ); + })} + + + + + + Stat 1 + {tanks.map((id) => { + const tank = awaitedTankDefinitions[id]; + + return {Math.random()}; + })} + + + + Stat 2 + {tanks.map((id) => { + const tank = awaitedTankDefinitions[id]; + + return {Math.random()}; + })} + + + + + ); }