Add VectorEngine image generation config and raise request timeouts (env + scripts) from 180000 to 1000000ms. Introduce a reusable CreativeImageInputPanel component with tests and wire up mobile keyboard-focus helpers; update generation views and related tests (CustomWorldGenerationView, BarkBattle editor, Match3D, Puzzle flows). Improve API error handling / VectorEngine request guidance (packages/shared http.ts and docs), and apply multiple backend/frontend fixes for puzzle/match3d/prompt handling. Also include extensive docs and decision-log updates describing UI/UX decisions and verification steps.
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
/* eslint-disable react-refresh/only-export-components */
|
|
|
|
import './index.css';
|
|
|
|
import {StrictMode, Suspense} from 'react';
|
|
import {createRoot} from 'react-dom/client';
|
|
|
|
import {stabilizeMobileViewportKeyboardFocus} from './mobileViewportKeyboardFocus';
|
|
import {lockMobileViewportZoom} from './mobileViewportZoomLock';
|
|
import {resolveAppRoute} from './routing/appRoutes';
|
|
import {RouteImageReadyGate} from './routing/RouteImageReadyGate';
|
|
import {RouteLoadingScreen} from './routing/RouteLoadingScreen';
|
|
|
|
type AppRoot = ReturnType<typeof createRoot>;
|
|
|
|
declare global {
|
|
interface Window {
|
|
__tavernRealmsRoot__?: AppRoot;
|
|
}
|
|
}
|
|
|
|
const route = resolveAppRoute(window.location.pathname);
|
|
const rootElement = document.getElementById('root');
|
|
|
|
if (!rootElement) {
|
|
throw new Error('Missing #root container');
|
|
}
|
|
|
|
const root = window.__tavernRealmsRoot__ ??= createRoot(rootElement);
|
|
const RouteComponent = route.Component;
|
|
|
|
lockMobileViewportZoom();
|
|
stabilizeMobileViewportKeyboardFocus();
|
|
|
|
root.render(
|
|
<StrictMode>
|
|
<Suspense fallback={<RouteLoadingScreen eyebrow={route.loadingEyebrow} text={route.loadingText} />}>
|
|
<RouteImageReadyGate
|
|
eyebrow={route.loadingEyebrow}
|
|
text={route.loadingText}
|
|
>
|
|
<RouteComponent {...(route.componentProps ?? {})} />
|
|
</RouteImageReadyGate>
|
|
</Suspense>
|
|
</StrictMode>,
|
|
);
|