filePreview function

Widget filePreview({
  1. Key? key,
  2. required RoomClient room,
  3. required String filename,
  4. required Uri url,
  5. BoxFit fit = BoxFit.cover,
})

Implementation

Widget filePreview({Key? key, required RoomClient room, required String filename, required Uri url, BoxFit fit = BoxFit.cover}) {
  // assuming URL has extension, which is generally bad
  final extension = basename(filename).split(".").last.toLowerCase();
  if (imageExtensions.contains(extension)) {
    return ImagePreview(url: url, key: key, fit: fit);
  } else if (videoExtensions.contains(extension)) {
    return VideoPreview(url: url, key: key, fit: fit);
  } else if (audioExtensions.contains(extension)) {
    return AudioPreview(url: url, key: key);
  } else if (pdfExtensions.contains(extension)) {
    return PdfPreview(url: url, key: key, fit: fit);
  } else if (customViewers.containsKey(extension)) {
    return customViewers[extension]!(key: key, room: room, filename: filename, url: url);
  } else {
    return Text(url.pathSegments.last);
  }
}