diff --git a/src/app/tools/tankopedia/page.tsx b/src/app/tools/tankopedia/page.tsx index f0969ca15..4436040f6 100644 --- a/src/app/tools/tankopedia/page.tsx +++ b/src/app/tools/tankopedia/page.tsx @@ -1,5 +1,14 @@ -import { Flex, Grid, Heading, Separator, Text } from '@radix-ui/themes'; -import { range } from 'lodash'; +import { + Button, + Flex, + Grid, + Heading, + IconButton, + RadioGroup, + Separator, + Text, +} from '@radix-ui/themes'; +import { range, times } from 'lodash'; import { use } from 'react'; import { classIcons } from '../../../components/ClassIcon'; import { Link } from '../../../components/Link'; @@ -16,154 +25,251 @@ import { tankIcon } from '../../../core/blitzkit/tankIcon'; import strings from '../../../lang/en-US.json'; import { treeTypeOrder } from './components/TankSearch/constants'; +// TODO: KEYS + export default function Page() { const awaitedTanksDefinitionsArray = use(tanksDefinitionsArray); const awaitedNations = use(NATIONS); return ( - - {/* - + + + + + Class + + + + {times(5, (index) => { + const tier = (index + 1) as Tier; - - - - */} + return ( + + ); + })} + + + {times(5, (index) => { + const tier = (index + 6) as Tier; - - {range(10, 0).map((tierUntyped) => { - const tier = tierUntyped as Tier; - const tierTanks = awaitedTanksDefinitionsArray.filter( - (tank) => tank.tier === tier, - ); + return ( + + ); + })} + + - return ( - - - Tier {TIER_ROMAN_NUMERALS[tier]} - + + Type + + + {TANK_CLASSES.map((tankClass) => { + const Icon = classIcons[tankClass]; - - {awaitedNations.map((nation, nationIndex) => { - const nationTanks = tierTanks - .filter((tank) => tank.nation === nation) - .sort( - (a, b) => - treeTypeOrder.indexOf(a.treeType) - - treeTypeOrder.indexOf(b.treeType), - ) - .sort( - (a, b) => - TANK_CLASSES.indexOf(a.class) - - TANK_CLASSES.indexOf(b.class), - ); + return ( + + + + ); + })} + - if (nationTanks.length === 0) return null; + + Nation + + + {awaitedNations.map((nation) => ( + + {/* TODO: trim icons */} + + + ))} + - return ( - - - + + Test tanks + + + Include + Exclude + Only + + - - { - strings.common.nations[ - nation as keyof typeof strings.common.nations - ] - } - + + {range(10, 0).map((tierUntyped) => { + const tier = tierUntyped as Tier; + const tierTanks = awaitedTanksDefinitionsArray.filter( + (tank) => tank.tier === tier, + ); - - + return ( + + + Tier {TIER_ROMAN_NUMERALS[tier]} + - - {nationTanks.map((tank) => { - const Icon = classIcons[tank.class]; + + {awaitedNations.map((nation, nationIndex) => { + const nationTanks = tierTanks + .filter((tank) => tank.nation === nation) + .sort( + (a, b) => + treeTypeOrder.indexOf(a.treeType) - + treeTypeOrder.indexOf(b.treeType), + ) + .sort( + (a, b) => + TANK_CLASSES.indexOf(a.class) - + TANK_CLASSES.indexOf(b.class), + ); - return ( - - {tank.name} + + + + + { + strings.common.nations[ + nation as keyof typeof strings.common.nations + ] + } + + + + + + + {nationTanks.map((tank) => { + const Icon = classIcons[tank.class]; + + return ( + - - - - - {tank.name} - - - - ); - })} - - - ); - })} + + + {tank.name} + + + + ); + })} + + + ); + })} + - - ); - })} + ); + })} + );