filePreview function
Widget
filePreview({
- Key? key,
- required RoomClient room,
- required String filename,
- required Uri url,
- BoxFit fit = BoxFit.cover,
- CodePreviewEditorBuilder? codeEditorBuilder,
Implementation
Widget filePreview({
Key? key,
required RoomClient room,
required String filename,
required Uri url,
BoxFit fit = BoxFit.cover,
CodePreviewEditorBuilder? codeEditorBuilder,
}) {
final kind = classifyFile(filename);
switch (kind) {
case FileKind.markdown:
return MarkdownPreview(filename: filename, room: room, key: key);
case FileKind.thread:
return Text(url.pathSegments.last);
case FileKind.lance:
return const Center(child: Text("File preview not supported"));
case FileKind.image:
return ImagePreview(url: url, key: key, fit: fit);
case FileKind.video:
return VideoPreview(url: url, key: key, fit: fit);
case FileKind.audio:
return AudioPreview(url: url, key: key);
case FileKind.pdf:
return PdfPreview(room: room, path: filename, key: key);
case FileKind.tsv:
return TsvPreview(filename: filename, room: room, key: key);
case FileKind.code:
return CodePreview(room: room, filename: filename, url: url, key: key, editorBuilder: codeEditorBuilder);
case FileKind.custom:
final ext = _ext(filename);
return customViewers[ext]!(key: key, room: room, filename: filename, url: url);
case FileKind.parquet:
case FileKind.office:
case FileKind.unknown:
return Text(url.pathSegments.last);
}
}