From 808a4b0a7af009760c337c82f8d6522d6bc03090 Mon Sep 17 00:00:00 2001 From: poppingmoon <63451158+poppingmoon@users.noreply.github.com> Date: Tue, 1 Apr 2025 19:32:01 +0900 Subject: [PATCH 1/2] fix: hide duplicate notes from streaming --- lib/view/widget/timeline_list_view.dart | 6 ++++-- lib/view/widget/timeline_note.dart | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/view/widget/timeline_list_view.dart b/lib/view/widget/timeline_list_view.dart index aaa8fedfc..cc7af4f48 100644 --- a/lib/view/widget/timeline_list_view.dart +++ b/lib/view/widget/timeline_list_view.dart @@ -133,8 +133,9 @@ class TimelineListView extends HookConsumerWidget { final previousNotes = ref.watch( timelineNotesNotifierProvider(tabSettings, untilId: centerId), ); - final hasPreviousNote = - previousNotes.valueOrNull?.items.isNotEmpty ?? false; + final partialPreviousNoteIds = + previousNotes.valueOrNull?.items.take(5).map((note) => note.id) ?? []; + final hasPreviousNote = partialPreviousNoteIds.isNotEmpty; final (showGap, showPopup, vibrateOnNote) = ref.watch( generalSettingsNotifierProvider.select( (settings) => ( @@ -401,6 +402,7 @@ class TimelineListView extends HookConsumerWidget { ? const Radius.circular(8.0) : Radius.zero, ), + hide: partialPreviousNoteIds.contains(note.id), ), ), ); diff --git a/lib/view/widget/timeline_note.dart b/lib/view/widget/timeline_note.dart index 2bbb9ef71..b9ed4fb49 100644 --- a/lib/view/widget/timeline_note.dart +++ b/lib/view/widget/timeline_note.dart @@ -26,6 +26,7 @@ class TimelineNote extends HookConsumerWidget { this.focusPostForm, this.margin = EdgeInsets.zero, this.borderRadius, + this.hide = false, }); final TabSettings tabSettings; @@ -33,6 +34,7 @@ class TimelineNote extends HookConsumerWidget { final void Function()? focusPostForm; final EdgeInsetsGeometry margin; final BorderRadiusGeometry? borderRadius; + final bool hide; @override Widget build(BuildContext context, WidgetRef ref) { @@ -56,7 +58,7 @@ class TimelineNote extends HookConsumerWidget { ), ); } - if (tabSettings.withFiles && appearNote.fileIds.isEmpty) { + if ((tabSettings.withFiles && appearNote.fileIds.isEmpty) || hide) { return HardMutedNoteWidget(borderRadius: borderRadius); } if (note.isRenote) { From c76d2751513ae79c52aac91648a0bc068afd6c2d Mon Sep 17 00:00:00 2001 From: poppingmoon <63451158+poppingmoon@users.noreply.github.com> Date: Tue, 1 Apr 2025 19:32:33 +0900 Subject: [PATCH 2/2] fix: show dividers for new notifications --- lib/view/widget/notifications_list_view.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/view/widget/notifications_list_view.dart b/lib/view/widget/notifications_list_view.dart index e43de4f89..a16fd3e54 100644 --- a/lib/view/widget/notifications_list_view.dart +++ b/lib/view/widget/notifications_list_view.dart @@ -177,7 +177,7 @@ class NotificationsListView extends HookConsumerWidget { child: Container( margin: const EdgeInsets.symmetric(horizontal: 8.0), width: maxContentWidth, - child: const Divider(height: 0.0), + child: const Divider(height: 1.0), ), ), itemCount: nextNotifications.value.length,