diff --git a/lib/view/pages/talk/components/chatMessage.dart b/lib/view/pages/talk/components/chatMessage.dart index 626d011..b60039a 100644 --- a/lib/view/pages/talk/components/chatMessage.dart +++ b/lib/view/pages/talk/components/chatMessage.dart @@ -21,39 +21,46 @@ class ChatMessage { ChatMessage({required this.originalMessage, this.originalData}) { if(originalData?.containsKey('file') ?? false) { file = originalData?['file']; - content = file?.name ?? 'Datei'; - } else { - content = RichObjectStringProcessor.parseToString(originalMessage, originalData); } + content = RichObjectStringProcessor.parseToString(originalMessage, originalData); } Widget getWidget() { - if(file == null) { - return Linkify( - text: content, - onOpen: onOpen, - ); - } + var contentWidget = Linkify( + text: content, + onOpen: onOpen, + ); - return Padding(padding: const EdgeInsets.only(top: 5), child: CachedNetworkImage( - errorWidget: (context, url, error) => Row( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.center, + if(file == null) return contentWidget; + + return Padding( + padding: const EdgeInsets.only(top: 5), + child: Column( children: [ - const Icon(Icons.file_open_outlined, size: 35), - const SizedBox(width: 10), - Flexible(child: Text(file!.name, maxLines: 2, overflow: TextOverflow.ellipsis, style: const TextStyle(fontWeight: FontWeight.bold))), - const SizedBox(width: 10), + CachedNetworkImage( + errorWidget: (context, url, error) => Row( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + const Icon(Icons.file_open_outlined, size: 35), + const SizedBox(width: 10), + Flexible(child: Text(file!.name, maxLines: 2, overflow: TextOverflow.ellipsis, style: const TextStyle(fontWeight: FontWeight.bold))), + const SizedBox(width: 10), + ], + ), + alignment: Alignment.center, + placeholder: (context, url) => const Padding(padding: EdgeInsets.all(15), child: SizedBox(width: 50, child: LinearProgressIndicator())), + fadeInDuration: Duration.zero, + fadeOutDuration: Duration.zero, + errorListener: (value) {}, + imageUrl: 'https://${AccountData().buildHttpAuthString()}@${EndpointData().nextcloud().full()}/index.php/core/preview?fileId=${file!.id}&x=100&y=-1&a=1', + ), + SizedBox(height: 5), + contentWidget ], - ), - alignment: Alignment.center, - placeholder: (context, url) => const Padding(padding: EdgeInsets.all(15), child: SizedBox(width: 50, child: LinearProgressIndicator())), - fadeInDuration: Duration.zero, - fadeOutDuration: Duration.zero, - errorListener: (value) {}, - imageUrl: 'https://${AccountData().buildHttpAuthString()}@${EndpointData().nextcloud().full()}/index.php/core/preview?fileId=${file!.id}&x=100&y=-1&a=1', - )); + ) + ); } Future onOpen(LinkableElement link) async {