11import  'package:json_annotation/json_annotation.dart' ;
2+ import  'package:flutter/foundation.dart' ;
23
34import  'events.dart' ;
45import  'initial_snapshot.dart' ;
@@ -541,8 +542,15 @@ sealed class Message {
541542  final  String  contentType;
542543
543544  // final List<MessageEditHistory> editHistory; // TODO handle 
544-   @JsonKey (readValue:  MessageEditState ._readFromMessage, fromJson:  Message ._messageEditStateFromJson)
545-   MessageEditState  editState;
545+   @JsonKey (readValue:  MessageEditState ._readFromMessage, fromJson:  _messageEditStateFromJson)
546+   final  ValueNotifier <MessageEditState > _editStateNotifier;
547+ 
548+   MessageEditState  get  editState =>  _editStateNotifier.value;
549+   set  editState (MessageEditState  value) {
550+     _editStateNotifier.value =  value;
551+   }
552+ 
553+   ValueNotifier <MessageEditState > get  editStateNotifier =>  _editStateNotifier;
546554
547555  final  int  id;
548556  bool  isMeMessage;
@@ -572,7 +580,7 @@ sealed class Message {
572580  @JsonKey (name:  'match_subject' )
573581  final  String ?  matchTopic;
574582
575-   static  MessageEditState  _messageEditStateFromJson (Object ?  json) {
583+   static  MessageEditState  _messageEditStateFromJson (dynamic  json) {
576584    // This is a no-op so that [MessageEditState._readFromMessage] 
577585    // can return the enum value directly. 
578586    return  json as  MessageEditState ;
@@ -603,7 +611,7 @@ sealed class Message {
603611    required  this .client,
604612    required  this .content,
605613    required  this .contentType,
606-     required  this . editState,
614+     required  MessageEditState   editState,
607615    required  this .id,
608616    required  this .isMeMessage,
609617    required  this .lastEditTimestamp,
@@ -617,7 +625,7 @@ sealed class Message {
617625    required  this .flags,
618626    required  this .matchContent,
619627    required  this .matchTopic,
620-   });
628+   })  :  _editStateNotifier  =   ValueNotifier (editState) ;
621629
622630  factory  Message .fromJson (Map <String , dynamic > json) {
623631    final  type =  json['type' ] as  String ;
@@ -863,7 +871,9 @@ class DmMessage extends Message {
863871enum  MessageEditState  {
864872  none,
865873  edited,
866-   moved;
874+   moved,
875+   editing,
876+   editError;
867877
868878  /// Whether the given topic move reflected either a "resolve topic" 
869879  /// or "unresolve topic" operation. 
0 commit comments