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