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