From 23bfad8956ab6b9b075bd142d778fc099241e022 Mon Sep 17 00:00:00 2001 From: anibus Date: Sat, 15 Aug 2026 18:42:06 +0300 Subject: [PATCH] Moved to next js ssr (with fixes) --- .gitignore | 4 +- KODA.md | 4 + app/layout.tsx | 9 +- app/mod/[modId]/page.tsx | 16 +- .../[raceId]/building/[buildingId]/page.tsx | 16 +- app/mod/[modId]/race/[raceId]/page.tsx | 19 +- .../race/[raceId]/unit/[unitId]/page.tsx | 16 +- components/pages/BuildingPageClient.tsx | 366 +++++++++++++- components/pages/ModPageClient.tsx | 79 ++- components/pages/ModsPageClient.tsx | 242 +++++++++- components/pages/RacePageClient.tsx | 270 ++++++++++- components/pages/UnitPageClient.tsx | 451 +++++++++++++++++- lib/api-server.ts | 25 +- src/classes/UnitsTable.tsx | 38 +- src/context/ThemeContext.tsx | 29 +- src/index.css | 4 +- src/legacy-pages/BuildingPage.tsx | 344 ------------- src/legacy-pages/ModPage.tsx | 114 ----- src/legacy-pages/ModsPage.tsx | 321 ------------- src/legacy-pages/RacePageFast.tsx | 332 ------------- src/legacy-pages/UnitPage.tsx | 435 ----------------- 21 files changed, 1474 insertions(+), 1660 deletions(-) create mode 100644 KODA.md delete mode 100644 src/legacy-pages/BuildingPage.tsx delete mode 100644 src/legacy-pages/ModPage.tsx delete mode 100644 src/legacy-pages/ModsPage.tsx delete mode 100644 src/legacy-pages/RacePageFast.tsx delete mode 100644 src/legacy-pages/UnitPage.tsx diff --git a/.gitignore b/.gitignore index 484d815..a7f4b92 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,9 @@ # production /build - +/deploy +dow-wiki-deploy.tar.gz +tsconfig.tsbuildinfo # misc .DS_Store .env.local diff --git a/KODA.md b/KODA.md new file mode 100644 index 0000000..ed74818 --- /dev/null +++ b/KODA.md @@ -0,0 +1,4 @@ +#### Сборка + +При сборке дистрибутива формируй архив dow-wiki-deploy.tar.gz +Предварительно удали всё что было до этого в папке deploy и собирай туда \ No newline at end of file diff --git a/app/layout.tsx b/app/layout.tsx index 815738d..8020d0e 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,4 +1,5 @@ import type { Metadata, Viewport } from 'next'; +import { cookies } from 'next/headers'; import '@/src/index.css'; import '@/src/App.css'; import '@/src/css/Unit.css'; @@ -49,8 +50,12 @@ export default function RootLayout({ }: { children: React.ReactNode; }) { + // Читаем тему из cookie на сервере, чтобы сразу отрендерить нужную тему без мерцания. + const themeCookie = cookies().get('theme')?.value; + const initialMode = themeCookie === 'light' ? 'light' : 'dark'; + return ( - + {/* Yandex.Metrika */}