v0.1 - макет интерфейса, аутентификация через логин, аккаунт админа, создание партии в 2 этапа, базовые настройки профиля и группы, переключение между группами, статистика

This commit is contained in:
2026-06-16 17:41:06 +03:00
parent 6ab74f01aa
commit 56b5d09a4d
123 changed files with 13572 additions and 21 deletions
+39
View File
@@ -0,0 +1,39 @@
import { Outlet, useLocation, useNavigate } from "react-router-dom";
import { BottomBar } from "./BottomBar";
const TITLES: Record<string, string> = {
"/": "Forbidden Stars",
"/group": "Группа",
"/group/settings": "Настройки группы",
"/account": "Аккаунт",
"/match/new": "Новая партия",
};
export function AppShell() {
const location = useLocation();
const navigate = useNavigate();
const title = TITLES[location.pathname] ?? "Forbidden Stars";
const isHome = location.pathname === "/";
return (
<div className="app-shell">
<header className="top-bar">
{isHome ? (
<span className="title">{title}</span>
) : (
<button className="btn btn-ghost" onClick={() => navigate(-1)}>
← Назад
</button>
)}
<span className="title small muted">{!isHome ? title : ""}</span>
</header>
<main className="app-main">
<Outlet />
</main>
<BottomBar />
</div>
);
}