Files
probo/apps/console/src/App.tsx
gearnode b3dcfc6b53 Add react setup
Signed-off-by: gearnode <bryan@frimin.fr>
2025-01-31 21:01:21 -08:00

58 lines
1.8 KiB
TypeScript

import posthog from "posthog-js";
import { PostHogProvider } from "posthog-js/react";
import { lazy, StrictMode, Suspense } from "react";
import { createRoot } from "react-dom/client";
import { HelmetProvider } from "react-helmet-async";
import { RelayEnvironmentProvider } from "react-relay";
import {
BrowserRouter,
Route,
Routes,
} from "react-router";
import "App.css";
import ErrorBoundary from "./components/ErrorBoundary";
import AuthenticateLayout from "./layouts/AuthenticateLayout";
import { RelayEnvironment } from "./RelayEnvironment";
posthog.init(process.env.POSTHOG_KEY!, {
api_host: process.env.POSTHOG_HOST,
session_recording: {
maskAllInputs: true,
},
loaded: (posthog) => {
if (!process.env.POSTHOG_KEY) posthog.debug();
},
});
const HomePage = lazy(() => import("./pages/HomePage"));
const NotFoundPage = lazy(() => import("./pages/NotFoundPage"));
function App() {
return (
<StrictMode>
<ErrorBoundary fallback={<p>Something went wrong</p>}>
<PostHogProvider client={posthog}>
<RelayEnvironmentProvider environment={RelayEnvironment}>
<HelmetProvider>
<BrowserRouter>
<Suspense>
<Routes>
<Route path="/" element={<AuthenticateLayout />}>
<Route index element={<HomePage />} />
</Route>
<Route path="*" element={<NotFoundPage />} />
</Routes>
</Suspense>
</BrowserRouter>
</HelmetProvider>
</RelayEnvironmentProvider>
</PostHogProvider>
</ErrorBoundary>
</StrictMode>
);
}
const container = document.getElementById("root");
const root = createRoot(container!);
root.render(<App />);