mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-10-30 17:54:57 +00:00 
			
		
		
		
	Handles comment deletion events
This commit is contained in:
		| @@ -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(); | ||||
|  | ||||
|   | ||||
| @@ -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}"); | ||||
|     } | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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)); | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user