import type { ReactNode } from "react"; import { Navigate, Route, Routes } from "react-router-dom"; import { useAuth } from "@/store/auth"; import { useStaff } from "@/store/staff"; import { ImpersonationBar } from "@/components/ImpersonationBar"; import { LoginPage } from "@/pages/LoginPage"; import { TgWaitPage } from "@/pages/TgWaitPage"; import { OnboardingPage } from "@/pages/OnboardingPage"; import { BalancePage } from "@/pages/BalancePage"; import { TopupPage } from "@/pages/TopupPage"; import { PaymentPage } from "@/pages/PaymentPage"; import { HistoryPage } from "@/pages/HistoryPage"; import { DevLoginPage } from "@/pages/DevLoginPage"; import { DebugPage } from "@/pages/DebugPage"; import { MockPayPage } from "@/pages/MockPayPage"; function RequireAuth({ children }: { children: ReactNode }) { const token = useAuth((s) => s.token); return token ? <>{children} : ; } /** Отладка существует только для сотрудника: либо он вошёл учёткой CRM, либо * прямо сейчас смотрит от лица водителя. Обычному водителю адрес /debug ничего * не даёт — его уводит на главную. */ function RequireStaff({ children }: { children: ReactNode }) { const impersonated = useAuth((s) => s.impersonated); const staffToken = useStaff((s) => s.token); return impersonated || staffToken ? <>{children} : ; } export default function App() { return (
{/* Плашка живёт над маршрутами: чей экран открыт, видно на каждом из них, а не только там, где про неё вспомнили. Сама решает, показываться ли. */} } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } />
); }