From 7db0adbb3425a9c53f70b30b2609d75bfcae847a Mon Sep 17 00:00:00 2001 From: Alex Demchenko Date: Tue, 14 Jun 2022 22:42:48 +0200 Subject: [PATCH] Fix partial message constructors --- CHANGELOG.md | 4 +++ lib/src/messages/custom_message.dart | 38 +++++++++++++-------- lib/src/messages/file_message.dart | 49 +++++++++++++++++----------- lib/src/messages/image_message.dart | 48 ++++++++++++++++----------- lib/src/messages/text_message.dart | 42 +++++++++++++++--------- pubspec.yaml | 2 +- 6 files changed, 114 insertions(+), 69 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcfe4cf..da30594 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 3.4.2 + +- Fix partial message constructors + ## 3.4.1 - Downgrade meta to support flutter test diff --git a/lib/src/messages/custom_message.dart b/lib/src/messages/custom_message.dart index 2cfea30..822a491 100644 --- a/lib/src/messages/custom_message.dart +++ b/lib/src/messages/custom_message.dart @@ -42,21 +42,31 @@ abstract class CustomMessage extends Message { }) = _CustomMessage; /// Creates a full custom message from a partial one. - CustomMessage.fromPartial({ - required super.author, - super.createdAt, - required super.id, + factory CustomMessage.fromPartial({ + required User author, + int? createdAt, + required String id, required PartialCustom partialCustom, - super.remoteId, - super.roomId, - super.showStatus, - super.status, - super.updatedAt, - }) : super( - metadata: partialCustom.metadata, - repliedMessage: partialCustom.repliedMessage, - type: MessageType.custom, - ); + String? remoteId, + String? roomId, + bool? showStatus, + Status? status, + int? updatedAt, + }) { + return _CustomMessage( + author: author, + createdAt: createdAt, + id: id, + metadata: partialCustom.metadata, + remoteId: remoteId, + repliedMessage: partialCustom.repliedMessage, + roomId: roomId, + showStatus: showStatus, + status: status, + type: MessageType.custom, + updatedAt: updatedAt, + ); + } /// Creates a custom message from a map (decoded JSON). factory CustomMessage.fromJson(Map json) => diff --git a/lib/src/messages/file_message.dart b/lib/src/messages/file_message.dart index 4532cad..b5006c6 100644 --- a/lib/src/messages/file_message.dart +++ b/lib/src/messages/file_message.dart @@ -51,26 +51,37 @@ abstract class FileMessage extends Message { }) = _FileMessage; /// Creates a full file message from a partial one. - FileMessage.fromPartial({ - required super.author, - super.createdAt, - required super.id, - this.isLoading, + factory FileMessage.fromPartial({ + required User author, + int? createdAt, + required String id, + bool? isLoading, required PartialFile partialFile, - super.remoteId, - super.roomId, - super.showStatus, - super.status, - super.updatedAt, - }) : mimeType = partialFile.mimeType, - name = partialFile.name, - size = partialFile.size, - uri = partialFile.uri, - super( - metadata: partialFile.metadata, - repliedMessage: partialFile.repliedMessage, - type: MessageType.file, - ); + String? remoteId, + String? roomId, + bool? showStatus, + Status? status, + int? updatedAt, + }) { + return _FileMessage( + author: author, + createdAt: createdAt, + id: id, + isLoading: isLoading, + metadata: partialFile.metadata, + mimeType: partialFile.mimeType, + name: partialFile.name, + remoteId: remoteId, + repliedMessage: partialFile.repliedMessage, + roomId: roomId, + showStatus: showStatus, + size: partialFile.size, + status: status, + type: MessageType.file, + updatedAt: updatedAt, + uri: partialFile.uri, + ); + } /// Creates a file message from a map (decoded JSON). factory FileMessage.fromJson(Map json) => diff --git a/lib/src/messages/image_message.dart b/lib/src/messages/image_message.dart index e4f6220..73fd95a 100644 --- a/lib/src/messages/image_message.dart +++ b/lib/src/messages/image_message.dart @@ -51,26 +51,36 @@ abstract class ImageMessage extends Message { }) = _ImageMessage; /// Creates a full image message from a partial one. - ImageMessage.fromPartial({ - required super.author, - super.createdAt, - required super.id, + factory ImageMessage.fromPartial({ + required User author, + int? createdAt, + required String id, required PartialImage partialImage, - super.remoteId, - super.roomId, - super.showStatus, - super.status, - super.updatedAt, - }) : height = partialImage.height, - name = partialImage.name, - size = partialImage.size, - uri = partialImage.uri, - width = partialImage.width, - super( - metadata: partialImage.metadata, - repliedMessage: partialImage.repliedMessage, - type: MessageType.image, - ); + String? remoteId, + String? roomId, + bool? showStatus, + Status? status, + int? updatedAt, + }) { + return _ImageMessage( + author: author, + createdAt: createdAt, + height: partialImage.height, + id: id, + metadata: partialImage.metadata, + name: partialImage.name, + remoteId: remoteId, + repliedMessage: partialImage.repliedMessage, + roomId: roomId, + showStatus: showStatus, + size: partialImage.size, + status: status, + type: MessageType.image, + updatedAt: updatedAt, + uri: partialImage.uri, + width: partialImage.width, + ); + } /// Creates an image message from a map (decoded JSON). factory ImageMessage.fromJson(Map json) => diff --git a/lib/src/messages/text_message.dart b/lib/src/messages/text_message.dart index 4ced2c8..9da9f97 100644 --- a/lib/src/messages/text_message.dart +++ b/lib/src/messages/text_message.dart @@ -46,23 +46,33 @@ abstract class TextMessage extends Message { }) = _TextMessage; /// Creates a full text message from a partial one. - TextMessage.fromPartial({ - required super.author, - super.createdAt, - required super.id, + factory TextMessage.fromPartial({ + required User author, + int? createdAt, + required String id, required PartialText partialText, - super.remoteId, - super.roomId, - super.showStatus, - super.status, - super.updatedAt, - }) : previewData = partialText.previewData, - text = partialText.text, - super( - metadata: partialText.metadata, - repliedMessage: partialText.repliedMessage, - type: MessageType.text, - ); + String? remoteId, + String? roomId, + bool? showStatus, + Status? status, + int? updatedAt, + }) { + return _TextMessage( + author: author, + createdAt: createdAt, + id: id, + metadata: partialText.metadata, + previewData: partialText.previewData, + remoteId: remoteId, + repliedMessage: partialText.repliedMessage, + roomId: roomId, + showStatus: showStatus, + status: status, + text: partialText.text, + type: MessageType.text, + updatedAt: updatedAt, + ); + } /// Creates a text message from a map (decoded JSON). factory TextMessage.fromJson(Map json) => diff --git a/pubspec.yaml b/pubspec.yaml index f02adc0..645fff6 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -2,7 +2,7 @@ name: flutter_chat_types description: > Utility library for the flutter_chat_ui and flutter_firebase_chat_core libraries which contains shared type declarations. -version: 3.4.1 +version: 3.4.2 homepage: https://flyer.chat repository: https://github.com/flyerhq/flutter_chat_types