import { createElement, lazy } from "react"; import type { FilesFileExplorerUiCapability, PlatformWebModule } from "@govoplan/core-webui"; import { FolderTree } from "./features/files/components/FileManagerComponents"; import ManagedFileChooser from "./features/files/components/ManagedFileChooser"; import { listFileSpaces, listFiles, listFolders, resolveFilePatterns, shareFilesWithTarget } from "./api/files"; const FilesPage = lazy(() => import("./features/files/FilesPage")); const fileRead = ["files:file:read"]; export const filesModule: PlatformWebModule = { id: "files", label: "Files", version: "1.0.0", dependencies: ["access"], navItems: [{ to: "/files", label: "Files", iconName: "folder", anyOf: fileRead, order: 40 }], routes: [ { path: "/files", anyOf: fileRead, order: 40, render: ({ settings, auth }) => createElement(FilesPage, { settings, auth }) } ], uiCapabilities: { "files.fileExplorer": { FolderTree, ManagedFileChooser, listFileSpaces, listFiles, listFolders, resolveFilePatterns, shareFilesWithTarget } satisfies FilesFileExplorerUiCapability } }; export default filesModule;