diff --git a/packages/stream_chat/CHANGELOG.md b/packages/stream_chat/CHANGELOG.md index 04a47600..cd32c621 100644 --- a/packages/stream_chat/CHANGELOG.md +++ b/packages/stream_chat/CHANGELOG.md @@ -3,6 +3,7 @@ 🐞 Fixed - Fixed streamWatchers. Before it was always new, now it is possible to follow the watchers of a channel. +- Make `Message.i18n` field read-only. 🔄 Changed diff --git a/packages/stream_chat/lib/src/core/models/message.dart b/packages/stream_chat/lib/src/core/models/message.dart index 017bb06f..3645b00a 100644 --- a/packages/stream_chat/lib/src/core/models/message.dart +++ b/packages/stream_chat/lib/src/core/models/message.dart @@ -217,7 +217,7 @@ class Message extends Equatable { bool get isEphemeral => type == 'ephemeral'; /// A Map of translations. - @JsonKey(includeIfNull: false) + @JsonKey(includeIfNull: false, toJson: Serializer.readOnly) final Map? i18n; /// Known top level fields. diff --git a/packages/stream_chat/lib/src/core/models/message.g.dart b/packages/stream_chat/lib/src/core/models/message.g.dart index e2ff89b4..695e6332 100644 --- a/packages/stream_chat/lib/src/core/models/message.g.dart +++ b/packages/stream_chat/lib/src/core/models/message.g.dart @@ -108,6 +108,6 @@ Map _$MessageToJson(Message instance) { val['pin_expires'] = instance.pinExpires?.toIso8601String(); val['pinned_by'] = readonly(instance.pinnedBy); val['extra_data'] = instance.extraData; - writeNotNull('i18n', instance.i18n); + writeNotNull('i18n', readonly(instance.i18n)); return val; } diff --git a/packages/stream_chat/test/src/core/api/message_api_test.dart b/packages/stream_chat/test/src/core/api/message_api_test.dart index ed7fefd6..8ae82e94 100644 --- a/packages/stream_chat/test/src/core/api/message_api_test.dart +++ b/packages/stream_chat/test/src/core/api/message_api_test.dart @@ -394,7 +394,12 @@ void main() { path, data: {'language': language}, )).thenAnswer((_) async => successResponse(path, data: { - 'message': translatedMessage.toJson(), + 'message': { + ...translatedMessage.toJson(), + 'i18n': { + language: translatedMessageText, + }, + }, })); final res = await messageApi.translateMessage(messageId, language);