feat: ads :(

This commit is contained in:
TrèsAbhi committed 2024-06-25 19:58:29 -05:00
1 parent d6caeabe68
commit 7cc086b999
3 files changed
+17 -7

No files matched your search

@@ -5,6 +5,7 @@ export function TankCardWrapper(props: GridProps) {
<Grid <Grid
py="4" py="4"
columns="repeat(auto-fill, minmax(100px, 1fr))" columns="repeat(auto-fill, minmax(100px, 1fr))"
flow="dense"
gap="2" gap="2"
gapY="6" gapY="6"
{...props} {...props}
@@ -1,7 +1,8 @@
import { Callout, Flex, Link, Text } from '@radix-ui/themes'; import { Callout, Flex, FlexProps, Link, Text } from '@radix-ui/themes';
import { go } from 'fuzzysort'; import { go } from 'fuzzysort';
import { times } from 'lodash'; import { times } from 'lodash';
import { memo, use, useMemo } from 'react'; import { memo, use, useMemo } from 'react';
import { AdMidSectionResponsive } from '../../../../../components/AdMidSectionResponsive';
import { ExperimentIcon } from '../../../../../components/ExperimentIcon'; import { ExperimentIcon } from '../../../../../components/ExperimentIcon';
import { TANK_CLASSES } from '../../../../../components/Tanks/components/Item/constants'; import { TANK_CLASSES } from '../../../../../components/Tanks/components/Item/constants';
import { resolveNearPenetration } from '../../../../../core/blitz/resolveNearPenetration'; import { resolveNearPenetration } from '../../../../../core/blitz/resolveNearPenetration';
@@ -28,14 +29,14 @@ import { TankCard } from '../TankCard';
import { TankCardWrapper } from '../TankCardWrapper'; import { TankCardWrapper } from '../TankCardWrapper';
import { treeTypeOrder } from './constants'; import { treeTypeOrder } from './constants';
interface TankSearchProps { type TankSearchProps = FlexProps & {
compact?: boolean; compact?: boolean;
onSelect?: (tank: TankDefinition) => void; onSelect?: (tank: TankDefinition) => void;
onSelectAll?: (tanks: TankDefinition[]) => void; onSelectAll?: (tanks: TankDefinition[]) => void;
} };
export const TankSearch = memo<TankSearchProps>( export const TankSearch = memo<TankSearchProps>(
({ compact, onSelect, onSelectAll }) => { ({ compact, onSelect, onSelectAll, ...props }) => {
const awaitedGameDefinitions = use(gameDefinitions); const awaitedGameDefinitions = use(gameDefinitions);
const awaitedModelDefinitions = use(modelDefinitions); const awaitedModelDefinitions = use(modelDefinitions);
const awaitedTankDefinitions = use(tankDefinitions); const awaitedTankDefinitions = use(tankDefinitions);
@@ -52,6 +53,7 @@ export const TankSearch = memo<TankSearchProps>(
switch (filters.sort.by) { switch (filters.sort.by) {
case 'meta.none': case 'meta.none':
sorted = filtered sorted = filtered
.sort((a, b) => b.tier - a.tier)
.sort( .sort(
(a, b) => (a, b) =>
treeTypeOrder.indexOf(b.treeType) - treeTypeOrder.indexOf(b.treeType) -
@@ -355,7 +357,7 @@ export const TankSearch = memo<TankSearchProps>(
}, [filters]); }, [filters]);
return ( return (
<Flex direction="column" gap="4" flexGrow="1"> <Flex direction="column" gap="4" flexGrow="1" {...props}>
<SearchBar topResult={tanks?.[0]} /> <SearchBar topResult={tanks?.[0]} />
{!filters.search && !filters.searching && ( {!filters.search && !filters.searching && (
@@ -410,8 +412,13 @@ export const TankSearch = memo<TankSearchProps>(
<> <>
{tanks.length > 0 && ( {tanks.length > 0 && (
<TankCardWrapper> <TankCardWrapper>
{tanks.map((tank) => ( {tanks.map((tank, index) => (
<TankCard onSelect={onSelect} key={tank.id} tank={tank} /> <>
<TankCard onSelect={onSelect} key={tank.id} tank={tank} />
{(index + 16) % 32 === 0 && index !== tanks.length - 1 && (
<AdMidSectionResponsive gridColumn="1 / -1" />
)}
</>
))} ))}
</TankCardWrapper> </TankCardWrapper>
)} )}
+2
View File
@@ -1,5 +1,6 @@
'use client'; 'use client';
import { AdMidSectionResponsive } from '../../../components/AdMidSectionResponsive';
import PageWrapper from '../../../components/PageWrapper'; import PageWrapper from '../../../components/PageWrapper';
import { TankSearch } from './components/TankSearch'; import { TankSearch } from './components/TankSearch';
@@ -7,6 +8,7 @@ export default function Page() {
return ( return (
<PageWrapper color="purple" size={1028}> <PageWrapper color="purple" size={1028}>
<TankSearch /> <TankSearch />
<AdMidSectionResponsive />
</PageWrapper> </PageWrapper>
); );
} }