import { setupI18n } from "@lingui/core"; import { I18nProvider } from "@lingui/react"; import { useState } from "react"; import { createRoot } from "react-dom/client"; import { BrandKitView } from "../../src/pages/media/BrandKitView"; import { EditorView } from "../../src/pages/media/EditorView"; import type { MediaView } from "../../src/pages/media/nav"; import { ProjectView } from "../../src/pages/media/ProjectView"; import { ReviewView } from "../../src/pages/media/ReviewView"; import "../../src/styles.css"; /* * Mounts the Media Studio editor-side views on their own, starting at the view * named in the query string, so specs reach them without the library flow. * Views the editor side does not own render as a marker the spec can assert. */ const params = new URLSearchParams(location.search); const i18n = setupI18n({ locale: "en", messages: { en: {} } }); function initialView(): MediaView { const projectId = params.get("projectId") ?? ""; switch (params.get("view")) { case "editor": return { name: "editor", projectId, planId: params.get("planId") ?? "" }; case "review": return { name: "review", projectId, renderId: params.get("renderId") ?? "" }; case "brandKit": return { name: "brandKit", brandKitId: params.get("brandKitId") ?? undefined }; default: return { name: "project", projectId }; } } function Harness() { const [view, setView] = useState(initialView); const props = { navigate: setView, onClose: () => undefined }; switch (view.name) { case "project": return ; case "editor": return ; case "review": return ; case "brandKit": return ; default: return
; } } createRoot(document.getElementById("root")!).render(
, );