Spaces:
Build error
Build error
| /* eslint-disable react/react-in-jsx-scope */ | |
| /** | |
| * By default, Remix will handle hydrating your app on the client for you. | |
| * You are free to delete this file if you'd like to, but if you ever want it revealed again, you can run `npx remix reveal` ✨ | |
| * For more information, see https://remix.run/file-conventions/entry.client | |
| */ | |
| import { HydratedRouter } from "react-router/dom"; | |
| import React, { startTransition, StrictMode } from "react"; | |
| import { hydrateRoot } from "react-dom/client"; | |
| import { Provider } from "react-redux"; | |
| import posthog from "posthog-js"; | |
| import "./i18n"; | |
| import { QueryClientProvider } from "@tanstack/react-query"; | |
| import store from "./store"; | |
| import OpenHands from "./api/open-hands"; | |
| import { displayErrorToast } from "./utils/custom-toast-handlers"; | |
| import { queryClient } from "./query-client-config"; | |
| function PosthogInit() { | |
| const [posthogClientKey, setPosthogClientKey] = React.useState<string | null>( | |
| null, | |
| ); | |
| React.useEffect(() => { | |
| (async () => { | |
| try { | |
| const config = await OpenHands.getConfig(); | |
| setPosthogClientKey(config.POSTHOG_CLIENT_KEY); | |
| } catch (error) { | |
| displayErrorToast("Error fetching PostHog client key"); | |
| } | |
| })(); | |
| }, []); | |
| React.useEffect(() => { | |
| if (posthogClientKey) { | |
| posthog.init(posthogClientKey, { | |
| api_host: "https://us.i.posthog.com", | |
| person_profiles: "identified_only", | |
| }); | |
| } | |
| }, [posthogClientKey]); | |
| return null; | |
| } | |
| async function prepareApp() { | |
| if ( | |
| process.env.NODE_ENV === "development" && | |
| import.meta.env.VITE_MOCK_API === "true" | |
| ) { | |
| const { worker } = await import("./mocks/browser"); | |
| await worker.start({ | |
| onUnhandledRequest: "bypass", | |
| }); | |
| } | |
| } | |
| prepareApp().then(() => | |
| startTransition(() => { | |
| hydrateRoot( | |
| document, | |
| <StrictMode> | |
| <Provider store={store}> | |
| <QueryClientProvider client={queryClient}> | |
| <HydratedRouter /> | |
| <PosthogInit /> | |
| </QueryClientProvider> | |
| </Provider> | |
| </StrictMode>, | |
| ); | |
| }), | |
| ); | |