diff --git a/frontend/src/components/BottomBar.tsx b/frontend/src/components/BottomBar.tsx index f656d54..f917ac6 100644 --- a/frontend/src/components/BottomBar.tsx +++ b/frontend/src/components/BottomBar.tsx @@ -1,9 +1,12 @@ import { Menu, Plus, Users } from "lucide-react"; +import { useRef } from "react"; import { useNavigate } from "react-router-dom"; import { useToast } from "../context/ToastContext"; import { useMe } from "../hooks/auth"; +const ADMIN_HOLD_MS = 10000; // секретный вход в админку — удержание кнопки меню 10с + export function BottomBar({ onMenu }: { onMenu: () => void }) { const { data: me } = useMe(); const navigate = useNavigate(); @@ -11,6 +14,28 @@ export function BottomBar({ onMenu }: { onMenu: () => void }) { const hasGroup = me?.active_group_id != null; const activeGroup = me?.groups.find((g) => g.id === me?.active_group_id); + // Долгое удержание кнопки меню → /admin/login; короткий тап → открыть боковое меню. + const holdTimer = useRef | null>(null); + const holdFired = useRef(false); + + const startHold = () => { + holdFired.current = false; + holdTimer.current = setTimeout(() => { + holdFired.current = true; + navigate("/admin/login"); + }, ADMIN_HOLD_MS); + }; + const clearHold = () => { + if (holdTimer.current) { + clearTimeout(holdTimer.current); + holdTimer.current = null; + } + }; + const endHold = () => { + clearHold(); + if (!holdFired.current) onMenu(); // обычный тап + }; + const onCreate = () => { if (!hasGroup) { toast.show("Вы не состоите в группе. Создайте или вступите в группу."); @@ -29,7 +54,14 @@ export function BottomBar({ onMenu }: { onMenu: () => void }) {
- diff --git a/frontend/src/pages/AccountPage.tsx b/frontend/src/pages/AccountPage.tsx index bae0b26..bf14762 100644 --- a/frontend/src/pages/AccountPage.tsx +++ b/frontend/src/pages/AccountPage.tsx @@ -158,12 +158,6 @@ export function AccountPage() { - -

- -

); } diff --git a/frontend/src/pages/LoginPage.tsx b/frontend/src/pages/LoginPage.tsx index 2d94dfa..cb82bc0 100644 --- a/frontend/src/pages/LoginPage.tsx +++ b/frontend/src/pages/LoginPage.tsx @@ -93,16 +93,6 @@ export function LoginPage() { {showStub && !pendingTg && } {error &&

{error}

} - -

- -

);