All files / src App.tsx

18.18% Statements 2/11
0% Branches 0/4
33.33% Functions 1/3
18.18% Lines 2/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60                                  33x                                             33x                                      
import { Provider } from "react-redux";
import { Route, Routes } from "react-router-dom";
import { store } from "./store/store";
import { Toaster } from "sonner";
import "../app/globals.css";
import { ThemeProvider } from "./ahuora-design-system/ThemeProvider";
import ProjectPage from "./pages/flowsheet-page/ProjectPage";
import MainPage from "./pages/main-page/MainPage";
import { CommandProvider } from "just-search-it";
import { SwitchThemes } from "./commands/Display";
import { usePostHog } from "posthog-js/react";
import { useAuthenticationUserinfoRetrieveQuery } from "@/api/apiStore.gen.ts";
import { useEffect } from "react";
import { getPostHogStarted } from "@/analytics/posthog.tsx";
import TemplateGallery from "./pages/main-page/components/TemplateGallery";
 
// @ts-expect-error Vite environment variables are dynamically injected at build time
const isProduction = import.meta.env.MODE === "production";
 
function PostHogTracker() {
  const posthog = usePostHog();
  const { data: userInfo, isError } = useAuthenticationUserinfoRetrieveQuery();
 
  // Identify the active user in PostHog
  useEffect(() => {
    Iif (getPostHogStarted()) {
      if (isError)
        console.log(
          "Failed to initialise PostHog: could not retrieve user info"
        I);
      else if (userInfo) {
        posthog.identify(userInfo.username, { email: userInfo.email });
      }
    }
  }, [posthog, userInfo?.username, userInfo?.email]);
 
  return null;
}
 
export default function App() {
  return (
    <ThemeProvider defaultTheme="dark" storageKey="vite-ui-theme">
      <CommandProvider>
        <Provider store={store}>
          <Routes>
            <Route path="/" element={<MainPage />} />
            <Route path="/templates" element={<TemplateGallery />} />
            <Route path="/project/:flowsheetId/">
              <Route path="flowsheet" element={<ProjectPage />} />
            </Route>
          </Routes>
          <SwitchThemes />
          <Toaster position="bottom-right" richColors={true} />
          {/* <PostHogTracker/> */}
        </Provider>
      </CommandProvider>
    </ThemeProvider>
  );
}