diff --git a/bun.lockb b/bun.lockb index 8f65d7598..6babcd457 100644 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 2f009f28c..d8237e00d 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -4,7 +4,7 @@ export * from './blitzkit'; // export * from './databases'; export * from './imgur'; // export * from './math'; -// export * from './patreon'; +export * from './patreon'; // export * from './protobuf'; // export * from './statistics'; // export * from './streams'; diff --git a/packages/website-legacy/src/app/components/Hero/index.tsx b/packages/website-legacy/src/app/components/Hero/index.tsx deleted file mode 100644 index a936de279..000000000 --- a/packages/website-legacy/src/app/components/Hero/index.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { imgur } from '@blitzkit/core'; -import { Code, Flex, Heading, Text } from '@radix-ui/themes'; -import { BRANCH_NAMES } from './constants'; - -export function Hero() { - const isBranchNamed = - process.env.NEXT_PUBLIC_ASSET_BRANCH && - BRANCH_NAMES[process.env.NEXT_PUBLIC_ASSET_BRANCH]; - - return ( - -
- - - - - - BlitzKit - {isBranchNamed && ( - - {BRANCH_NAMES[process.env.NEXT_PUBLIC_ASSET_BRANCH!]} - - )} - - - - {!isBranchNamed && ( - - Everything World of Tanks Blitz - - )} - - - - ); -} diff --git a/packages/website-legacy/src/app/page.tsx b/packages/website-legacy/src/app/page.tsx index 326237588..2372f5682 100644 --- a/packages/website-legacy/src/app/page.tsx +++ b/packages/website-legacy/src/app/page.tsx @@ -1,7 +1,8 @@ 'use client'; import { Flex, Heading } from '@radix-ui/themes'; -import { AdMidSectionResponsive } from '../components/AdMidSectionResponsive'; +import { Hero } from '../../../website/src/components/Hero'; +import { ToolCard } from '../../../website/src/components/ToolCard'; import { compareTool, discordTool, @@ -11,96 +12,95 @@ import { tankopediaTool, tankPerformanceTool, } from '../../../website/src/constants/tools'; +import { AdMidSectionResponsive } from '../components/AdMidSectionResponsive'; import { useAdExempt } from '../hooks/useAdExempt'; -import { Hero } from './components/Hero'; -import { Plugs } from './components/Plugs'; -import { ToolCard } from '../../../website/src/components/ToolCard'; +import { Plugs } from '../../../website/src/components/Plugs'; export default function Page() { const exempt = useAdExempt(); return ( <> - + - + - - - + + + - - {/* */} - - - - - {!exempt && ( - - + + {/* */} + + - )} - - - {/* */} - - + {!exempt && ( + + + + )} - {!exempt && ( - - + + + {/* */} + - )} - - - - + {!exempt && ( + + + + )} - {!exempt && } + + + + - Other cool projects + {!exempt && } - - - + Other cool projects + + + + + - -
+
); } diff --git a/packages/website-legacy/src/app/tools/embed/[embed]/components/PreviewWrapper/index.tsx b/packages/website-legacy/src/app/tools/embed/[embed]/components/PreviewWrapper/index.tsx index e55e4559c..65932bdc5 100644 --- a/packages/website-legacy/src/app/tools/embed/[embed]/components/PreviewWrapper/index.tsx +++ b/packages/website-legacy/src/app/tools/embed/[embed]/components/PreviewWrapper/index.tsx @@ -1,6 +1,6 @@ import { Box } from '@radix-ui/themes'; import { useEffect, useRef } from 'react'; -import { previews } from '../../../../../../constants/embeds'; +import { previews } from '../../../../../../../../website/src/constants/embeds'; import { useEmbedStateCurry } from '../../../../../../stores/embedState/utilities'; import * as styles from './index.css'; diff --git a/packages/website-legacy/src/app/tools/embed/[embed]/host/page.tsx b/packages/website-legacy/src/app/tools/embed/[embed]/host/page.tsx index 792b628db..8d8f7d815 100644 --- a/packages/website-legacy/src/app/tools/embed/[embed]/host/page.tsx +++ b/packages/website-legacy/src/app/tools/embed/[embed]/host/page.tsx @@ -7,7 +7,7 @@ import { PageWrapper } from '../../../../../components/PageWrapper'; import { configurations, extractEmbedConfigDefaults, -} from '../../../../../constants/embeds'; +} from '../../../../../../../website/src/constants/embeds'; import * as EmbedState from '../../../../../stores/embedState'; export interface EmbedPreviewControllerProps { diff --git a/packages/website-legacy/src/app/tools/embed/[embed]/layout.tsx b/packages/website-legacy/src/app/tools/embed/[embed]/layout.tsx index 35bf1c583..08bdcc4e7 100644 --- a/packages/website-legacy/src/app/tools/embed/[embed]/layout.tsx +++ b/packages/website-legacy/src/app/tools/embed/[embed]/layout.tsx @@ -2,7 +2,7 @@ import { useMemo } from 'react'; import { configurations, extractEmbedConfigDefaults, -} from '../../../../constants/embeds'; +} from '../../../../../../website/src/constants/embeds'; import * as EmbedState from '../../../../stores/embedState'; export function generateStaticParams() { diff --git a/packages/website-legacy/src/app/tools/embed/[embed]/page.tsx b/packages/website-legacy/src/app/tools/embed/[embed]/page.tsx index f5940325b..72c33be8d 100644 --- a/packages/website-legacy/src/app/tools/embed/[embed]/page.tsx +++ b/packages/website-legacy/src/app/tools/embed/[embed]/page.tsx @@ -16,7 +16,7 @@ import { ReactNode, useEffect, useRef, useState } from 'react'; import { stringify } from 'urlon'; import { CopyButton } from '../../../../components/CopyButton'; import { PageWrapper } from '../../../../components/PageWrapper'; -import { configurations } from '../../../../constants/embeds'; +import { configurations } from '../../../../../../website/src/constants/embeds'; import * as App from '../../../../stores/app'; import * as EmbedState from '../../../../stores/embedState'; import { EmbedConfig } from '../../../../stores/embedState'; diff --git a/packages/website-legacy/src/app/tools/embed/configurations/breakdown.tsx b/packages/website-legacy/src/app/tools/embed/configurations/breakdown.tsx index 27f248ac8..afbab35f3 100644 --- a/packages/website-legacy/src/app/tools/embed/configurations/breakdown.tsx +++ b/packages/website-legacy/src/app/tools/embed/configurations/breakdown.tsx @@ -5,7 +5,7 @@ import { BreakdownEmbedCard, BreakdownEmbedWrapper, } from '../../../../components/TanksEmbed'; -import { breakdownConfig } from '../../../../constants/embeds'; +import { breakdownConfig } from '../../../../../../website/src/constants/embeds'; import { useEmbedStateCurry } from '../../../../stores/embedState/utilities'; export const compositeStatsKeysOptions = compositeStatsKeys.map((value) => ({ diff --git a/packages/website-legacy/tsconfig.json b/packages/website-legacy/tsconfig.json index fb7e7fe17..baabeb9b6 100644 --- a/packages/website-legacy/tsconfig.json +++ b/packages/website-legacy/tsconfig.json @@ -11,6 +11,11 @@ "src/**/*", ".next/types/**/*.ts", "../../dist/website/types/**/*.ts", - "dist/website/types/**/*.ts" -, "../website/src/components/ToolCard.tsx", "../website/src/constants/tools.tsx" ] + "dist/website/types/**/*.ts", + "../website/src/components/ToolCard.tsx", + "../website/src/constants/tools.tsx", + "../website/src/components/Plugs.tsx", + "../website/src/constants/embeds.ts", + "../website/src/types" + ] } diff --git a/packages/website/package.json b/packages/website/package.json index f53c81947..82f0c0e61 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -17,6 +17,7 @@ "@vanilla-extract/css": "^1.15.5", "astro": "^4.15.6", "astro-purgecss": "^4.6.0", + "nanostores": "^0.11.3", "purgecss": "^6.0.0", "react": "^18.3.1", "react-dom": "^18.3.1" diff --git a/packages/website-legacy/src/components/Ad.tsx b/packages/website/src/components/Ad.tsx similarity index 100% rename from packages/website-legacy/src/components/Ad.tsx rename to packages/website/src/components/Ad.tsx diff --git a/packages/website-legacy/src/components/AdMidSectionNarrowOnly.tsx b/packages/website/src/components/AdMidSectionNarrowOnly.tsx similarity index 100% rename from packages/website-legacy/src/components/AdMidSectionNarrowOnly.tsx rename to packages/website/src/components/AdMidSectionNarrowOnly.tsx diff --git a/packages/website-legacy/src/components/AdMidSectionResponsive.tsx b/packages/website/src/components/AdMidSectionResponsive.tsx similarity index 100% rename from packages/website-legacy/src/components/AdMidSectionResponsive.tsx rename to packages/website/src/components/AdMidSectionResponsive.tsx diff --git a/packages/website-legacy/src/components/AdMidSectionWideOnly.tsx b/packages/website/src/components/AdMidSectionWideOnly.tsx similarity index 100% rename from packages/website-legacy/src/components/AdMidSectionWideOnly.tsx rename to packages/website/src/components/AdMidSectionWideOnly.tsx diff --git a/packages/website-legacy/src/components/Armor/components/ArmorPlateDisplay.tsx b/packages/website/src/components/Armor/components/ArmorPlateDisplay.tsx similarity index 95% rename from packages/website-legacy/src/components/Armor/components/ArmorPlateDisplay.tsx rename to packages/website/src/components/Armor/components/ArmorPlateDisplay.tsx index 6de3400cb..ebd92b17a 100644 --- a/packages/website-legacy/src/components/Armor/components/ArmorPlateDisplay.tsx +++ b/packages/website/src/components/Armor/components/ArmorPlateDisplay.tsx @@ -10,10 +10,10 @@ import { import { Html } from '@react-three/drei'; import { useRef } from 'react'; import { radToDeg } from 'three/src/math/MathUtils'; -import { resolveArmorIndex } from '../../../core/blitzkit/resolveArmorIndex'; -import * as App from '../../../stores/app'; -import * as Duel from '../../../stores/duel'; -import * as TankopediaEphemeral from '../../../stores/tankopediaEphemeral'; +import { resolveArmorIndex } from '../../../../../website-legacy/src/core/blitzkit/resolveArmorIndex'; +import * as App from '../../../../../website-legacy/src/stores/app'; +import * as Duel from '../../../../../website-legacy/src/stores/duel'; +import * as TankopediaEphemeral from '../../../../../website-legacy/src/stores/tankopediaEphemeral'; import { layerTypeNames } from './ShotDisplayCard'; import { ArmorType } from './SpacedArmorScene'; diff --git a/packages/website-legacy/src/components/Armor/components/ModelTankWrapper.tsx b/packages/website/src/components/Armor/components/ModelTankWrapper.tsx similarity index 100% rename from packages/website-legacy/src/components/Armor/components/ModelTankWrapper.tsx rename to packages/website/src/components/Armor/components/ModelTankWrapper.tsx diff --git a/packages/website-legacy/src/components/Armor/components/PrimaryArmorScene.tsx b/packages/website/src/components/Armor/components/PrimaryArmorScene.tsx similarity index 87% rename from packages/website-legacy/src/components/Armor/components/PrimaryArmorScene.tsx rename to packages/website/src/components/Armor/components/PrimaryArmorScene.tsx index 378e54227..73b32a5ac 100644 --- a/packages/website-legacy/src/components/Armor/components/PrimaryArmorScene.tsx +++ b/packages/website/src/components/Armor/components/PrimaryArmorScene.tsx @@ -1,12 +1,12 @@ import { memo, useRef } from 'react'; import { Group } from 'three'; -import { correctZYTuple } from '../../../core/blitz/correctZYTuple'; -import { nameToArmorId } from '../../../core/blitzkit/nameToArmorId'; -import { resolveArmor } from '../../../core/blitzkit/resolveThickness'; -import { useArmor } from '../../../hooks/useArmor'; -import { useTankModelDefinition } from '../../../hooks/useTankModelDefinition'; -import { useTankTransform } from '../../../hooks/useTankTransform'; -import * as Duel from '../../../stores/duel'; +import { correctZYTuple } from '../../../../../website-legacy/src/core/blitz/correctZYTuple'; +import { nameToArmorId } from '../../../../../website-legacy/src/core/blitzkit/nameToArmorId'; +import { resolveArmor } from '../../../../../website-legacy/src/core/blitzkit/resolveThickness'; +import { useArmor } from '../../../../../website-legacy/src/hooks/useArmor'; +import { useTankModelDefinition } from '../../../../../website-legacy/src/hooks/useTankModelDefinition'; +import { useTankTransform } from '../../../../../website-legacy/src/hooks/useTankTransform'; +import * as Duel from '../../../../../website-legacy/src/stores/duel'; import { ModelTankWrapper } from './ModelTankWrapper'; import { PrimaryArmorSceneComponent } from './PrimaryArmorSceneComponent'; diff --git a/packages/website-legacy/src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx b/packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx similarity index 93% rename from packages/website-legacy/src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx rename to packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx index 7eee326e2..51ad3a6e9 100644 --- a/packages/website-legacy/src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx +++ b/packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/index.tsx @@ -9,10 +9,10 @@ import { useFrame } from '@react-three/fiber'; import { useEffect } from 'react'; import { MeshBasicMaterial, Object3D, ShaderMaterial, Vector2 } from 'three'; import { degToRad } from 'three/src/math/MathUtils'; -import { hasEquipment } from '../../../../core/blitzkit/hasEquipment'; -import { jsxTree } from '../../../../core/blitzkit/jsxTree'; -import * as Duel from '../../../../stores/duel'; -import * as TankopediaPersistent from '../../../../stores/tankopediaPersistent'; +import { hasEquipment } from '../../../../../../website-legacy/src/core/blitzkit/hasEquipment'; +import { jsxTree } from '../../../../../../website-legacy/src/core/blitzkit/jsxTree'; +import * as Duel from '../../../../../../website-legacy/src/stores/duel'; +import * as TankopediaPersistent from '../../../../../../website-legacy/src/stores/tankopediaPersistent'; import fragmentShader from './shaders/fragment.glsl'; import vertexShader from './shaders/vertex.glsl'; import { spacedArmorRenderTarget } from './target'; diff --git a/packages/website-legacy/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/fragment.glsl b/packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/fragment.glsl similarity index 100% rename from packages/website-legacy/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/fragment.glsl rename to packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/fragment.glsl diff --git a/packages/website-legacy/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/vertex.glsl b/packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/vertex.glsl similarity index 100% rename from packages/website-legacy/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/vertex.glsl rename to packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/shaders/vertex.glsl diff --git a/packages/website-legacy/src/components/Armor/components/PrimaryArmorSceneComponent/target.tsx b/packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/target.tsx similarity index 100% rename from packages/website-legacy/src/components/Armor/components/PrimaryArmorSceneComponent/target.tsx rename to packages/website/src/components/Armor/components/PrimaryArmorSceneComponent/target.tsx diff --git a/packages/website-legacy/src/components/Armor/components/ShotDisplay.tsx b/packages/website/src/components/Armor/components/ShotDisplay.tsx similarity index 97% rename from packages/website-legacy/src/components/Armor/components/ShotDisplay.tsx rename to packages/website/src/components/Armor/components/ShotDisplay.tsx index 2da89a27e..a7d240ccf 100644 --- a/packages/website-legacy/src/components/Armor/components/ShotDisplay.tsx +++ b/packages/website/src/components/Armor/components/ShotDisplay.tsx @@ -16,8 +16,8 @@ import { Path, Quaternion, } from 'three'; -import { useFullScreen } from '../../../hooks/useFullScreen'; -import * as TankopediaEphemeral from '../../../stores/tankopediaEphemeral'; +import { useFullScreen } from '../../../../../website-legacy/src/hooks/useFullScreen'; +import * as TankopediaEphemeral from '../../../../../website-legacy/src/stores/tankopediaEphemeral'; import { ShotDisplayCard } from './ShotDisplayCard'; export const shotStatusColors: Record< diff --git a/packages/website-legacy/src/components/Armor/components/ShotDisplayCard.tsx b/packages/website/src/components/Armor/components/ShotDisplayCard.tsx similarity index 98% rename from packages/website-legacy/src/components/Armor/components/ShotDisplayCard.tsx rename to packages/website/src/components/Armor/components/ShotDisplayCard.tsx index cc54c0add..5b04e564f 100644 --- a/packages/website-legacy/src/components/Armor/components/ShotDisplayCard.tsx +++ b/packages/website/src/components/Armor/components/ShotDisplayCard.tsx @@ -8,7 +8,7 @@ import { } from '@radix-ui/themes'; import { ComponentProps } from 'react'; import { radToDeg } from 'three/src/math/MathUtils'; -import * as TankopediaEphemeral from '../../../stores/tankopediaEphemeral'; +import * as TankopediaEphemeral from '../../../../../website-legacy/src/stores/tankopediaEphemeral'; import { shotStatusColors } from './ShotDisplay'; import { ArmorType } from './SpacedArmorScene'; import { ExternalModuleVariant } from './SpacedArmorSceneComponent'; diff --git a/packages/website-legacy/src/components/Armor/components/SpacedArmorScene.tsx b/packages/website/src/components/Armor/components/SpacedArmorScene.tsx similarity index 90% rename from packages/website-legacy/src/components/Armor/components/SpacedArmorScene.tsx rename to packages/website/src/components/Armor/components/SpacedArmorScene.tsx index b691debb2..1313832b8 100644 --- a/packages/website-legacy/src/components/Armor/components/SpacedArmorScene.tsx +++ b/packages/website/src/components/Armor/components/SpacedArmorScene.tsx @@ -1,13 +1,13 @@ import { memo, useRef } from 'react'; import { Group, Plane, Scene, Vector3 } from 'three'; -import { correctZYTuple } from '../../../core/blitz/correctZYTuple'; -import { nameToArmorId } from '../../../core/blitzkit/nameToArmorId'; -import { resolveArmor } from '../../../core/blitzkit/resolveThickness'; -import { useArmor } from '../../../hooks/useArmor'; -import { useModel } from '../../../hooks/useModel'; -import { useTankModelDefinition } from '../../../hooks/useTankModelDefinition'; -import { useTankTransform } from '../../../hooks/useTankTransform'; -import * as Duel from '../../../stores/duel'; +import { correctZYTuple } from '../../../../../website-legacy/src/core/blitz/correctZYTuple'; +import { nameToArmorId } from '../../../../../website-legacy/src/core/blitzkit/nameToArmorId'; +import { resolveArmor } from '../../../../../website-legacy/src/core/blitzkit/resolveThickness'; +import { useArmor } from '../../../../../website-legacy/src/hooks/useArmor'; +import { useModel } from '../../../../../website-legacy/src/hooks/useModel'; +import { useTankModelDefinition } from '../../../../../website-legacy/src/hooks/useTankModelDefinition'; +import { useTankTransform } from '../../../../../website-legacy/src/hooks/useTankTransform'; +import * as Duel from '../../../../../website-legacy/src/stores/duel'; import { ModelTankWrapper } from './ModelTankWrapper'; import { SpacedArmorSceneComponent } from './SpacedArmorSceneComponent'; diff --git a/packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx similarity index 92% rename from packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx index a489e8002..760d05198 100644 --- a/packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx +++ b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/index.tsx @@ -12,9 +12,9 @@ import { ShaderMaterial, } from 'three'; import { ArmorUserData, ExternalModuleVariant } from '../..'; -import { hasEquipment } from '../../../../../../core/blitzkit/hasEquipment'; -import { jsxTree } from '../../../../../../core/blitzkit/jsxTree'; -import * as Duel from '../../../../../../stores/duel'; +import { hasEquipment } from '../../../../../../../../website-legacy/src/core/blitzkit/hasEquipment'; +import { jsxTree } from '../../../../../../../../website-legacy/src/core/blitzkit/jsxTree'; +import * as Duel from '../../../../../../../../website-legacy/src/stores/duel'; import { ArmorType } from '../../../SpacedArmorScene'; import fragmentShader from './shaders/fragment.glsl'; import vertexShader from './shaders/vertex.glsl'; diff --git a/packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/fragment.glsl b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/fragment.glsl similarity index 100% rename from packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/fragment.glsl rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/fragment.glsl diff --git a/packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/vertex.glsl b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/vertex.glsl similarity index 100% rename from packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/vertex.glsl rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubExternal/shaders/vertex.glsl diff --git a/packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx similarity index 93% rename from packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx index b61204754..85064ce16 100644 --- a/packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx +++ b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/index.tsx @@ -13,9 +13,9 @@ import { } from 'three'; import { degToRad } from 'three/src/math/MathUtils'; import { ArmorUserData } from '../..'; -import { hasEquipment } from '../../../../../../core/blitzkit/hasEquipment'; -import { jsxTree } from '../../../../../../core/blitzkit/jsxTree'; -import * as Duel from '../../../../../../stores/duel'; +import { hasEquipment } from '../../../../../../../../website-legacy/src/core/blitzkit/hasEquipment'; +import { jsxTree } from '../../../../../../../../website-legacy/src/core/blitzkit/jsxTree'; +import * as Duel from '../../../../../../../../website-legacy/src/stores/duel'; import { ArmorType } from '../../../SpacedArmorScene'; import fragmentShader from './shaders/fragment.glsl'; import vertexShader from './shaders/vertex.glsl'; diff --git a/packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/fragment.glsl b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/fragment.glsl similarity index 100% rename from packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/fragment.glsl rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/fragment.glsl diff --git a/packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/vertex.glsl b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/vertex.glsl similarity index 100% rename from packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/vertex.glsl rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/components/SpacedArmorSubSpaced/shaders/vertex.glsl diff --git a/packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx similarity index 96% rename from packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx rename to packages/website/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx index 33aeaa185..7c654e0ae 100644 --- a/packages/website-legacy/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx +++ b/packages/website/src/components/Armor/components/SpacedArmorSceneComponent/index.tsx @@ -17,11 +17,11 @@ import { Vector3, } from 'three'; import { degToRad } from 'three/src/math/MathUtils'; -import { hasEquipment } from '../../../../core/blitzkit/hasEquipment'; -import { jsxTree } from '../../../../core/blitzkit/jsxTree'; -import { discardClippingPlane } from '../../../../core/three/discardClippingPlane'; -import * as Duel from '../../../../stores/duel'; -import * as TankopediaEphemeral from '../../../../stores/tankopediaEphemeral'; +import { hasEquipment } from '../../../../../../website-legacy/src/core/blitzkit/hasEquipment'; +import { jsxTree } from '../../../../../../website-legacy/src/core/blitzkit/jsxTree'; +import { discardClippingPlane } from '../../../../../../website-legacy/src/core/three/discardClippingPlane'; +import * as Duel from '../../../../../../website-legacy/src/stores/duel'; +import * as TankopediaEphemeral from '../../../../../../website-legacy/src/stores/tankopediaEphemeral'; import { ArmorType } from '../SpacedArmorScene'; import { SpacedArmorSubExternal } from './components/SpacedArmorSubExternal'; import { SpacedArmorSubSpaced } from './components/SpacedArmorSubSpaced'; diff --git a/packages/website-legacy/src/components/Armor/components/StaticArmor.tsx b/packages/website/src/components/Armor/components/StaticArmor.tsx similarity index 92% rename from packages/website-legacy/src/components/Armor/components/StaticArmor.tsx rename to packages/website/src/components/Armor/components/StaticArmor.tsx index 92b1a3566..eccfaf02c 100644 --- a/packages/website-legacy/src/components/Armor/components/StaticArmor.tsx +++ b/packages/website/src/components/Armor/components/StaticArmor.tsx @@ -2,19 +2,19 @@ import { normalizeAngleRad } from '@blitzkit/core'; import { ThreeEvent, useThree } from '@react-three/fiber'; import { memo, useRef } from 'react'; import { Group, Plane, Vector2, Vector3 } from 'three'; -import { applyPitchYawLimits } from '../../../core/blitz/applyPitchYawLimits'; -import { correctZYTuple } from '../../../core/blitz/correctZYTuple'; -import { hasEquipment } from '../../../core/blitzkit/hasEquipment'; -import { modelTransformEvent } from '../../../core/blitzkit/modelTransform'; -import { nameToArmorId } from '../../../core/blitzkit/nameToArmorId'; -import { resolveArmor } from '../../../core/blitzkit/resolveThickness'; -import { useArmor } from '../../../hooks/useArmor'; -import { useModel } from '../../../hooks/useModel'; -import { useTankModelDefinition } from '../../../hooks/useTankModelDefinition'; -import { useTankTransform } from '../../../hooks/useTankTransform'; -import * as Duel from '../../../stores/duel'; -import * as TankopediaEphemeral from '../../../stores/tankopediaEphemeral'; -import * as TankopediaPersistent from '../../../stores/tankopediaPersistent'; +import { applyPitchYawLimits } from '../../../../../website-legacy/src/core/blitz/applyPitchYawLimits'; +import { correctZYTuple } from '../../../../../website-legacy/src/core/blitz/correctZYTuple'; +import { hasEquipment } from '../../../../../website-legacy/src/core/blitzkit/hasEquipment'; +import { modelTransformEvent } from '../../../../../website-legacy/src/core/blitzkit/modelTransform'; +import { nameToArmorId } from '../../../../../website-legacy/src/core/blitzkit/nameToArmorId'; +import { resolveArmor } from '../../../../../website-legacy/src/core/blitzkit/resolveThickness'; +import { useArmor } from '../../../../../website-legacy/src/hooks/useArmor'; +import { useModel } from '../../../../../website-legacy/src/hooks/useModel'; +import { useTankModelDefinition } from '../../../../../website-legacy/src/hooks/useTankModelDefinition'; +import { useTankTransform } from '../../../../../website-legacy/src/hooks/useTankTransform'; +import * as Duel from '../../../../../website-legacy/src/stores/duel'; +import * as TankopediaEphemeral from '../../../../../website-legacy/src/stores/tankopediaEphemeral'; +import * as TankopediaPersistent from '../../../../../website-legacy/src/stores/tankopediaPersistent'; import { ModelTankWrapper } from './ModelTankWrapper'; import { ArmorType } from './SpacedArmorScene'; import { StaticArmorSceneComponent } from './StaticArmorSceneComponent'; diff --git a/packages/website-legacy/src/components/Armor/components/StaticArmorSceneComponent.tsx b/packages/website/src/components/Armor/components/StaticArmorSceneComponent.tsx similarity index 94% rename from packages/website-legacy/src/components/Armor/components/StaticArmorSceneComponent.tsx rename to packages/website/src/components/Armor/components/StaticArmorSceneComponent.tsx index d6c3ddb1d..198f70349 100644 --- a/packages/website-legacy/src/components/Armor/components/StaticArmorSceneComponent.tsx +++ b/packages/website/src/components/Armor/components/StaticArmorSceneComponent.tsx @@ -15,14 +15,14 @@ import { Quaternion, Vector3, } from 'three'; -import { unrotateDavaVector } from '../../../core/blitz/unrotateDavaVector'; -import { jsxTree } from '../../../core/blitzkit/jsxTree'; +import { unrotateDavaVector } from '../../../../../website-legacy/src/core/blitz/unrotateDavaVector'; +import { jsxTree } from '../../../../../website-legacy/src/core/blitzkit/jsxTree'; import { ModelTransformEventData, modelTransformEvent, -} from '../../../core/blitzkit/modelTransform'; -import { discardClippingPlane } from '../../../core/three/discardClippingPlane'; -import * as TankopediaEphemeral from '../../../stores/tankopediaEphemeral'; +} from '../../../../../website-legacy/src/core/blitzkit/modelTransform'; +import { discardClippingPlane } from '../../../../../website-legacy/src/core/three/discardClippingPlane'; +import * as TankopediaEphemeral from '../../../../../website-legacy/src/stores/tankopediaEphemeral'; import { ArmorType } from './SpacedArmorScene'; import { ArmorUserData, diff --git a/packages/website-legacy/src/components/Armor/index.tsx b/packages/website/src/components/Armor/index.tsx similarity index 100% rename from packages/website-legacy/src/components/Armor/index.tsx rename to packages/website/src/components/Armor/index.tsx diff --git a/packages/website-legacy/src/components/BlitzkitButtonGrayIcon.tsx b/packages/website/src/components/BlitzkitButtonGrayIcon.tsx similarity index 100% rename from packages/website-legacy/src/components/BlitzkitButtonGrayIcon.tsx rename to packages/website/src/components/BlitzkitButtonGrayIcon.tsx diff --git a/packages/website-legacy/src/components/ClassIcon/components/ClassHeavy.tsx b/packages/website/src/components/ClassIcon/components/ClassHeavy.tsx similarity index 100% rename from packages/website-legacy/src/components/ClassIcon/components/ClassHeavy.tsx rename to packages/website/src/components/ClassIcon/components/ClassHeavy.tsx diff --git a/packages/website-legacy/src/components/ClassIcon/components/ClassLight.tsx b/packages/website/src/components/ClassIcon/components/ClassLight.tsx similarity index 100% rename from packages/website-legacy/src/components/ClassIcon/components/ClassLight.tsx rename to packages/website/src/components/ClassIcon/components/ClassLight.tsx diff --git a/packages/website-legacy/src/components/ClassIcon/components/ClassMedium.tsx b/packages/website/src/components/ClassIcon/components/ClassMedium.tsx similarity index 100% rename from packages/website-legacy/src/components/ClassIcon/components/ClassMedium.tsx rename to packages/website/src/components/ClassIcon/components/ClassMedium.tsx diff --git a/packages/website-legacy/src/components/ClassIcon/components/ClassTankDestroyer.tsx b/packages/website/src/components/ClassIcon/components/ClassTankDestroyer.tsx similarity index 100% rename from packages/website-legacy/src/components/ClassIcon/components/ClassTankDestroyer.tsx rename to packages/website/src/components/ClassIcon/components/ClassTankDestroyer.tsx diff --git a/packages/website-legacy/src/components/ClassIcon/index.ts b/packages/website/src/components/ClassIcon/index.ts similarity index 100% rename from packages/website-legacy/src/components/ClassIcon/index.ts rename to packages/website/src/components/ClassIcon/index.ts diff --git a/packages/website-legacy/src/components/ConsumablesManager.tsx b/packages/website/src/components/ConsumablesManager.tsx similarity index 100% rename from packages/website-legacy/src/components/ConsumablesManager.tsx rename to packages/website/src/components/ConsumablesManager.tsx diff --git a/packages/website-legacy/src/components/CopyButton.tsx b/packages/website/src/components/CopyButton.tsx similarity index 100% rename from packages/website-legacy/src/components/CopyButton.tsx rename to packages/website/src/components/CopyButton.tsx diff --git a/packages/website-legacy/src/components/CrewSkillManager.tsx b/packages/website/src/components/CrewSkillManager.tsx similarity index 100% rename from packages/website-legacy/src/components/CrewSkillManager.tsx rename to packages/website/src/components/CrewSkillManager.tsx diff --git a/packages/website-legacy/src/components/DatePicker.tsx b/packages/website/src/components/DatePicker.tsx similarity index 100% rename from packages/website-legacy/src/components/DatePicker.tsx rename to packages/website/src/components/DatePicker.tsx diff --git a/packages/website-legacy/src/components/DummyLink.tsx b/packages/website/src/components/DummyLink.tsx similarity index 100% rename from packages/website-legacy/src/components/DummyLink.tsx rename to packages/website/src/components/DummyLink.tsx diff --git a/packages/website-legacy/src/components/EquipmentManager.tsx b/packages/website/src/components/EquipmentManager.tsx similarity index 96% rename from packages/website-legacy/src/components/EquipmentManager.tsx rename to packages/website/src/components/EquipmentManager.tsx index 9503dc55a..445708f0d 100644 --- a/packages/website-legacy/src/components/EquipmentManager.tsx +++ b/packages/website/src/components/EquipmentManager.tsx @@ -1,7 +1,7 @@ import { EquipmentPreset } from '@blitzkit/core'; import { Flex } from '@radix-ui/themes'; import { cloneDeep } from 'lodash'; -import { EquipmentMatrix } from '../stores/duel'; +import { EquipmentMatrix } from '../../../website-legacy/src/stores/duel'; import { EquipmentButton } from './ModuleButtons/EquipmentButton'; interface EquipmentManagerProps { diff --git a/packages/website-legacy/src/components/ExperimentIcon.tsx b/packages/website/src/components/ExperimentIcon.tsx similarity index 100% rename from packages/website-legacy/src/components/ExperimentIcon.tsx rename to packages/website/src/components/ExperimentIcon.tsx diff --git a/packages/website-legacy/src/components/Footer/components/WoTBVersion.tsx b/packages/website/src/components/Footer/components/WoTBVersion.tsx similarity index 100% rename from packages/website-legacy/src/components/Footer/components/WoTBVersion.tsx rename to packages/website/src/components/Footer/components/WoTBVersion.tsx diff --git a/packages/website-legacy/src/components/Footer/index.css.ts b/packages/website/src/components/Footer/index.css.ts similarity index 100% rename from packages/website-legacy/src/components/Footer/index.css.ts rename to packages/website/src/components/Footer/index.css.ts diff --git a/packages/website-legacy/src/components/Footer/index.tsx b/packages/website/src/components/Footer/index.tsx similarity index 100% rename from packages/website-legacy/src/components/Footer/index.tsx rename to packages/website/src/components/Footer/index.tsx diff --git a/packages/website/src/components/HomeHero.astro b/packages/website/src/components/HomeHero.astro new file mode 100644 index 000000000..26134a38e --- /dev/null +++ b/packages/website/src/components/HomeHero.astro @@ -0,0 +1,77 @@ +--- +import { imgur } from '@blitzkit/core'; +import { Code, Flex, Heading, Text } from '@radix-ui/themes'; +import { BRANCH_NAMES } from '../constants/branches'; + +const isBranchNamed = + process.env.NEXT_PUBLIC_ASSET_BRANCH && + BRANCH_NAMES[process.env.NEXT_PUBLIC_ASSET_BRANCH]; +--- + + + + +
+
+ + + + + + BlitzKit + { + isBranchNamed && ( + + {BRANCH_NAMES[process.env.NEXT_PUBLIC_ASSET_BRANCH!]} + + ) + } + + + + { + !isBranchNamed && ( + + Everything World of Tanks Blitz + + ) + } + + +
diff --git a/packages/website-legacy/src/components/Link.tsx b/packages/website/src/components/Link.tsx similarity index 100% rename from packages/website-legacy/src/components/Link.tsx rename to packages/website/src/components/Link.tsx diff --git a/packages/website-legacy/src/components/ModuleButtons/ConsumableButton.tsx b/packages/website/src/components/ModuleButtons/ConsumableButton.tsx similarity index 96% rename from packages/website-legacy/src/components/ModuleButtons/ConsumableButton.tsx rename to packages/website/src/components/ModuleButtons/ConsumableButton.tsx index af21d5fb7..ff659e32e 100644 --- a/packages/website-legacy/src/components/ModuleButtons/ConsumableButton.tsx +++ b/packages/website/src/components/ModuleButtons/ConsumableButton.tsx @@ -2,7 +2,7 @@ import { asset, consumableDefinitions } from '@blitzkit/core'; import { ClockIcon, ReloadIcon } from '@radix-ui/react-icons'; import { Flex, Text } from '@radix-ui/themes'; import { use } from 'react'; -import { useDelta } from '../../hooks/useDelta'; +import { useDelta } from '../../../../website-legacy/src/hooks/useDelta'; import { GenericTankComponentButton } from './GenericTankComponentButton'; import { TankComponentButtonProps } from './TankComponentButton'; diff --git a/packages/website-legacy/src/components/ModuleButtons/EquipmentButton.tsx b/packages/website/src/components/ModuleButtons/EquipmentButton.tsx similarity index 100% rename from packages/website-legacy/src/components/ModuleButtons/EquipmentButton.tsx rename to packages/website/src/components/ModuleButtons/EquipmentButton.tsx diff --git a/packages/website-legacy/src/components/ModuleButtons/GenericTankComponentButton.tsx b/packages/website/src/components/ModuleButtons/GenericTankComponentButton.tsx similarity index 100% rename from packages/website-legacy/src/components/ModuleButtons/GenericTankComponentButton.tsx rename to packages/website/src/components/ModuleButtons/GenericTankComponentButton.tsx diff --git a/packages/website-legacy/src/components/ModuleButtons/ModuleButton.tsx b/packages/website/src/components/ModuleButtons/ModuleButton.tsx similarity index 100% rename from packages/website-legacy/src/components/ModuleButtons/ModuleButton.tsx rename to packages/website/src/components/ModuleButtons/ModuleButton.tsx diff --git a/packages/website-legacy/src/components/ModuleButtons/ProvisionButton.tsx b/packages/website/src/components/ModuleButtons/ProvisionButton.tsx similarity index 100% rename from packages/website-legacy/src/components/ModuleButtons/ProvisionButton.tsx rename to packages/website/src/components/ModuleButtons/ProvisionButton.tsx diff --git a/packages/website-legacy/src/components/ModuleButtons/ShellButton.tsx b/packages/website/src/components/ModuleButtons/ShellButton.tsx similarity index 100% rename from packages/website-legacy/src/components/ModuleButtons/ShellButton.tsx rename to packages/website/src/components/ModuleButtons/ShellButton.tsx diff --git a/packages/website-legacy/src/components/ModuleButtons/TankComponentButton.tsx b/packages/website/src/components/ModuleButtons/TankComponentButton.tsx similarity index 100% rename from packages/website-legacy/src/components/ModuleButtons/TankComponentButton.tsx rename to packages/website/src/components/ModuleButtons/TankComponentButton.tsx diff --git a/packages/website-legacy/src/components/ModuleManager.tsx b/packages/website/src/components/ModuleManager.tsx similarity index 100% rename from packages/website-legacy/src/components/ModuleManager.tsx rename to packages/website/src/components/ModuleManager.tsx diff --git a/packages/website-legacy/src/components/Navbar/components/WargamingAccountName.tsx b/packages/website/src/components/Navbar/components/WargamingAccountName.tsx similarity index 90% rename from packages/website-legacy/src/components/Navbar/components/WargamingAccountName.tsx rename to packages/website/src/components/Navbar/components/WargamingAccountName.tsx index 45a16d352..c1eaf502e 100644 --- a/packages/website-legacy/src/components/Navbar/components/WargamingAccountName.tsx +++ b/packages/website/src/components/Navbar/components/WargamingAccountName.tsx @@ -1,7 +1,7 @@ import { getAccountInfo, idToRegion } from '@blitzkit/core'; import { Text } from '@radix-ui/themes'; import { use, useMemo } from 'react'; -import * as App from '../../../stores/app'; +import * as App from '../../../../../website-legacy/src/stores/app'; export function WargamingAccountName() { const wargaming = App.use((state) => state.logins.wargaming!); diff --git a/packages/website-legacy/src/components/Navbar/components/WargamingLoginButton.tsx b/packages/website/src/components/Navbar/components/WargamingLoginButton.tsx similarity index 100% rename from packages/website-legacy/src/components/Navbar/components/WargamingLoginButton.tsx rename to packages/website/src/components/Navbar/components/WargamingLoginButton.tsx diff --git a/packages/website-legacy/src/components/Navbar/index.css.ts b/packages/website/src/components/Navbar/index.css.ts similarity index 100% rename from packages/website-legacy/src/components/Navbar/index.css.ts rename to packages/website/src/components/Navbar/index.css.ts diff --git a/packages/website-legacy/src/components/Navbar/index.tsx b/packages/website/src/components/Navbar/index.tsx similarity index 98% rename from packages/website-legacy/src/components/Navbar/index.tsx rename to packages/website/src/components/Navbar/index.tsx index 2ebbafce1..41c833112 100644 --- a/packages/website-legacy/src/components/Navbar/index.tsx +++ b/packages/website/src/components/Navbar/index.tsx @@ -29,9 +29,9 @@ import { } from '@radix-ui/themes'; import { usePathname } from 'next/navigation'; import { Fragment, Suspense, useState } from 'react'; -import { BRANCH_NAMES } from '../../app/components/Hero/constants'; -import { homeTool, TOOLS } from '../../../../website/src/constants/tools'; -import * as App from '../../stores/app'; +import * as App from '../../../../website-legacy/src/stores/app'; +import { BRANCH_NAMES } from '../../../../website/src/components/Hero/constants'; +import { homeTool, TOOLS } from '../../constants/tools'; import { Link } from '../Link'; import { PatreonIcon } from '../PatreonIcon'; import { WargamingIcon } from '../WargamingIcon'; diff --git a/packages/website-legacy/src/components/PageWrapper.tsx b/packages/website/src/components/PageWrapper.tsx similarity index 93% rename from packages/website-legacy/src/components/PageWrapper.tsx rename to packages/website/src/components/PageWrapper.tsx index f9c34766f..1c733cc63 100644 --- a/packages/website-legacy/src/components/PageWrapper.tsx +++ b/packages/website/src/components/PageWrapper.tsx @@ -1,6 +1,6 @@ import { Flex, FlexProps, Theme } from '@radix-ui/themes'; import { ComponentProps } from 'react'; -import { RadixSize } from '../stores/embedState'; +import { RadixSize } from '../../../website-legacy/src/stores/embedState'; type PageWrapperProps = FlexProps & { color?: ComponentProps['accentColor']; diff --git a/packages/website-legacy/src/components/Party3.tsx b/packages/website/src/components/Party3.tsx similarity index 100% rename from packages/website-legacy/src/components/Party3.tsx rename to packages/website/src/components/Party3.tsx diff --git a/packages/website-legacy/src/components/PatreonIcon.tsx b/packages/website/src/components/PatreonIcon.tsx similarity index 100% rename from packages/website-legacy/src/components/PatreonIcon.tsx rename to packages/website/src/components/PatreonIcon.tsx diff --git a/packages/website-legacy/src/app/components/Plugs.tsx b/packages/website/src/components/Plugs.tsx similarity index 93% rename from packages/website-legacy/src/app/components/Plugs.tsx rename to packages/website/src/components/Plugs.tsx index 844d51982..46f5beb27 100644 --- a/packages/website-legacy/src/app/components/Plugs.tsx +++ b/packages/website/src/components/Plugs.tsx @@ -12,9 +12,9 @@ import { Text, } from '@radix-ui/themes'; import { useLayoutEffect, useState } from 'react'; -import { PatreonIcon } from '../../components/PatreonIcon'; -import { useAdExempt } from '../../hooks/useAdExempt'; -import * as App from '../../stores/app'; +import { useAdExempt } from '../hooks/useAdExempt'; +import * as App from '../stores/app'; +import { PatreonIcon } from './PatreonIcon'; export function Plugs() { const [hasPatreon, setHasPatreon] = useState(false); diff --git a/packages/website-legacy/src/components/ProvisionsManager.tsx b/packages/website/src/components/ProvisionsManager.tsx similarity index 100% rename from packages/website-legacy/src/components/ProvisionsManager.tsx rename to packages/website/src/components/ProvisionsManager.tsx diff --git a/packages/website-legacy/src/components/ResearchedIcon.tsx b/packages/website/src/components/ResearchedIcon.tsx similarity index 100% rename from packages/website-legacy/src/components/ResearchedIcon.tsx rename to packages/website/src/components/ResearchedIcon.tsx diff --git a/packages/website-legacy/src/components/ScienceIcon.tsx b/packages/website/src/components/ScienceIcon.tsx similarity index 100% rename from packages/website-legacy/src/components/ScienceIcon.tsx rename to packages/website/src/components/ScienceIcon.tsx diff --git a/packages/website-legacy/src/components/ScienceOffIcon.tsx b/packages/website/src/components/ScienceOffIcon.tsx similarity index 100% rename from packages/website-legacy/src/components/ScienceOffIcon.tsx rename to packages/website/src/components/ScienceOffIcon.tsx diff --git a/packages/website-legacy/src/components/Skeleton/index.css.ts b/packages/website/src/components/Skeleton/index.css.ts similarity index 100% rename from packages/website-legacy/src/components/Skeleton/index.css.ts rename to packages/website/src/components/Skeleton/index.css.ts diff --git a/packages/website-legacy/src/components/Skeleton/index.tsx b/packages/website/src/components/Skeleton/index.tsx similarity index 100% rename from packages/website-legacy/src/components/Skeleton/index.tsx rename to packages/website/src/components/Skeleton/index.tsx diff --git a/packages/website-legacy/src/components/SmallTankIcon.tsx b/packages/website/src/components/SmallTankIcon.tsx similarity index 100% rename from packages/website-legacy/src/components/SmallTankIcon.tsx rename to packages/website/src/components/SmallTankIcon.tsx diff --git a/packages/website-legacy/src/components/Speedometer.tsx b/packages/website/src/components/Speedometer.tsx similarity index 100% rename from packages/website-legacy/src/components/Speedometer.tsx rename to packages/website/src/components/Speedometer.tsx diff --git a/packages/website-legacy/src/components/StickyColumnHeaderCell.tsx b/packages/website/src/components/StickyColumnHeaderCell.tsx similarity index 100% rename from packages/website-legacy/src/components/StickyColumnHeaderCell.tsx rename to packages/website/src/components/StickyColumnHeaderCell.tsx diff --git a/packages/website-legacy/src/components/StickyRowHeaderCell.tsx b/packages/website/src/components/StickyRowHeaderCell.tsx similarity index 100% rename from packages/website-legacy/src/components/StickyRowHeaderCell.tsx rename to packages/website/src/components/StickyRowHeaderCell.tsx diff --git a/packages/website-legacy/src/components/StickyTableRoot.tsx b/packages/website/src/components/StickyTableRoot.tsx similarity index 100% rename from packages/website-legacy/src/components/StickyTableRoot.tsx rename to packages/website/src/components/StickyTableRoot.tsx diff --git a/packages/website-legacy/src/components/TankRowHeaderCell.tsx b/packages/website/src/components/TankRowHeaderCell.tsx similarity index 100% rename from packages/website-legacy/src/components/TankRowHeaderCell.tsx rename to packages/website/src/components/TankRowHeaderCell.tsx diff --git a/packages/website-legacy/src/components/TanksEmbed.tsx b/packages/website/src/components/TanksEmbed.tsx similarity index 95% rename from packages/website-legacy/src/components/TanksEmbed.tsx rename to packages/website/src/components/TanksEmbed.tsx index 12ae5b44c..f5ef4cfcd 100644 --- a/packages/website-legacy/src/components/TanksEmbed.tsx +++ b/packages/website/src/components/TanksEmbed.tsx @@ -8,9 +8,9 @@ import { amberDark, blueDark } from '@radix-ui/colors'; import { Flex, Text } from '@radix-ui/themes'; import { times } from 'lodash'; import { ReactNode } from 'react'; +import { toRadiusVar } from '../../../website-legacy/src/core/radix/utils'; +import { useEmbedStateCurry } from '../../../website-legacy/src/stores/embedState/utilities'; import { breakdownConfig } from '../constants/embeds'; -import { toRadiusVar } from '../core/radix/utils'; -import { useEmbedStateCurry } from '../stores/embedState/utilities'; import { ClassHeavy } from './ClassIcon/components/ClassHeavy'; import { ClassLight } from './ClassIcon/components/ClassLight'; import { ClassMedium } from './ClassIcon/components/ClassMedium'; diff --git a/packages/website/src/components/ToolCard.astro b/packages/website/src/components/ToolCard.astro index d82413ddb..3d90c7140 100644 --- a/packages/website/src/components/ToolCard.astro +++ b/packages/website/src/components/ToolCard.astro @@ -12,6 +12,8 @@ const { tool } = Astro.props; const disabled = tool.branches?.every( (branch) => branch !== assertSecret(process.env.PUBLIC_ASSET_BRANCH), ); + +console.log(process.env); --- @@ -65,7 +67,7 @@ const disabled = tool.branches?.every( = { children: ReactNode; @@ -22,9 +22,10 @@ type ExtractState = S extends { ? T : never; -export function createNextSafeStore, InitData>( - initialize: (data: InitData) => Store, -) { +export function createContextualSafeStore< + Store extends StoreApi, + InitData, +>(initialize: (data: InitData) => Store) { type Type = Store extends StoreApi ? T : never; const Context = createContext(undefined); diff --git a/packages/website-legacy/src/hooks/useAdExempt.ts b/packages/website/src/hooks/useAdExempt.ts similarity index 100% rename from packages/website-legacy/src/hooks/useAdExempt.ts rename to packages/website/src/hooks/useAdExempt.ts diff --git a/packages/website-legacy/src/hooks/useAppliedEquipments.ts b/packages/website/src/hooks/useAppliedEquipments.ts similarity index 100% rename from packages/website-legacy/src/hooks/useAppliedEquipments.ts rename to packages/website/src/hooks/useAppliedEquipments.ts diff --git a/packages/website-legacy/src/hooks/useArmor.ts b/packages/website/src/hooks/useArmor.ts similarity index 100% rename from packages/website-legacy/src/hooks/useArmor.ts rename to packages/website/src/hooks/useArmor.ts diff --git a/packages/website-legacy/src/hooks/useAveragesExclusionRatio.ts b/packages/website/src/hooks/useAveragesExclusionRatio.ts similarity index 100% rename from packages/website-legacy/src/hooks/useAveragesExclusionRatio.ts rename to packages/website/src/hooks/useAveragesExclusionRatio.ts diff --git a/packages/website-legacy/src/hooks/useAwait.ts b/packages/website/src/hooks/useAwait.ts similarity index 100% rename from packages/website-legacy/src/hooks/useAwait.ts rename to packages/website/src/hooks/useAwait.ts diff --git a/packages/website-legacy/src/hooks/useDelta.ts b/packages/website/src/hooks/useDelta.ts similarity index 100% rename from packages/website-legacy/src/hooks/useDelta.ts rename to packages/website/src/hooks/useDelta.ts diff --git a/packages/website-legacy/src/hooks/useEccentricity.ts b/packages/website/src/hooks/useEccentricity.ts similarity index 100% rename from packages/website-legacy/src/hooks/useEccentricity.ts rename to packages/website/src/hooks/useEccentricity.ts diff --git a/packages/website-legacy/src/hooks/useEquipment.ts b/packages/website/src/hooks/useEquipment.ts similarity index 100% rename from packages/website-legacy/src/hooks/useEquipment.ts rename to packages/website/src/hooks/useEquipment.ts diff --git a/packages/website-legacy/src/hooks/useEquipmentPreset.ts b/packages/website/src/hooks/useEquipmentPreset.ts similarity index 100% rename from packages/website-legacy/src/hooks/useEquipmentPreset.ts rename to packages/website/src/hooks/useEquipmentPreset.ts diff --git a/packages/website-legacy/src/hooks/useFullScreen.ts b/packages/website/src/hooks/useFullScreen.ts similarity index 100% rename from packages/website-legacy/src/hooks/useFullScreen.ts rename to packages/website/src/hooks/useFullScreen.ts diff --git a/packages/website-legacy/src/hooks/useFullscreenAvailability.ts b/packages/website/src/hooks/useFullscreenAvailability.ts similarity index 100% rename from packages/website-legacy/src/hooks/useFullscreenAvailability.ts rename to packages/website/src/hooks/useFullscreenAvailability.ts diff --git a/packages/website-legacy/src/hooks/useIntersection.ts b/packages/website/src/hooks/useIntersection.ts similarity index 100% rename from packages/website-legacy/src/hooks/useIntersection.ts rename to packages/website/src/hooks/useIntersection.ts diff --git a/packages/website-legacy/src/hooks/useModel.ts b/packages/website/src/hooks/useModel.ts similarity index 100% rename from packages/website-legacy/src/hooks/useModel.ts rename to packages/website/src/hooks/useModel.ts diff --git a/packages/website-legacy/src/hooks/useOnScreen.ts b/packages/website/src/hooks/useOnScreen.ts similarity index 100% rename from packages/website-legacy/src/hooks/useOnScreen.ts rename to packages/website/src/hooks/useOnScreen.ts diff --git a/packages/website-legacy/src/hooks/useProvision.ts b/packages/website/src/hooks/useProvision.ts similarity index 100% rename from packages/website-legacy/src/hooks/useProvision.ts rename to packages/website/src/hooks/useProvision.ts diff --git a/packages/website-legacy/src/hooks/useTankModelDefinition.ts b/packages/website/src/hooks/useTankModelDefinition.ts similarity index 100% rename from packages/website-legacy/src/hooks/useTankModelDefinition.ts rename to packages/website/src/hooks/useTankModelDefinition.ts diff --git a/packages/website-legacy/src/hooks/useTankTransform.ts b/packages/website/src/hooks/useTankTransform.ts similarity index 100% rename from packages/website-legacy/src/hooks/useTankTransform.ts rename to packages/website/src/hooks/useTankTransform.ts diff --git a/packages/website-legacy/src/hooks/useTankVotes.ts b/packages/website/src/hooks/useTankVotes.ts similarity index 100% rename from packages/website-legacy/src/hooks/useTankVotes.ts rename to packages/website/src/hooks/useTankVotes.ts diff --git a/packages/website/src/pages/index.astro b/packages/website/src/pages/index.astro index e9d511483..35305e503 100644 --- a/packages/website/src/pages/index.astro +++ b/packages/website/src/pages/index.astro @@ -1,5 +1,7 @@ --- import { Flex, Heading } from '@radix-ui/themes'; +import HomeHero from '../components/HomeHero.astro'; +import { Plugs } from '../components/Plugs.tsx'; import ToolCard from '../components/ToolCard.astro'; import { compareTool, @@ -11,24 +13,26 @@ import { tankPerformanceTool, } from '../constants/tools'; import RootLayout from '../layouts/RootLayout.astro'; +import * as App from '../stores/app'; --- - - + + + - + - - - + + + - - {/* */} - - - + + {/* */} + + + - - - - {/* */} - - + + + {/* */} + + - - - - - + + + + - + - Other cool projects + Other cool projects - - - + + + + - -
-
+
+
+ diff --git a/packages/website-legacy/src/stores/app/constants.ts b/packages/website/src/stores/app/constants.ts similarity index 100% rename from packages/website-legacy/src/stores/app/constants.ts rename to packages/website/src/stores/app/constants.ts diff --git a/packages/website-legacy/src/stores/app/index.ts b/packages/website/src/stores/app/index.ts similarity index 75% rename from packages/website-legacy/src/stores/app/index.ts rename to packages/website/src/stores/app/index.ts index e2b36e328..8732badd8 100644 --- a/packages/website-legacy/src/stores/app/index.ts +++ b/packages/website/src/stores/app/index.ts @@ -1,9 +1,9 @@ 'use client'; -import { merge } from 'lodash'; +import lodash from 'lodash'; import { create } from 'zustand'; import { persist } from 'zustand/middleware'; -import { createNextSafeStore } from '../../core/zustand/createNextSafeStore'; +import { createContextualSafeStore } from '../../core/zustand/createContextualSafeStore'; interface WargamingLogin { id: number; @@ -27,7 +27,7 @@ export interface App { } export const { Provider, use, useMutation, useStore, useDeferred } = - createNextSafeStore(() => + createContextualSafeStore(() => create()( persist( (set) => ({ @@ -35,7 +35,7 @@ export const { Provider, use, useMutation, useStore, useDeferred } = policiesAgreementIndex: -1, logins: {}, }), - { name: 'app', merge: (a, b) => merge(b, a) }, + { name: 'app', merge: (a, b) => lodash.merge(b, a) }, ), ), ); diff --git a/packages/website-legacy/src/stores/compareEphemeral.ts b/packages/website/src/stores/compareEphemeral.ts similarity index 72% rename from packages/website-legacy/src/stores/compareEphemeral.ts rename to packages/website/src/stores/compareEphemeral.ts index d4c1c96b5..c3baacd43 100644 --- a/packages/website-legacy/src/stores/compareEphemeral.ts +++ b/packages/website/src/stores/compareEphemeral.ts @@ -1,7 +1,6 @@ 'use client'; import { create } from 'zustand'; -import { createNextSafeStore } from '../core/zustand/createNextSafeStore'; import { DuelMember } from './duel'; export interface CompareMember extends DuelMember { @@ -17,10 +16,10 @@ export interface CompareEphemeral { }; } -export const { Provider, use, useMutation, useStore } = createNextSafeStore( - () => +export const { Provider, use, useMutation, useStore } = + createContextualSafeStore(() => create()(() => ({ crewSkills: {}, members: [], })), -); + ); diff --git a/packages/website-legacy/src/stores/comparePersistent.ts b/packages/website/src/stores/comparePersistent.ts similarity index 63% rename from packages/website-legacy/src/stores/comparePersistent.ts rename to packages/website/src/stores/comparePersistent.ts index fa4522873..e770087df 100644 --- a/packages/website-legacy/src/stores/comparePersistent.ts +++ b/packages/website/src/stores/comparePersistent.ts @@ -1,17 +1,17 @@ 'use client'; -import { merge } from 'lodash'; +import lodash from 'lodash'; import { create } from 'zustand'; import { persist, subscribeWithSelector } from 'zustand/middleware'; -import { createNextSafeStore } from '../core/zustand/createNextSafeStore'; +import { createContextualSafeStore } from '../core/zustand/createContextualSafeStore'; export type DeltaMode = 'none' | 'percentage' | 'absolute'; export interface ComparePersistent { deltaMode: DeltaMode; } -export const { Provider, use, useMutation, useStore } = createNextSafeStore( - () => +export const { Provider, use, useMutation, useStore } = + createContextualSafeStore(() => create()( persist( subscribeWithSelector(() => ({ @@ -19,8 +19,8 @@ export const { Provider, use, useMutation, useStore } = createNextSafeStore( })), { name: 'compare', - merge: (a, b) => merge(b, a), + merge: (a, b) => lodash.merge(b, a), }, ), ), -); + ); diff --git a/packages/website-legacy/src/stores/duel/constants.ts b/packages/website/src/stores/duel/constants.ts similarity index 100% rename from packages/website-legacy/src/stores/duel/constants.ts rename to packages/website/src/stores/duel/constants.ts diff --git a/packages/website-legacy/src/stores/duel/index.ts b/packages/website/src/stores/duel/index.ts similarity index 55% rename from packages/website-legacy/src/stores/duel/index.ts rename to packages/website/src/stores/duel/index.ts index 908fc6de6..47181ff64 100644 --- a/packages/website-legacy/src/stores/duel/index.ts +++ b/packages/website/src/stores/duel/index.ts @@ -1,18 +1,18 @@ 'use client'; import { - EngineDefinition, - GunDefinition, - ProvisionDefinitions, - ShellDefinition, - TankDefinition, - TrackDefinition, - TurretDefinition, + type EngineDefinition, + type GunDefinition, + type ProvisionDefinitions, + type ShellDefinition, + type TankDefinition, + type TrackDefinition, + type TurretDefinition, } from '@blitzkit/core'; import { create } from 'zustand'; import { subscribeWithSelector } from 'zustand/middleware'; import { tankToDuelMember } from '../../core/blitzkit/tankToDuelMember'; -import { createNextSafeStore } from '../../core/zustand/createNextSafeStore'; +import { createContextualSafeStore } from '../../core/zustand/createContextualSafeStore'; type EquipmentMatrixItem = -1 | 0 | 1; type EquipmentMatrixRow = [ @@ -48,21 +48,22 @@ export interface Duel { antagonist: DuelMember; } -export const { Provider, use, useMutation, useStore } = createNextSafeStore( - ({ - tank, - provisionDefinitions, - }: { - tank: TankDefinition; - provisionDefinitions: ProvisionDefinitions; - }) => { - const protagonist = tankToDuelMember(tank, provisionDefinitions); +export const { Provider, use, useMutation, useStore } = + createContextualSafeStore( + ({ + tank, + provisionDefinitions, + }: { + tank: TankDefinition; + provisionDefinitions: ProvisionDefinitions; + }) => { + const protagonist = tankToDuelMember(tank, provisionDefinitions); - return create()( - subscribeWithSelector(() => ({ - protagonist, - antagonist: protagonist, - })), - ); - }, -); + return create()( + subscribeWithSelector(() => ({ + protagonist, + antagonist: protagonist, + })), + ); + }, + ); diff --git a/packages/website-legacy/src/stores/embedState/constants.ts b/packages/website/src/stores/embedState/constants.ts similarity index 90% rename from packages/website-legacy/src/stores/embedState/constants.ts rename to packages/website/src/stores/embedState/constants.ts index 771659ed7..95ea7b555 100644 --- a/packages/website-legacy/src/stores/embedState/constants.ts +++ b/packages/website/src/stores/embedState/constants.ts @@ -1,4 +1,4 @@ -import { EmbedConfigItem } from '.'; +import type { EmbedConfigItem } from '.'; export enum EmbedItemType { Radius, diff --git a/packages/website-legacy/src/stores/embedState/index.ts b/packages/website/src/stores/embedState/index.ts similarity index 89% rename from packages/website-legacy/src/stores/embedState/index.ts rename to packages/website/src/stores/embedState/index.ts index 4740e1b5a..62c34848f 100644 --- a/packages/website-legacy/src/stores/embedState/index.ts +++ b/packages/website/src/stores/embedState/index.ts @@ -2,9 +2,9 @@ import * as radixColors from '@radix-ui/colors'; import { create } from 'zustand'; -import { createNextSafeStore } from '../../core/zustand/createNextSafeStore'; +import { createContextualSafeStore } from '../../core/zustand/createContextualSafeStore'; import { - EmbedConfigItemType, + type EmbedConfigItemType, EmbedItemType, radixGrays, radixTextWeights, @@ -106,6 +106,7 @@ export type EmbedConfigItem = ( export type EmbedState = Record; -export const { Provider, use, useMutation, useStore } = createNextSafeStore( - (init: EmbedState) => create()(() => init), -); +export const { Provider, use, useMutation, useStore } = + createContextualSafeStore((init: EmbedState) => + create()(() => init), + ); diff --git a/packages/website-legacy/src/stores/embedState/utilities.ts b/packages/website/src/stores/embedState/utilities.ts similarity index 100% rename from packages/website-legacy/src/stores/embedState/utilities.ts rename to packages/website/src/stores/embedState/utilities.ts diff --git a/packages/website-legacy/src/stores/session.ts b/packages/website/src/stores/session.ts similarity index 71% rename from packages/website-legacy/src/stores/session.ts rename to packages/website/src/stores/session.ts index 7f479bf01..945df78c4 100644 --- a/packages/website-legacy/src/stores/session.ts +++ b/packages/website/src/stores/session.ts @@ -1,10 +1,10 @@ 'use client'; import { IndividualTankStats, Region, Stat } from '@blitzkit/core'; -import { merge } from 'lodash'; +import lodash from 'lodash'; import { create } from 'zustand'; import { persist } from 'zustand/middleware'; -import { createNextSafeStore } from '../core/zustand/createNextSafeStore'; +import { createContextualSafeStore } from '../core/zustand/createContextualSafeStore'; interface SessionBase { columns: Stat[]; @@ -26,15 +26,15 @@ interface SessionNotTracking extends SessionBase { type Session = SessionTracking | SessionNotTracking; -export const { Provider, use, useMutation, useStore } = createNextSafeStore( - () => +export const { Provider, use, useMutation, useStore } = + createContextualSafeStore(() => create()( persist( (set) => ({ columns: ['battles', 'winrate', 'wn8', 'averageDamage'], tracking: false, }), - { name: 'session-2', merge: (a, b) => merge(b, a) }, + { name: 'session-2', merge: (a, b) => lodash.merge(b, a) }, ), ), -); + ); diff --git a/packages/website-legacy/src/stores/tankFilters.ts b/packages/website/src/stores/tankFilters.ts similarity index 73% rename from packages/website-legacy/src/stores/tankFilters.ts rename to packages/website/src/stores/tankFilters.ts index c96b625bf..5d6db5d62 100644 --- a/packages/website-legacy/src/stores/tankFilters.ts +++ b/packages/website/src/stores/tankFilters.ts @@ -2,7 +2,7 @@ import { TankClass, Tier, TreeType } from '@blitzkit/core'; import { create } from 'zustand'; -import { createNextSafeStore } from '../core/zustand/createNextSafeStore'; +import { createContextualSafeStore } from '../core/zustand/createContextualSafeStore'; export interface TankFilters { tiers: Tier[]; @@ -14,8 +14,8 @@ export interface TankFilters { searching: boolean; } -export const { Provider, use, useMutation, useStore } = createNextSafeStore( - () => +export const { Provider, use, useMutation, useStore } = + createContextualSafeStore(() => create()(() => ({ tiers: [], nations: [], @@ -25,4 +25,4 @@ export const { Provider, use, useMutation, useStore } = createNextSafeStore( search: undefined, searching: false, })), -); + ); diff --git a/packages/website-legacy/src/stores/tankPerformancePersistent/constants.ts b/packages/website/src/stores/tankPerformancePersistent/constants.ts similarity index 100% rename from packages/website-legacy/src/stores/tankPerformancePersistent/constants.ts rename to packages/website/src/stores/tankPerformancePersistent/constants.ts diff --git a/packages/website-legacy/src/stores/tankPerformancePersistent/index.ts b/packages/website/src/stores/tankPerformancePersistent/index.ts similarity index 61% rename from packages/website-legacy/src/stores/tankPerformancePersistent/index.ts rename to packages/website/src/stores/tankPerformancePersistent/index.ts index 6cebe3476..7976a4e55 100644 --- a/packages/website-legacy/src/stores/tankPerformancePersistent/index.ts +++ b/packages/website/src/stores/tankPerformancePersistent/index.ts @@ -1,23 +1,23 @@ 'use client'; -import { merge } from 'lodash'; +import lodash from 'lodash'; import { create } from 'zustand'; import { persist, subscribeWithSelector } from 'zustand/middleware'; -import { createNextSafeStore } from '../../core/zustand/createNextSafeStore'; +import { createContextualSafeStore } from '../../core/zustand/createContextualSafeStore'; import { PlayerCountPeriod } from './constants'; export interface TankPerformancePersistent { playerCountPeriod: PlayerCountPeriod; } -export const { Provider, use, useMutation, useStore } = createNextSafeStore( - () => +export const { Provider, use, useMutation, useStore } = + createContextualSafeStore(() => create()( persist( subscribeWithSelector(() => ({ playerCountPeriod: PlayerCountPeriod.ThisMonth, })), - { name: 'tank-performance', merge: (a, b) => merge(b, a) }, + { name: 'tank-performance', merge: (a, b) => lodash.merge(b, a) }, ), ), -); + ); diff --git a/packages/website-legacy/src/stores/tankPerformanceSort/constants.ts b/packages/website/src/stores/tankPerformanceSort/constants.ts similarity index 100% rename from packages/website-legacy/src/stores/tankPerformanceSort/constants.ts rename to packages/website/src/stores/tankPerformanceSort/constants.ts diff --git a/packages/website-legacy/src/stores/tankPerformanceSort/index.ts b/packages/website/src/stores/tankPerformanceSort/index.ts similarity index 67% rename from packages/website-legacy/src/stores/tankPerformanceSort/index.ts rename to packages/website/src/stores/tankPerformanceSort/index.ts index 86893965d..4c085ea63 100644 --- a/packages/website-legacy/src/stores/tankPerformanceSort/index.ts +++ b/packages/website/src/stores/tankPerformanceSort/index.ts @@ -1,7 +1,7 @@ 'use client'; import { create } from 'zustand'; -import { createNextSafeStore } from '../../core/zustand/createNextSafeStore'; +import { createContextualSafeStore } from '../../core/zustand/createContextualSafeStore'; import { TankPerformanceSortTypeNames } from './constants'; export type TankPerformanceSortType = keyof typeof TankPerformanceSortTypeNames; @@ -11,10 +11,10 @@ export interface TankPerformanceSort { direction: -1 | 1; } -export const { Provider, use, useMutation, useStore } = createNextSafeStore( - () => +export const { Provider, use, useMutation, useStore } = + createContextualSafeStore(() => create()(() => ({ type: 'winrate', direction: -1, })), -); + ); diff --git a/packages/website-legacy/src/stores/tankopediaEphemeral.ts b/packages/website/src/stores/tankopediaEphemeral.ts similarity index 92% rename from packages/website-legacy/src/stores/tankopediaEphemeral.ts rename to packages/website/src/stores/tankopediaEphemeral.ts index 064239bf1..a674c41ff 100644 --- a/packages/website-legacy/src/stores/tankopediaEphemeral.ts +++ b/packages/website/src/stores/tankopediaEphemeral.ts @@ -7,7 +7,7 @@ import { subscribeWithSelector } from 'zustand/middleware'; import { XP_MULTIPLIERS } from '../app/tools/tankopedia/[id]/components/Model/TechTreeSection'; import { ArmorType } from '../components/Armor/components/SpacedArmorScene'; import { ExternalModuleVariant } from '../components/Armor/components/SpacedArmorSceneComponent'; -import { createNextSafeStore } from '../core/zustand/createNextSafeStore'; +import { createContextualSafeStore } from '../core/zustand/createContextualSafeStore'; interface TankopediaEphemeral { shot?: Shot; @@ -91,8 +91,8 @@ export type ArmorPiercingLayer = gap: number; }; -export const { Provider, use, useMutation, useStore } = createNextSafeStore( - (model: ModelDefinition) => +export const { Provider, use, useMutation, useStore } = + createContextualSafeStore((model: ModelDefinition) => create()( subscribeWithSelector(() => ({ editStatic: false, @@ -102,4 +102,4 @@ export const { Provider, use, useMutation, useStore } = createNextSafeStore( xpMultiplier: 1, })), ), -); + ); diff --git a/packages/website-legacy/src/stores/tankopediaPersistent/constants.ts b/packages/website/src/stores/tankopediaPersistent/constants.ts similarity index 100% rename from packages/website-legacy/src/stores/tankopediaPersistent/constants.ts rename to packages/website/src/stores/tankopediaPersistent/constants.ts diff --git a/packages/website-legacy/src/stores/tankopediaPersistent/index.ts b/packages/website/src/stores/tankopediaPersistent/index.ts similarity index 87% rename from packages/website-legacy/src/stores/tankopediaPersistent/index.ts rename to packages/website/src/stores/tankopediaPersistent/index.ts index 980753e42..23995fb5a 100644 --- a/packages/website-legacy/src/stores/tankopediaPersistent/index.ts +++ b/packages/website/src/stores/tankopediaPersistent/index.ts @@ -1,11 +1,11 @@ 'use client'; import { TankClass, Tier, TreeType } from '@blitzkit/core'; -import { merge } from 'lodash'; +import lodash from 'lodash'; import { create } from 'zustand'; import { persist, subscribeWithSelector } from 'zustand/middleware'; import { ENVIRONMENTS } from '../../app/tools/tankopedia/[id]/components/Lighting'; -import { createNextSafeStore } from '../../core/zustand/createNextSafeStore'; +import { createContextualSafeStore } from '../../core/zustand/createContextualSafeStore'; import { SORT_NAMES, TankopediaDisplay } from './constants'; export type TankopediaSortBy = keyof typeof SORT_NAMES; @@ -40,8 +40,8 @@ export interface TankopediaPersistent { display: TankopediaDisplay; } -export const { Provider, use, useMutation, useStore } = createNextSafeStore( - () => +export const { Provider, use, useMutation, useStore } = + createContextualSafeStore(() => create()( persist( subscribeWithSelector(() => ({ @@ -72,7 +72,7 @@ export const { Provider, use, useMutation, useStore } = createNextSafeStore( }, display: TankopediaDisplay.Model, })), - { name: 'tankopedia', merge: (a, b) => merge(b, a) }, + { name: 'tankopedia', merge: (a, b) => lodash.merge(b, a) }, ), ), -); + ); diff --git a/packages/website-legacy/src/stores/tankopediaSort.ts b/packages/website/src/stores/tankopediaSort.ts similarity index 65% rename from packages/website-legacy/src/stores/tankopediaSort.ts rename to packages/website/src/stores/tankopediaSort.ts index 0eb0a0e71..1db83f790 100644 --- a/packages/website-legacy/src/stores/tankopediaSort.ts +++ b/packages/website/src/stores/tankopediaSort.ts @@ -1,7 +1,7 @@ 'use client'; import { create } from 'zustand'; -import { createNextSafeStore } from '../core/zustand/createNextSafeStore'; +import { createContextualSafeStore } from '../core/zustand/createContextualSafeStore'; import { TankopediaSortBy, TankopediaSortDirection, @@ -12,10 +12,10 @@ export interface TankopediaSort { direction: TankopediaSortDirection; } -export const { Provider, use, useMutation, useStore } = createNextSafeStore( - () => +export const { Provider, use, useMutation, useStore } = + createContextualSafeStore(() => create()(() => ({ by: 'meta.none', direction: 'descending', })), -); + ); diff --git a/packages/website-legacy/src/types/glsl.d.ts b/packages/website/src/types/glsl.d.ts similarity index 100% rename from packages/website-legacy/src/types/glsl.d.ts rename to packages/website/src/types/glsl.d.ts diff --git a/packages/website-legacy/src/types/proto.d.ts b/packages/website/src/types/proto.d.ts similarity index 100% rename from packages/website-legacy/src/types/proto.d.ts rename to packages/website/src/types/proto.d.ts diff --git a/packages/website-legacy/src/types/urlon.d.ts b/packages/website/src/types/urlon.d.ts similarity index 100% rename from packages/website-legacy/src/types/urlon.d.ts rename to packages/website/src/types/urlon.d.ts