centered file preview, made text copyable

This commit is contained in:
2025-06-24 15:09:37 +02:00
parent 8000475c1f
commit f3de0bc165
2 changed files with 24 additions and 18 deletions

View File

@ -206,7 +206,7 @@ class _ChatBubbleState extends State<ChatBubble> with SingleTickerProviderStateM
), ),
), ),
Visibility( Visibility(
visible: !message.containsFile, visible: widget.bubbleData.message != '{file}',
child: ListTile( child: ListTile(
leading: const Icon(Icons.copy), leading: const Icon(Icons.copy),
title: const Text('Nachricht kopieren'), title: const Text('Nachricht kopieren'),

View File

@ -39,23 +39,29 @@ class ChatMessage {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
CachedNetworkImage( Row(
errorWidget: (context, url, error) => Row( mainAxisSize: MainAxisSize.max,
mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center, children: [
children: [ CachedNetworkImage(
const Icon(Icons.file_open_outlined, size: 35), errorWidget: (context, url, error) => Row(
const SizedBox(width: 10), mainAxisSize: MainAxisSize.min,
Flexible(child: Text(file!.name, maxLines: 2, overflow: TextOverflow.ellipsis, style: const TextStyle(fontWeight: FontWeight.bold))), crossAxisAlignment: CrossAxisAlignment.center,
const SizedBox(width: 10), children: [
], const Icon(Icons.file_open_outlined, size: 35),
), const SizedBox(width: 10),
alignment: Alignment.center, Flexible(child: Text(file!.name, maxLines: 2, overflow: TextOverflow.ellipsis, style: const TextStyle(fontWeight: FontWeight.bold))),
placeholder: (context, url) => const Padding(padding: EdgeInsets.all(15), child: SizedBox(width: 50, child: LinearProgressIndicator())), const SizedBox(width: 10),
fadeInDuration: Duration.zero, ],
fadeOutDuration: Duration.zero, ),
errorListener: (value) {}, alignment: Alignment.center,
imageUrl: 'https://${AccountData().buildHttpAuthString()}@${EndpointData().nextcloud().full()}/index.php/core/preview?fileId=${file!.id}&x=100&y=-1&a=1', 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), SizedBox(height: 5),
contentWidget contentWidget