/** @jsxImportSource react */ import { setCurrentPluginTarget } from "../../plugins/current-target"; import "../electrobun/view/styles.css"; import { createRoot } from "react-dom/client"; import { App } from "../../app"; import { loadConfig } from "../../data/config/store"; import { applyLanguageFromConfig } from "../../i18n"; import { getBrowserPlugins } from "../../plugins/catalog-browser"; import { UiHostProvider } from "../../ui/host"; import { WebDialogHostProvider } from "../electrobun/view/dialog-host"; import { BrowserErrorBoundary } from "./error-boundary"; import { installFocusScopeRelease } from "../electrobun/view/host/focus-scope"; import { installDomMarketDataFrames } from "../electrobun/view/data-frames"; import { WebInputHostProvider } from "../electrobun/view/input-host"; import { webNativeRenderer } from "../electrobun/view/native-renderer"; import { WebToastHostProvider } from "../electrobun/view/toast-host"; import { createBrowserAppServices } from "./app-services"; import { installBrowserFetchTransports, restoreBrowserCloudSession, } from "./cloud-transport"; import { loadWebBundledPlugins } from "./bundled-plugins"; import { BROWSER_DATA_DIR, installBrowserConfigStore } from "./config-host"; import { browserRendererHost, browserUiHost } from "./ui-host"; import { createBrowserDeepLinkBridge } from "./deeplink-bridge"; import { initializeBrowserResearchActivity, recordResearchActivity } from "../../api-client/research-activity"; import { flushPendingPersistence } from "../../state/persist-scheduler"; // Declared here rather than sniffed: the desktop view and the hosted browser // app are both browser contexts but differ in what plugins may do. setCurrentPluginTarget("web"); const rootElement = document.getElementById("root"); if (!rootElement) throw new Error("Missing root element"); const appRootElement = rootElement; appRootElement.tabIndex = -1; const root = createRoot(appRootElement); root.render(
{message}