1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-29 16:26:27 +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); UpdatedCommentEvent(this.comment);
} }
/// Deleted comment
class DeletedCommentEvent {
final int commentID;
DeletedCommentEvent(this.commentID);
}
class EventsHelper { class EventsHelper {
static EventBus _mgr = EventBus(); static EventBus _mgr = EventBus();

View File

@ -132,6 +132,11 @@ class WebSocketHelper {
UpdatedCommentEvent(CommentsHelper.apiToComment(msg.data))); UpdatedCommentEvent(CommentsHelper.apiToComment(msg.data)));
break; break;
// Deleted comment
case "comment_deleted":
EventsHelper.emit(DeletedCommentEvent(msg.data));
break;
default: default:
throw Exception("Unknown message type: ${msg.title}"); 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!")); showSimpleSnack(context, tr("Could not delete the comment!"));
return; return;
} }
// Remove the comment from the list
setState(() {
widget.post.comments.remove(comment);
});
} }
/// Method called each time the user has selected an option /// 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.listen<NewCommentEvent>((ev) => this._addComment(ev.comment));
this.listenChangeState<UpdatedCommentEvent>( this.listenChangeState<UpdatedCommentEvent>(
(ev) => this._updateComment(ev.comment)); (ev) => this._updateComment(ev.comment));
this.listenChangeState<DeletedCommentEvent>(
(ev) => this._removeComment(ev.commentID));
} }
@override @override
@ -263,4 +265,11 @@ class PostsListWidgetState extends SafeState<PostsListWidget> {
print("$e\n$stack"); 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));
}
} }