1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-25 22:39:22 +00:00

Handles comment deletion events

This commit is contained in:
Pierre HUBERT 2020-04-18 16:57:00 +02:00
parent 6b08b62832
commit dab4e7bde1
4 changed files with 22 additions and 5 deletions

View File

@ -38,6 +38,14 @@ class UpdatedCommentEvent {
UpdatedCommentEvent(this.comment);
}
/// Deleted comment
class DeletedCommentEvent {
final int commentID;
DeletedCommentEvent(this.commentID);
}
class EventsHelper {
static EventBus _mgr = EventBus();

View File

@ -132,6 +132,11 @@ class WebSocketHelper {
UpdatedCommentEvent(CommentsHelper.apiToComment(msg.data)));
break;
// Deleted comment
case "comment_deleted":
EventsHelper.emit(DeletedCommentEvent(msg.data));
break;
default:
throw Exception("Unknown message type: ${msg.title}");
}

View File

@ -523,11 +523,6 @@ class _PostTileState extends State<PostTile> {
showSimpleSnack(context, tr("Could not delete the comment!"));
return;
}
// Remove the comment from the list
setState(() {
widget.post.comments.remove(comment);
});
}
/// Method called each time the user has selected an option

View File

@ -72,6 +72,8 @@ class PostsListWidgetState extends SafeState<PostsListWidget> {
this.listen<NewCommentEvent>((ev) => this._addComment(ev.comment));
this.listenChangeState<UpdatedCommentEvent>(
(ev) => this._updateComment(ev.comment));
this.listenChangeState<DeletedCommentEvent>(
(ev) => this._removeComment(ev.commentID));
}
@override
@ -263,4 +265,11 @@ class PostsListWidgetState extends SafeState<PostsListWidget> {
print("$e\n$stack");
}
}
/// Remove a comment from the list
void _removeComment(int commentID) {
if (_list == null) return;
_list.forEach((p) => p.comments.removeWhere((c) => c.id == commentID));
}
}