import React from "react";import ReactDOM from "react-dom/client";import { ClerkProvider } from "@clerk/react";import { RouterProvider } from "@tanstack/react-router";import { createHashHistory, createBrowserHistory } from "@tanstack/react-router"; import "@xterm/xterm/css/xterm.css";import "./index.css"; import { isElectron } from "./env";import { DesktopClerkProvider } from "./cloud/desktopClerk";import { ManagedRelayAuthProvider } from "./cloud/managedAuth";import { hasCloudPublicConfig } from "./cloud/publicConfig";import { getRouter } from "./router";import { APP_DISPLAY_NAME } from "./branding";import { syncDocumentWindowControlsOverlayClass } from "./lib/windowControlsOverlay"; // Electron loads the app from a file-backed shell, so hash history avoids path resolution issues.const history = isElectron ? createHashHistory() : createBrowserHistory(); const router = getRouter(history); if (isElectron) { syncDocumentWindowControlsOverlayClass();} document.title = APP_DISPLAY_NAME; const clerkPublishableKey = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY as string | undefined;const cloudWaitlistUrl = "/settings/cloud"; const app = <RouterProvider router={router} />; ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( <React.StrictMode> {clerkPublishableKey && hasCloudPublicConfig() ? ( isElectron ? ( <DesktopClerkProvider publishableKey={clerkPublishableKey}> <ManagedRelayAuthProvider>{app}</ManagedRelayAuthProvider> </DesktopClerkProvider> ) : ( <ClerkProvider publishableKey={clerkPublishableKey} waitlistUrl={cloudWaitlistUrl}> <ManagedRelayAuthProvider>{app}</ManagedRelayAuthProvider> </ClerkProvider> ) ) : ( app )} </React.StrictMode>,);
import React from "react";
import ReactDOM from "react-dom/client";
import { ClerkProvider } from "@clerk/react";
import { RouterProvider } from "@tanstack/react-router";
import { createHashHistory, createBrowserHistory } from "@tanstack/react-router";
import "@xterm/xterm/css/xterm.css";
import "./index.css";
import { isElectron } from "./env";
import { DesktopClerkProvider } from "./cloud/desktopClerk";
import { ManagedRelayAuthProvider } from "./cloud/managedAuth";
import { hasCloudPublicConfig } from "./cloud/publicConfig";
import { getRouter } from "./router";
import { APP_DISPLAY_NAME } from "./branding";
import { syncDocumentWindowControlsOverlayClass } from "./lib/windowControlsOverlay";
// Electron loads the app from a file-backed shell, so hash history avoids path resolution issues.
const history = isElectron ? createHashHistory() : createBrowserHistory();
const router = getRouter(history);
if (isElectron) {
syncDocumentWindowControlsOverlayClass();
}
document.title = APP_DISPLAY_NAME;
const clerkPublishableKey = import.meta.env.VITE_CLERK_PUBLISHABLE_KEY as string | undefined;
const cloudWaitlistUrl = "/settings/cloud";
const app = <RouterProvider router={router} />;
ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
<React.StrictMode>
{clerkPublishableKey && hasCloudPublicConfig() ? (
isElectron ? (
<DesktopClerkProvider publishableKey={clerkPublishableKey}>
<ManagedRelayAuthProvider>{app}</ManagedRelayAuthProvider>
</DesktopClerkProvider>
) : (
<ClerkProvider publishableKey={clerkPublishableKey} waitlistUrl={cloudWaitlistUrl}>
<ManagedRelayAuthProvider>{app}</ManagedRelayAuthProvider>
</ClerkProvider>
)
) : (
app
)}
</React.StrictMode>,
);