mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-24 03:59:50 +02:00
feat: testing warning
This commit is contained in:
1 parent
2b008ecabe
commit
c73eb0d951
4 files changed
+49
-11
No files matched your search
@@ -3,6 +3,7 @@ import { Box, Button, Flex, Heading, Text } from '@radix-ui/themes';
|
|||||||
import Link from 'next/link';
|
import Link from 'next/link';
|
||||||
import { Suspense, use, useEffect, useMemo, useState } from 'react';
|
import { Suspense, use, useEffect, useMemo, useState } from 'react';
|
||||||
import { classIcons } from '../../../../../../components/ClassIcon';
|
import { classIcons } from '../../../../../../components/ClassIcon';
|
||||||
|
import { ScienceIcon } from '../../../../../../components/ScienceIcon';
|
||||||
import { ThicknessRange } from '../../../../../../components/StaticArmor';
|
import { ThicknessRange } from '../../../../../../components/StaticArmor';
|
||||||
import { resolveNearPenetration } from '../../../../../../core/blitz/resolveNearPenetration';
|
import { resolveNearPenetration } from '../../../../../../core/blitz/resolveNearPenetration';
|
||||||
import { tankDefinitions } from '../../../../../../core/blitzkit/tankDefinitions';
|
import { tankDefinitions } from '../../../../../../core/blitzkit/tankDefinitions';
|
||||||
@@ -100,15 +101,27 @@ export function HeroSection({ id }: HeroSectionProps) {
|
|||||||
</Heading>
|
</Heading>
|
||||||
</Flex>
|
</Flex>
|
||||||
|
|
||||||
<Text color="gray" ml={{ initial: '0', md: '9' }}>
|
<Flex direction="column" ml={{ initial: '0', md: '9' }}>
|
||||||
Tier {TIER_ROMAN_NUMERALS[protagonist.tier]}{' '}
|
{tank.testing && (
|
||||||
{
|
<Text color="red">
|
||||||
(strings.common.nations_adjectives as Record<string, string>)[
|
<Flex align="center" gap="1">
|
||||||
protagonist.nation
|
Tank in testing
|
||||||
]
|
<ScienceIcon width="1em" height="1em" />
|
||||||
}{' '}
|
</Flex>
|
||||||
{strings.common.tank_class_short[protagonist.class]}
|
</Text>
|
||||||
</Text>
|
)}
|
||||||
|
|
||||||
|
<Text color="gray">
|
||||||
|
Tier {TIER_ROMAN_NUMERALS[protagonist.tier]}{' '}
|
||||||
|
{
|
||||||
|
(strings.common.nations_adjectives as Record<string, string>)[
|
||||||
|
protagonist.nation
|
||||||
|
]
|
||||||
|
}{' '}
|
||||||
|
{strings.common.tank_class_short[protagonist.class]}
|
||||||
|
</Text>
|
||||||
|
</Flex>
|
||||||
|
|
||||||
<Flex gap="4" ml={{ initial: '0', md: '9' }} mt="-1">
|
<Flex gap="4" ml={{ initial: '0', md: '9' }} mt="-1">
|
||||||
<Link href="/tools/tankopedia">
|
<Link href="/tools/tankopedia">
|
||||||
<Button variant="ghost" size="1" ml="-1">
|
<Button variant="ghost" size="1" ml="-1">
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import { Callout, Flex } from '@radix-ui/themes';
|
||||||
|
import { ExperimentIcon } from '../../../../../components/ExperimentIcon';
|
||||||
|
import * as Duel from '../../../../../stores/duel';
|
||||||
|
|
||||||
|
export function TestingSection() {
|
||||||
|
const tank = Duel.use((state) => state.protagonist.tank);
|
||||||
|
|
||||||
|
if (!tank.testing) return null;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Flex justify="center" mb="4">
|
||||||
|
<Callout.Root>
|
||||||
|
<Callout.Icon>
|
||||||
|
<ExperimentIcon style={{ width: '1em', height: '1em' }} />
|
||||||
|
</Callout.Icon>
|
||||||
|
<Callout.Text>
|
||||||
|
Tanks in testing are subject to change and may not represent the final
|
||||||
|
product.
|
||||||
|
</Callout.Text>
|
||||||
|
</Callout.Root>
|
||||||
|
</Flex>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -12,6 +12,7 @@ import { GameModeSection } from './components/Model/GameModeSection';
|
|||||||
import { HeroSection } from './components/Model/HeroSection';
|
import { HeroSection } from './components/Model/HeroSection';
|
||||||
import { TechTreeSection } from './components/Model/TechTreeSection';
|
import { TechTreeSection } from './components/Model/TechTreeSection';
|
||||||
import { ShotDisplaySection } from './components/ShotDisplaySection';
|
import { ShotDisplaySection } from './components/ShotDisplaySection';
|
||||||
|
import { TestingSection } from './components/TestingSection';
|
||||||
import { VideoSection } from './components/VideoSection';
|
import { VideoSection } from './components/VideoSection';
|
||||||
|
|
||||||
export default function Page({ params }: { params: { id: string } }) {
|
export default function Page({ params }: { params: { id: string } }) {
|
||||||
@@ -78,6 +79,7 @@ export default function Page({ params }: { params: { id: string } }) {
|
|||||||
<HeroSection id={id} />
|
<HeroSection id={id} />
|
||||||
<ShotDisplaySection />
|
<ShotDisplaySection />
|
||||||
{!exempt && <AdMidSectionResponsive />}
|
{!exempt && <AdMidSectionResponsive />}
|
||||||
|
<TestingSection />
|
||||||
<CharacteristicsSection />
|
<CharacteristicsSection />
|
||||||
{!exempt && <AdMidSectionResponsive />}
|
{!exempt && <AdMidSectionResponsive />}
|
||||||
<GameModeSection />
|
<GameModeSection />
|
||||||
|
|||||||
@@ -433,8 +433,8 @@ export const TankSearch = memo<TankSearchProps>(
|
|||||||
<ExperimentIcon style={{ width: '1em', height: '1em' }} />
|
<ExperimentIcon style={{ width: '1em', height: '1em' }} />
|
||||||
</Callout.Icon>
|
</Callout.Icon>
|
||||||
<Callout.Text>
|
<Callout.Text>
|
||||||
Tanks in testing are subject to change and many not represent
|
Tanks in testing are subject to change and may not represent the
|
||||||
the final product.
|
final product.
|
||||||
</Callout.Text>
|
</Callout.Text>
|
||||||
</Callout.Root>
|
</Callout.Root>
|
||||||
</Flex>
|
</Flex>
|
||||||
|
|||||||
Reference in new issue
Block a user