import { createElement, lazy } from "react"; import type { MailDevMailboxUiCapability, MailProfilesUiCapability, PlatformWebModule } from "@govoplan/core-webui"; import { MailProfilePolicyEditor, MailProfileScopeManager } from "./features/mail/MailProfileManagement"; import { validateMailPolicy } from "./features/mail/mailPolicyValidation"; const MailboxPage = lazy(() => import("./features/mail/MailboxPage")); const mailboxRead = ["mail:mailbox:read"]; export const mailModule: PlatformWebModule = { id: "mail", label: "Mail", version: "1.0.0", dependencies: ["access"], navItems: [{ to: "/mail", label: "Mail", iconName: "mail", anyOf: mailboxRead, order: 50 }], routes: [ { path: "/mail", anyOf: mailboxRead, order: 50, render: ({ settings }) => createElement(MailboxPage, { settings }) } ], uiCapabilities: { "mail.profiles": { MailProfileScopeManager, MailProfilePolicyEditor, validateMailPolicy } satisfies MailProfilesUiCapability }, runtimeUiCapabilities: { "mail.devMailbox": { enabled: true, label: "Development mock mailbox" } satisfies MailDevMailboxUiCapability } }; export default mailModule;