GeneIT/geneit_app/src/index.tsx

69 lines
2.4 KiB
TypeScript
Raw Normal View History

2023-06-06 13:47:30 +00:00
import React from "react";
import ReactDOM from "react-dom/client";
import { App } from "./App";
2023-06-06 13:47:30 +00:00
import { ServerApi } from "./api/ServerApi";
2023-08-10 10:10:09 +00:00
import "./index.css";
import reportWebVitals from "./reportWebVitals";
2023-06-06 08:52:50 +00:00
2023-06-06 14:39:47 +00:00
// Roboto font
import "@fontsource/roboto/300.css";
import "@fontsource/roboto/400.css";
import "@fontsource/roboto/500.css";
import "@fontsource/roboto/700.css";
import { AlertDialogProvider } from "./hooks/context_providers/AlertDialogProvider";
2023-08-10 10:10:09 +00:00
import { ConfirmDialogProvider } from "./hooks/context_providers/ConfirmDialogProvider";
import { DarkThemeProvider } from "./hooks/context_providers/DarkThemeProvider";
2023-08-10 10:10:09 +00:00
import { SnackbarProvider } from "./hooks/context_providers/SnackbarProvider";
import { AsyncWidget } from "./widgets/AsyncWidget";
2023-08-18 13:10:16 +00:00
import { LoadingMessageProvider } from "./hooks/context_providers/LoadingMessageProvider";
import { APIClient } from "./api/ApiClient";
2023-06-06 14:39:47 +00:00
2023-06-06 13:47:30 +00:00
async function init() {
try {
if (
APIClient.IsBackendSecure() &&
!window.location.href.startsWith("https") &&
window.location.hostname !== "localhost"
) {
window.location.href = window.location.href.replace("http:", "https:");
}
2023-06-06 13:47:30 +00:00
const root = ReactDOM.createRoot(
document.getElementById("root") as HTMLElement
);
root.render(
<React.StrictMode>
<DarkThemeProvider>
<AlertDialogProvider>
<ConfirmDialogProvider>
<SnackbarProvider>
2023-08-18 13:10:16 +00:00
<LoadingMessageProvider>
<div style={{ height: "100vh" }}>
<AsyncWidget
loadKey={1}
load={async () => await ServerApi.LoadConfig()}
errMsg="Echec de la connexion au serveur pour la récupération de la configuration statique !"
build={() => <App />}
/>
</div>
</LoadingMessageProvider>
</SnackbarProvider>
</ConfirmDialogProvider>
</AlertDialogProvider>
</DarkThemeProvider>
2023-06-06 13:47:30 +00:00
</React.StrictMode>
);
} catch (e) {
console.error(e);
alert("Echec de l'initialisation de l'application !");
}
}
init();
2023-06-06 08:52:50 +00:00
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();