Files
Microsoft.SelfService.Porta…/src/main.tsx
Torsten Brendgen 7080d659ef feat: Enhance Domains, Environments, Services, and Templates management
- Implemented dialog-based forms for adding and editing Domains and Environments.
- Added delete functionality for Domains and Environments with confirmation prompts.
- Introduced EnvironmentDetailsPage to display details of selected environments and their linked domains.
- Created EnvironmentDomainsPage for linking domains to environments.
- Enhanced ServicesPage with dialog support for adding, editing, and viewing service details.
- Updated TemplatesPage to manage templates with comprehensive form fields and validation.
- Improved type definitions in portal.ts to support new features and ensure type safety.
2026-05-15 00:05:09 +02:00

58 lines
2.2 KiB
TypeScript

import React from "react";
import ReactDOM from "react-dom/client";
import { FluentProvider, webLightTheme } from "@fluentui/react-components";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { createBrowserRouter, RouterProvider } from "react-router-dom";
import { AppShell } from "./layout/AppShell";
import { DashboardPage } from "./pages/DashboardPage";
import { DeploymentsPage } from "./pages/DeploymentsPage";
import { DeploymentGroupsPage } from "./pages/DeploymentGroupsPage";
import { DomainDetailsPage } from "./pages/DomainDetailsPage";
import { DomainsPage } from "./pages/DomainsPage";
import { EnvironmentDomainsPage } from "./pages/EnvironmentDomainsPage";
import { EnvironmentDetailsPage } from "./pages/EnvironmentDetailsPage";
import { EnvironmentsPage } from "./pages/EnvironmentsPage";
import { RunbooksPage } from "./pages/RunbooksPage";
import { TemplatesPage } from "./pages/TemplatesPage";
import { ServicesPage } from "./pages/ServicesPage";
import "./styles/global.css";
const queryClient = new QueryClient({
defaultOptions: {
queries: {
staleTime: 30_000,
retry: 1,
},
},
});
const router = createBrowserRouter([
{
path: "/",
element: <AppShell />,
children: [
{ index: true, element: <DashboardPage /> },
{ path: "deployments", element: <DeploymentsPage /> },
{ path: "deployment-groups", element: <DeploymentGroupsPage /> },
{ path: "domains", element: <DomainsPage /> },
{ path: "domains/:id", element: <DomainDetailsPage /> },
{ path: "environment-domains", element: <EnvironmentDomainsPage /> },
{ path: "environments", element: <EnvironmentsPage /> },
{ path: "environments/:id", element: <EnvironmentDetailsPage /> },
{ path: "runbooks", element: <RunbooksPage /> },
{ path: "templates", element: <TemplatesPage /> },
{ path: "services", element: <ServicesPage /> },
],
},
]);
ReactDOM.createRoot(document.getElementById("root")!).render(
<React.StrictMode>
<FluentProvider theme={webLightTheme}>
<QueryClientProvider client={queryClient}>
<RouterProvider router={router} />
</QueryClientProvider>
</FluentProvider>
</React.StrictMode>,
);