mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 18:48:11 +00:00
82 lines
2.4 KiB
TypeScript
82 lines
2.4 KiB
TypeScript
import { StrictMode } from "react";
|
|
import { createRoot } from "react-dom/client";
|
|
import { BrowserRouter } from "react-router-dom";
|
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
import "@tria-plc/iamui-common/styles.css";
|
|
import "@edr/ui-common/styles.css";
|
|
import "../index.css";
|
|
import "@edr/ui-common/theme.css";
|
|
|
|
import App from "./App";
|
|
import {
|
|
AuthProvider,
|
|
configureIam,
|
|
UserProvider,
|
|
axiosInstance,
|
|
} from "@tria-plc/iamui-common";
|
|
|
|
// Purge cookies that were stored as the literal string "undefined" before the
|
|
// envelope interceptor fix. Without this, stale sessions would keep sending
|
|
// "Authorization: Bearer undefined" and get 401 JsonWebTokenError forever.
|
|
["auth-token", "refresh-token"].forEach((name) => {
|
|
const entry = document.cookie
|
|
.split("; ")
|
|
.find((c) => c.startsWith(`${name}=`));
|
|
const value = entry?.split("=").slice(1).join("=");
|
|
if (value === "undefined" || value === "null" || value === "") {
|
|
document.cookie = `${name}=; Max-Age=0; path=/`;
|
|
}
|
|
});
|
|
|
|
const queryClient = new QueryClient();
|
|
window.__IAM_CONFIG__ = {
|
|
apiUrl: `${import.meta.env.VITE_BASE_API_URL}/api`,
|
|
postLoginPath: "/",
|
|
};
|
|
|
|
// Unwrap the StandardResponse envelope ({ success, data, timestamp }) that the
|
|
// freight API's ResponseTransformInterceptor adds to every response, so that
|
|
// iamui-common can read response.data.token / response.data fields as expected.
|
|
axiosInstance.interceptors.response.use((response) => {
|
|
if (
|
|
response.data &&
|
|
typeof response.data === "object" &&
|
|
"success" in response.data &&
|
|
"data" in response.data
|
|
) {
|
|
response.data = response.data.data;
|
|
}
|
|
return response;
|
|
});
|
|
window.__USER_MANAGEMENT_BRANDING__ = {
|
|
organizationName: "EDR Platform",
|
|
appName: "EDR Portal",
|
|
moduleBasePath: "/user-management",
|
|
backToAppPath: "/",
|
|
backToAppLabel: "Back to dashboard",
|
|
};
|
|
|
|
configureIam({
|
|
apiUrl: `${import.meta.env.VITE_BASE_API_URL}/api`,
|
|
});
|
|
|
|
const rootElement = document.getElementById("root");
|
|
|
|
if (!rootElement) {
|
|
throw new Error("Root element not found");
|
|
}
|
|
|
|
createRoot(document.getElementById("root")!).render(
|
|
<StrictMode>
|
|
<QueryClientProvider client={queryClient}>
|
|
<BrowserRouter>
|
|
<AuthProvider>
|
|
<UserProvider>
|
|
<App />
|
|
</UserProvider>
|
|
</AuthProvider>
|
|
</BrowserRouter>
|
|
</QueryClientProvider>
|
|
</StrictMode>,
|
|
);
|