Экраны входа, «Новый проект», ProjectGate, «не найдено» и ошибка отрисовки переведены на компоненты системы. controls.css удалён, псевдонимы токенов убраны, глобальные .row/.spacer/.hint/.warn/.login разобраны. Разделы в верхней панели не активны вне доски и задач. Тонкая настройка дорожек доски, тест на ошибку списка, стабилизирован тест проектов. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
854 B
TypeScript
22 lines
854 B
TypeScript
import { QueryClientProvider } from "@tanstack/react-query";
|
|
import { useState } from "react";
|
|
import { createBrowserRouter, RouterProvider } from "react-router";
|
|
import { makeQueryClient } from "./api/queryClient.ts";
|
|
import { AuthGate } from "./auth/AuthGate.tsx";
|
|
import { RefreshProvider } from "./shell/RefreshProvider.tsx";
|
|
import { routes } from "./routes.tsx";
|
|
import "./styles/tokens.css";
|
|
import "./styles/base.css";
|
|
|
|
type Router = ReturnType<typeof createBrowserRouter>;
|
|
|
|
export function App({ router }: { router?: Router }) {
|
|
const [client] = useState(makeQueryClient);
|
|
const [r] = useState(() => router ?? createBrowserRouter(routes, { basename: "/app" }));
|
|
return (
|
|
<QueryClientProvider client={client}>
|
|
<AuthGate><RefreshProvider><RouterProvider router={r} /></RefreshProvider></AuthGate>
|
|
</QueryClientProvider>
|
|
);
|
|
}
|