mirror of
https://github.com/zuiidea/antd-admin
synced 2026-10-26 02:03:57 +00:00
- Drop orders routes, API, MSW, and e2e; users-only CRUD template - Port HTTP refresh, hooks, RouteError, and core e2e to basic - Lingui extract --clean in script; refresh catalogs - Update add-resource docs, cursor rule, and optimization spec Made-with: Cursor
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import React from "react";
|
|
import ReactDOM from "react-dom/client";
|
|
import { RouterProvider, createRouter } from "@tanstack/react-router";
|
|
import { routeTree } from "./routeTree.gen";
|
|
import { useAuthStore } from "./stores/auth";
|
|
import { useSettingsStore } from "./stores/settings";
|
|
import { fetchSessionAndApplyToStore } from "./utils/session";
|
|
import { installHttpRouter } from "./utils/http";
|
|
|
|
const router = createRouter({ routeTree });
|
|
installHttpRouter(router);
|
|
|
|
declare module "@tanstack/react-router" {
|
|
interface Register {
|
|
router: typeof router;
|
|
}
|
|
}
|
|
|
|
async function enableMocking() {
|
|
const enableMockInBuild = import.meta.env.VITE_ENABLE_MOCK === "true";
|
|
if (!import.meta.env.DEV && !enableMockInBuild) return;
|
|
const { worker } = await import("./mocks/browser");
|
|
return worker.start({ onUnhandledRequest: "bypass" });
|
|
}
|
|
|
|
enableMocking()
|
|
.then(async () => {
|
|
await Promise.all([useSettingsStore.persist.rehydrate(), useAuthStore.persist.rehydrate()]);
|
|
const { isAuthenticated, tokens } = useAuthStore.getState();
|
|
if (isAuthenticated && tokens) {
|
|
try {
|
|
await fetchSessionAndApplyToStore();
|
|
} catch {
|
|
useAuthStore.getState().logout();
|
|
}
|
|
}
|
|
|
|
ReactDOM.createRoot(document.getElementById("root")!).render(
|
|
<React.StrictMode>
|
|
<RouterProvider router={router} />
|
|
</React.StrictMode>,
|
|
);
|
|
})
|
|
.catch((err) => {
|
|
console.error("Failed to initialize app:", err);
|
|
});
|