Implement message deletion functionality: add isDeleted flag to Message model, update deleteMessage method in MessageRepository, and adjust chat display for deleted messages.

This commit is contained in:
Van Leemput Dayron
2025-11-14 00:54:28 +01:00
parent 79cf3f4655
commit 258f10b42b
5 changed files with 42 additions and 60 deletions

View File

@@ -10,6 +10,7 @@ class Message {
final Map<String, String> reactions; // userId -> emoji
final DateTime? editedAt;
final bool isEdited;
final bool isDeleted;
Message({
this.id = '',
@@ -21,6 +22,7 @@ class Message {
this.reactions = const {},
this.editedAt,
this.isEdited = false,
this.isDeleted = false,
});
factory Message.fromFirestore(DocumentSnapshot doc) {
@@ -39,6 +41,7 @@ class Message {
reactions: reactionsData?.map((key, value) => MapEntry(key, value.toString())) ?? {},
editedAt: editedAtTimestamp?.toDate(),
isEdited: data['isEdited'] ?? false,
isDeleted: data['isDeleted'] ?? false,
);
}
@@ -52,6 +55,7 @@ class Message {
'reactions': reactions,
'editedAt': editedAt != null ? Timestamp.fromDate(editedAt!) : null,
'isEdited': isEdited,
'isDeleted': isDeleted,
};
}
@@ -65,6 +69,7 @@ class Message {
Map<String, String>? reactions,
DateTime? editedAt,
bool? isEdited,
bool? isDeleted,
}) {
return Message(
id: id ?? this.id,
@@ -76,6 +81,7 @@ class Message {
reactions: reactions ?? this.reactions,
editedAt: editedAt ?? this.editedAt,
isEdited: isEdited ?? this.isEdited,
isDeleted: isDeleted ?? this.isDeleted,
);
}
}