2026-03-31 01:29:35 +02:00
|
|
|
import React from "react";
|
|
|
|
|
import ReactDOM from "react-dom/client";
|
|
|
|
|
|
|
|
|
|
import { App } from "./app/App";
|
|
|
|
|
import "./app/app.css";
|
|
|
|
|
import { createEditorStore } from "./app/editor-store";
|
2026-03-31 01:50:29 +02:00
|
|
|
import { getBrowserStorageAccess, loadOrCreateSceneDocument } from "./serialization/local-draft-storage";
|
2026-03-31 01:29:35 +02:00
|
|
|
|
|
|
|
|
const rootElement = document.getElementById("root");
|
|
|
|
|
|
|
|
|
|
if (rootElement === null) {
|
|
|
|
|
throw new Error("Expected #root element to bootstrap the editor.");
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-31 01:50:29 +02:00
|
|
|
const storageAccess = getBrowserStorageAccess();
|
|
|
|
|
const bootstrapResult = loadOrCreateSceneDocument(storageAccess.storage);
|
2026-03-31 01:29:35 +02:00
|
|
|
const editorStore = createEditorStore({
|
2026-03-31 01:50:29 +02:00
|
|
|
initialDocument: bootstrapResult.document,
|
|
|
|
|
storage: storageAccess.storage
|
2026-03-31 01:29:35 +02:00
|
|
|
});
|
2026-03-31 01:50:29 +02:00
|
|
|
const initialStatusMessage = [storageAccess.diagnostic, bootstrapResult.diagnostic].filter(Boolean).join(" ") || undefined;
|
2026-03-31 01:29:35 +02:00
|
|
|
|
|
|
|
|
ReactDOM.createRoot(rootElement).render(
|
|
|
|
|
<React.StrictMode>
|
2026-03-31 01:50:29 +02:00
|
|
|
<App store={editorStore} initialStatusMessage={initialStatusMessage} />
|
2026-03-31 01:29:35 +02:00
|
|
|
</React.StrictMode>
|
|
|
|
|
);
|