Zum Hauptinhalt springen

Dateien und Ordner

import Directory from '@tdev-components/documents/FileSystem/Directory';

<Directory name="Ordner" id="1e79cf9a-b890-4d9e-a5fe-e4b372e233c6"/>
http://localhost:3000
Laden...

Installation

Code-Ordner kopieren
  • src/models/documents/FileSystem
  • src/components/documents/FileSystem
Abhängigkeiten

Standardmässig werden alle verfügbaren Dateitypen unterstützt. Ist ein Dokumententyp (bspw. excalidoc) nicht verfügbar, muss dieser entfernt werden.

Models
src/api/document.ts

export enum DocumentType {
/* ... */
Dir = 'dir',
File = 'file',
}

export interface DirData {
name: string;
isOpen: boolean;
}

export interface FileData {
name: string;
isOpen: boolean;
}
export interface TypeDataMapping {
/* ... */
[DocumentType.Dir]: DirData;
[DocumentType.File]: FileData;
}

export interface TypeModelMapping {
/* ... */
[DocumentType.Dir]: Directory;
[DocumentType.File]: File;
}

export type DocumentTypes =
/* ... */
| Directory
| File
Stores
src/stores/DocumentStore.ts
export function CreateDocumentModel(data: DocumentProps<DocumentType>, store: DocumentStore): DocumentTypes {
switch (data.type) {
/* ... */
case DocumentType.Dir:
return new Directory(data as DocumentProps<DocumentType.Dir>, store);
case DocumentType.File:
return new File(data as DocumentProps<DocumentType.File>, store);
}
}
src/stores/SocketDataStore.ts
/**
* Records that should be created when a IoEvent.NEW_RECORD event is received.
*/
const RecordsToCreate = new Set<DocumentType>([DocumentType.Dir, DocumentType.File/* ... */]);
/* ... */
Ordner und Dateien verschieben

Ordner und Dateien können innerhalb derselben DocumentRoot verschoben werden. Dies bedarf jedoch folgende Erlaubte Aktionen im 👉 Admin Panel