GenerAI / worldmonitor /pro-test /src /welcome-main.tsx
amogaddy's picture
Fix build: ripristinate blog-site/tests/e2e/pro-test/convex (referenziate dagli script di build) (part 3)
ec8acdf verified
Raw
History Blame Contribute Delete
1.59 kB
import { StrictMode } from 'react';
import { createRoot, hydrateRoot } from 'react-dom/client';
import WelcomeApp from './WelcomeApp.tsx';
import { effectiveWelcomeContentLanguage, initI18n } from './i18n';
import { initSentry } from './sentry';
import { initDebugBearRum } from './debugbear-rum';
import { clearWelcomeRoot } from './welcome-root';
import './index.css';
const WELCOME_HYDRATION_IDLE_TIMEOUT_MS = 2500;
const WELCOME_HYDRATION_FALLBACK_TARGET_MS = 1200;
function scheduleWelcomeHydration(hydrate: () => void) {
const idleWindow = window as Window & {
requestIdleCallback?: (callback: () => void, options?: { timeout: number }) => number;
};
if (typeof idleWindow.requestIdleCallback === 'function') {
idleWindow.requestIdleCallback(hydrate, { timeout: WELCOME_HYDRATION_IDLE_TIMEOUT_MS });
return;
}
const elapsedMs = typeof performance !== 'undefined' ? performance.now() : 0;
const fallbackDelayMs = Math.max(0, WELCOME_HYDRATION_FALLBACK_TARGET_MS - elapsedMs);
window.setTimeout(hydrate, fallbackDelayMs);
}
initSentry();
initDebugBearRum();
initI18n({ metaPrefix: 'welcome.meta' }).then(() => {
const rootElement = document.getElementById('root')!;
const app = (
<StrictMode>
<WelcomeApp />
</StrictMode>
);
if (
rootElement.dataset.wmPrerendered === 'welcome' &&
rootElement.dataset.wmPrerenderLang === effectiveWelcomeContentLanguage()
) {
scheduleWelcomeHydration(() => hydrateRoot(rootElement, app));
return;
}
clearWelcomeRoot(rootElement);
createRoot(rootElement).render(app);
});