default to success and hide indicators if not needed
This commit is contained in:
@@ -58,7 +58,7 @@ class Attachment {
|
||||
final AttachmentFile file;
|
||||
|
||||
/// The current upload state of the attachment
|
||||
final UploadState uploadState;
|
||||
UploadState uploadState;
|
||||
|
||||
/// Map of custom channel extraData
|
||||
@JsonKey(includeIfNull: false)
|
||||
@@ -123,10 +123,15 @@ class Attachment {
|
||||
this.actions,
|
||||
this.extraData,
|
||||
this.file,
|
||||
this.uploadState,
|
||||
UploadState uploadState,
|
||||
}) : id = id ?? Uuid().v4(),
|
||||
title = title ?? file?.name,
|
||||
localUri = file?.path != null ? Uri.parse(file.path) : null;
|
||||
localUri = file?.path != null ? Uri.parse(file.path) : null {
|
||||
this.uploadState = uploadState ??
|
||||
((assetUrl != null || imageUrl != null)
|
||||
? UploadState.success()
|
||||
: UploadState.preparing());
|
||||
}
|
||||
|
||||
/// Create a new instance from a json
|
||||
factory Attachment.fromJson(Map<String, dynamic> json) {
|
||||
|
||||
+3
-1
@@ -27,7 +27,9 @@ class AttachmentUploadStateBuilder extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (attachment.uploadState == null) return Offstage();
|
||||
if (message.status == null || message.status == MessageSendingStatus.sent) {
|
||||
return Offstage();
|
||||
}
|
||||
|
||||
final messageId = message.id;
|
||||
final attachmentId = attachment.id;
|
||||
|
||||
@@ -227,6 +227,18 @@ class FileAttachment extends AttachmentWidget {
|
||||
},
|
||||
);
|
||||
|
||||
if (message.status == null || message.status == MessageSendingStatus.sent) {
|
||||
trailingWidget = IconButton(
|
||||
icon: StreamSvgIcon.cloudDownload(color: theme.colorTheme.black),
|
||||
padding: const EdgeInsets.all(8),
|
||||
visualDensity: VisualDensity.compact,
|
||||
splashRadius: 16,
|
||||
onPressed: () {
|
||||
launchURL(context, attachment.assetUrl);
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
return Material(
|
||||
type: MaterialType.transparency,
|
||||
child: trailingWidget,
|
||||
|
||||
Reference in New Issue
Block a user