34 lines
1.2 KiB
TypeScript
34 lines
1.2 KiB
TypeScript
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;
|