29 lines
1.1 KiB
TypeScript
Executable File
29 lines
1.1 KiB
TypeScript
Executable File
import {ImageFilePreview} from './file-preview/image-file-preview';
|
|
import {FileEntry} from '../file-entry';
|
|
import {DefaultFilePreview} from './file-preview/default-file-preview';
|
|
import {TextFilePreview} from './file-preview/text-file-preview';
|
|
import {VideoFilePreview} from './file-preview/video-file-preview';
|
|
import {AudioFilePreview} from './file-preview/audio-file-preview';
|
|
import {PdfFilePreview} from './file-preview/pdf-file-preview';
|
|
import {WordDocumentFilePreview} from './file-preview/word-document-file-preview';
|
|
|
|
export const AvailablePreviews = {
|
|
text: TextFilePreview,
|
|
video: VideoFilePreview,
|
|
audio: AudioFilePreview,
|
|
image: ImageFilePreview,
|
|
pdf: PdfFilePreview,
|
|
spreadsheet: WordDocumentFilePreview,
|
|
powerPoint: WordDocumentFilePreview,
|
|
word: WordDocumentFilePreview,
|
|
'text/rtf': DefaultFilePreview,
|
|
} as const;
|
|
|
|
export function getPreviewForEntry(entry: FileEntry) {
|
|
const mime = entry?.mime as keyof typeof AvailablePreviews;
|
|
const type = entry?.type as keyof typeof AvailablePreviews;
|
|
return (
|
|
AvailablePreviews[mime] || AvailablePreviews[type] || DefaultFilePreview
|
|
);
|
|
}
|