Skip to content

Commit 367e82e

Browse files
Khader-1gnprice
authored andcommitted
actions [nfc]: Port handleAllMessagesReadSuccess to markNarrowAsRead
1 parent 2a734c7 commit 367e82e

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

lib/widgets/actions.dart

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ import '../model/narrow.dart';
1616
import 'dialog.dart';
1717
import 'store.dart';
1818

19-
/// Returns true if mark as read process is completed successfully.
20-
Future<bool> markNarrowAsRead(
19+
Future<void> markNarrowAsRead(
2120
BuildContext context,
2221
Narrow narrow,
2322
bool useLegacy, // TODO(server-6)
@@ -27,7 +26,7 @@ Future<bool> markNarrowAsRead(
2726
final connection = store.connection;
2827
if (useLegacy) {
2928
await _legacyMarkNarrowAsRead(context, narrow);
30-
return true;
29+
return;
3130
}
3231

3332
// Compare web's `mark_all_as_read` in web/src/unread_ops.js
@@ -69,7 +68,7 @@ Future<bool> markNarrowAsRead(
6968
flag: MessageFlag.read);
7069
if (!context.mounted) {
7170
scaffoldMessenger.clearSnackBars();
72-
return false;
71+
return;
7372
}
7473
responseCount++;
7574
updatedCount += result.updatedCount;
@@ -84,7 +83,7 @@ Future<bool> markNarrowAsRead(
8483
..showSnackBar(SnackBar(behavior: SnackBarBehavior.floating,
8584
content: Text(zulipLocalizations.markAsReadComplete(updatedCount))));
8685
}
87-
return true;
86+
break;
8887
}
8988

9089
if (result.lastProcessedId == null) {
@@ -94,7 +93,7 @@ Future<bool> markNarrowAsRead(
9493
showErrorDialog(context: context,
9594
title: zulipLocalizations.errorMarkAsReadFailedTitle,
9695
message: zulipLocalizations.errorInvalidResponse);
97-
return false;
96+
return;
9897
}
9998
anchor = NumericAnchor(result.lastProcessedId!);
10099

@@ -116,12 +115,16 @@ Future<bool> markNarrowAsRead(
116115
content: Text(zulipLocalizations.markAsReadInProgress)));
117116
}
118117
} catch (e) {
119-
if (!context.mounted) return false;
118+
if (!context.mounted) return;
120119
final zulipLocalizations = ZulipLocalizations.of(context);
121120
showErrorDialog(context: context,
122121
title: zulipLocalizations.errorMarkAsReadFailedTitle,
123122
message: e.toString()); // TODO(#741): extract user-facing message better
124-
return false;
123+
return;
124+
}
125+
if (!context.mounted) return;
126+
if (narrow is CombinedFeedNarrow) {
127+
PerAccountStoreWidget.of(context).unreads.handleAllMessagesReadSuccess();
125128
}
126129
}
127130

lib/widgets/message_list.dart

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -713,14 +713,8 @@ class _MarkAsReadWidgetState extends State<MarkAsReadWidget> {
713713
final connection = store.connection;
714714
final useLegacy = connection.zulipFeatureLevel! < 155;
715715
setState(() => _loading = true);
716-
717-
final didPass = await markNarrowAsRead(context, widget.narrow, useLegacy);
716+
await markNarrowAsRead(context, widget.narrow, useLegacy);
718717
setState(() => _loading = false);
719-
if (!didPass) return;
720-
if (!context.mounted) return;
721-
if (widget.narrow is CombinedFeedNarrow && !useLegacy) {
722-
PerAccountStoreWidget.of(context).unreads.handleAllMessagesReadSuccess();
723-
}
724718
}
725719

726720
@override

test/widgets/actions_test.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,7 @@ void main() {
151151
await tester.pump(Duration.zero);
152152
await tester.pumpAndSettle();
153153
check(store.unreads.oldUnreadsMissing).isFalse();
154-
}, skip: true, // TODO move this functionality inside markNarrowAsRead
155-
);
154+
});
156155

157156
testWidgets('on invalid response', (tester) async {
158157
final zulipLocalizations = GlobalLocalizations.zulipLocalizations;

0 commit comments

Comments
 (0)