JavaScript 56.7%
TypeScript 42.6%
1export interface FileData {2 id: string;3 name: string;4 storagePath?: string;5 size: number;6 mimeType: string;7 folderId?: string | null;8 createdAt: string;9 updatedAt?: string;10 metadata?: FileMetadataData | null;11 tags?: FileTagData[];12 _count?: { versions: number };13}1415export interface FolderData {16 id: string;17 name: string;18 parentId: string | null;19 createdAt: string;20 _count?: { files: number; children: number };21}2223export interface FileMetadataData {24 id: string;25 description?: string | null;26 isFavorite: boolean;27 customDates?: Record<string, string> | null;28}2930export interface TagData {31 id: string;32 name: string;33 color: string;34}3536export interface FileTagData {37 id: string;38 tag: TagData;39}4041export interface FileVersionData {42 id: string;43 fileId: string;44 versionNum: number;45 storagePath: string;46 size: number;47 changeNote?: string | null;48 createdAt: string;49}5051export type ViewerMode = "preview" | "edit";5253export interface PreviewPluginProps {54 file: FileData;55 isEditing: boolean;56 onSave?: (data: Blob | string, asNewVersion?: boolean) => Promise<void>;57 fullscreen: boolean;58}5960export interface PreviewPlugin {61 id: string;62 name: string;63 canHandle: (mimeType: string) => boolean;64 priority: number;65 component: React.ComponentType<PreviewPluginProps>;66 supportsEdit?: boolean;67}68