show sizes for message images

This commit is contained in:
Henry Hiles 2026-11-09 12:46:08 -05:00
commit a5711d2ded
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
2 changed files with 17 additions and 0 deletions

View file

@ -2,6 +2,7 @@ import "package:material_ui/material_ui.dart";
import "package:hooks_riverpod/hooks_riverpod.dart"; import "package:hooks_riverpod/hooks_riverpod.dart";
import "package:m3e_buttons/m3e_buttons.dart"; import "package:m3e_buttons/m3e_buttons.dart";
import "package:nexus/helpers/extensions/save_attachment.dart"; import "package:nexus/helpers/extensions/save_attachment.dart";
import "package:nexus/helpers/extensions/size_to_string.dart";
import "package:nexus/helpers/mxc_image.dart"; import "package:nexus/helpers/mxc_image.dart";
import "package:nexus/models/requests/download_media.dart"; import "package:nexus/models/requests/download_media.dart";
import "package:nexus/widgets/error_dialog.dart"; import "package:nexus/widgets/error_dialog.dart";
@ -12,6 +13,7 @@ final class const ExpandableImage(
/// If set, a download button is shown, suggesting this filename /// If set, a download button is shown, suggesting this filename
final String? downloadFilename, final String? downloadFilename,
final int? size,
super.key, super.key,
}) extends ConsumerWidget { }) extends ConsumerWidget {
@override @override
@ -38,6 +40,20 @@ final class const ExpandableImage(
), ),
), ),
), ),
if (size != null)
Align(
alignment: .topLeft,
child: Padding(
padding: .all(32),
child: Card(
margin: .zero,
child: Padding(
padding: .symmetric(horizontal: 12, vertical: 8),
child: Text(size!.sizeAsString),
),
),
),
),
Align( Align(
alignment: .topRight, alignment: .topRight,
child: Padding( child: Padding(

View file

@ -20,6 +20,7 @@ final class const MessageImage(
return ExpandableImage( return ExpandableImage(
request, request,
downloadFilename: filename, downloadFilename: filename,
size: info?.size,
child: ClipRRect( child: ClipRRect(
borderRadius: .all(.circular(8)), borderRadius: .all(.circular(8)),
child: AspectRatio( child: AspectRatio(