import "package:crab_ui/structs.dart"; import "package:flutter/material.dart"; import 'package:pdfrx/pdfrx.dart'; class AttachmentWidget extends StatelessWidget { final AttachmentResponse attachment; AttachmentWidget({required this.attachment}); Widget attachmentViewer(AttachmentResponse att) { String extension = att.name .toString() .substring(att.name.toString().indexOf(".") + 1) .toLowerCase(); if (extension == "jpg") { return Image.memory(att.data); } else if (extension == "pdf") { return PdfViewer.data(att.data, sourceName: att.name); } return Text( "Attachment not supported for preview, you'll need to download", style: TextStyle( color: Colors.black, fontSize: 20, decoration: TextDecoration.none), ); } @override Widget build(BuildContext context) { return Container( color: Colors.black38, child: Stack(children: [ Container( color: Colors.white, child: Padding( padding: EdgeInsets.fromLTRB(10, 20, 0, 10), child: Column( children: [ Row( children: [ CloseButton(onPressed: () => {Navigator.pop(context)}), Text( attachment.name .toString(), //its alr a string but incase ¯\(ツ)/¯ style: TextStyle( color: Colors.black, fontSize: 20, decoration: TextDecoration.none), //TODO: personalize your fonts ), ], ), Expanded( child: attachmentViewer(attachment), ) ], ), ), ), ])); } }