🐛 Fix notification mark all as read issue

This commit is contained in:
LittleSheep 2025-01-01 11:50:06 +08:00
parent aaa0a562b4
commit fa978a7cd1

View File

@ -82,24 +82,15 @@ class _NotificationScreenState extends State<NotificationScreen> {
if (!mounted) return; if (!mounted) return;
setState(() => _isSubmitting = true); setState(() => _isSubmitting = true);
List<int> markList = List.empty(growable: true);
for (final element in _notifications) {
if (element.id <= 0) continue;
if (element.readAt != null) continue;
markList.add(element.id);
}
try { try {
final sn = context.read<SnNetworkProvider>(); final sn = context.read<SnNetworkProvider>();
await sn.client.put('/cgi/id/notifications/read', data: { final resp = await sn.client.put('/cgi/id/notifications/read/all');
'messages': markList,
});
_notifications.clear(); _notifications.clear();
_fetchNotifications(); _fetchNotifications();
if (!mounted) return; if (!mounted) return;
context.showSnackbar( context.showSnackbar(
'notificationMarkAllReadPrompt'.plural(markList.length), 'notificationMarkAllReadPrompt'.plural(resp.data['count']),
); );
} catch (err) { } catch (err) {
if (!mounted) return; if (!mounted) return;