From ed41a97db08653cb95cfaf5ea702f44f5eff9ba1 Mon Sep 17 00:00:00 2001 From: Hank Grabowski Date: Mon, 8 May 2023 11:14:02 -0400 Subject: [PATCH] Fix deleting comment causes empty screen bug --- .../flattened_tree_entry_control.dart | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/controls/timeline/flattened_tree_entry_control.dart b/lib/controls/timeline/flattened_tree_entry_control.dart index bb46d77..b37ab48 100644 --- a/lib/controls/timeline/flattened_tree_entry_control.dart +++ b/lib/controls/timeline/flattened_tree_entry_control.dart @@ -3,6 +3,8 @@ import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:logging/logging.dart'; import 'package:provider/provider.dart'; +import 'package:relatica/utils/snackbar_builder.dart'; +import 'package:result_monad/result_monad.dart'; import '../../globals.dart'; import '../../models/filters/timeline_entry_filter.dart'; @@ -316,11 +318,21 @@ class _StatusControlState extends State { if (confirm == true) { await getIt>() .activeEntry - .andThenAsync( - (tm) async => await tm.deleteEntryById(item.timelineEntry.id)); + .transformAsync( + (tm) async => await tm.deleteEntryById(item.timelineEntry.id)) + .match(onSuccess: (_) { + isProcessing = false; + if (!isPost && context.canPop()) { + context.pop(); + } + }, onError: (e) { + isProcessing = false; + buildSnackbar( + context, + 'Error deleting ${isPost ? "Post" : "Comment"}: $e', + ); + }); } - setState(() { - isProcessing = false; - }); + setState(() {}); } }