56 lines
2.5 KiB
TypeScript
56 lines
2.5 KiB
TypeScript
import React from "react";
|
|
import ReactDOM from "react-dom/client";
|
|
import { BrowserRouter, Route, Routes } from "react-router";
|
|
import ConformanceApp from "./ConformanceApp";
|
|
import { generatedTranslations as formsRuntimeTranslations } from "../../../govoplan-forms-runtime/webui/src/i18n/generatedTranslations";
|
|
import { productSurfaceTranslations } from "../src/index";
|
|
import { UnsavedChangesProvider } from "../src/components/UnsavedChangesGuard";
|
|
import { PlatformLanguageProvider } from "../src/i18n/LanguageContext";
|
|
import { PlatformModulesProvider } from "../src/platform/ModuleContext";
|
|
import type { PlatformWebModule } from "../src/types";
|
|
import "../src/styles/tokens.css";
|
|
import "../src/styles/layout.css";
|
|
import "../src/styles/forms.css";
|
|
import "../src/styles/tables.css";
|
|
import "../src/styles/badges.css";
|
|
import "../src/styles/components.css";
|
|
import "../src/styles/dialogs.css";
|
|
import "@govoplan/quick-access-webui/styles/quick-access.css";
|
|
import "../../../govoplan-forms-runtime/webui/src/styles/forms-runtime.css";
|
|
import "./conformance.css";
|
|
|
|
const theme = new URLSearchParams(window.location.search).get("theme");
|
|
if (theme === "dark" || theme === "light") document.documentElement.dataset.theme = theme;
|
|
|
|
const CONFORMANCE_MODULES: PlatformWebModule[] = [{
|
|
id: "policy",
|
|
label: "Richtlinien",
|
|
version: "1",
|
|
helpContexts: [{
|
|
id: "policy.retention.action.apply",
|
|
topic_id: "policy.admin.retention-and-disposition",
|
|
title: "Aufbewahrungsregeln sicher anwenden",
|
|
documentation_types: ["admin"]
|
|
}]
|
|
}];
|
|
|
|
ReactDOM.createRoot(document.getElementById("root")!).render(
|
|
<React.StrictMode>
|
|
<BrowserRouter>
|
|
<PlatformModulesProvider modules={CONFORMANCE_MODULES}>
|
|
<PlatformLanguageProvider
|
|
preferredLanguageCode={new URLSearchParams(window.location.search).get("language") ?? (["navigation-layout", "managed-archive"].some((key) => new URLSearchParams(window.location.search).has(key)) ? "en" : "de")}
|
|
moduleTranslations={[formsRuntimeTranslations, productSurfaceTranslations]}>
|
|
<UnsavedChangesProvider>
|
|
<Routes>
|
|
<Route path="/forms/public/:publicId" element={<ConformanceApp />} />
|
|
<Route path="/forms-runtime/:instanceId" element={<ConformanceApp />} />
|
|
<Route path="*" element={<ConformanceApp />} />
|
|
</Routes>
|
|
</UnsavedChangesProvider>
|
|
</PlatformLanguageProvider>
|
|
</PlatformModulesProvider>
|
|
</BrowserRouter>
|
|
</React.StrictMode>
|
|
);
|