@@ -258,7 +258,7 @@ sealed class Message {
258
258
final bool isMeMessage;
259
259
final int ? lastEditTimestamp;
260
260
261
- // final List<Reaction> reactions; // TODO handle
261
+ final List <Reaction > reactions;
262
262
final int recipientId;
263
263
final String senderEmail;
264
264
final String senderFullName;
@@ -283,6 +283,7 @@ sealed class Message {
283
283
required this .id,
284
284
required this .isMeMessage,
285
285
this .lastEditTimestamp,
286
+ required this .reactions,
286
287
required this .recipientId,
287
288
required this .senderEmail,
288
289
required this .senderFullName,
@@ -322,6 +323,7 @@ class StreamMessage extends Message {
322
323
required super .id,
323
324
required super .isMeMessage,
324
325
super .lastEditTimestamp,
326
+ required super .reactions,
325
327
required super .recipientId,
326
328
required super .senderEmail,
327
329
required super .senderFullName,
@@ -424,6 +426,7 @@ class DmMessage extends Message {
424
426
required super .id,
425
427
required super .isMeMessage,
426
428
super .lastEditTimestamp,
429
+ required super .reactions,
427
430
required super .recipientId,
428
431
required super .senderEmail,
429
432
required super .senderFullName,
@@ -443,3 +446,32 @@ class DmMessage extends Message {
443
446
@override
444
447
Map <String , dynamic > toJson () => _$DmMessageToJson (this );
445
448
}
449
+
450
+ @JsonSerializable (fieldRename: FieldRename .snake)
451
+ class Reaction {
452
+ final String emojiName;
453
+ final String emojiCode;
454
+ final ReactionType reactionType;
455
+ final int userId;
456
+ // final Map<String, dynamic> user // deprecated; ignore
457
+
458
+ Reaction ({
459
+ required this .emojiName,
460
+ required this .emojiCode,
461
+ required this .reactionType,
462
+ required this .userId,
463
+ });
464
+
465
+ factory Reaction .fromJson (Map <String , dynamic > json) =>
466
+ _$ReactionFromJson (json);
467
+
468
+ Map <String , dynamic > toJson () => _$ReactionToJson (this );
469
+ }
470
+
471
+ /// As in [Reaction.reactionType] .
472
+ @JsonEnum (fieldRename: FieldRename .snake)
473
+ enum ReactionType {
474
+ unicodeEmoji,
475
+ realmEmoji,
476
+ zulipExtraEmoji;
477
+ }
0 commit comments