From 4c38c5064989b4cf63301e6f067166c845cfadf0 Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Wed, 16 Apr 2025 14:29:39 +0300 Subject: [PATCH] Refactor notification handling in SidebarCommunitiesList for improved readability and maintainability. --- .../widgets/sidebar_communities_list.dart | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/common/widgets/sidebar_communities_list.dart b/lib/common/widgets/sidebar_communities_list.dart index acc8471d..191aab25 100644 --- a/lib/common/widgets/sidebar_communities_list.dart +++ b/lib/common/widgets/sidebar_communities_list.dart @@ -16,6 +16,16 @@ class SidebarCommunitiesList extends StatelessWidget { final ScrollController scrollController; final void Function() onScrollToEnd; + bool _onNotification(ScrollEndNotification notification) { + final hasReachedEnd = notification.metrics.extentAfter == 0; + if (hasReachedEnd) { + onScrollToEnd.call(); + return true; + } + + return false; + } + @override Widget build(BuildContext context) { return SingleChildScrollView( @@ -26,17 +36,11 @@ class SidebarCommunitiesList extends StatelessWidget { scrollbarOrientation: ScrollbarOrientation.left, thumbVisibility: true, controller: scrollController, - child: NotificationListener( - onNotification: (notification) { - if (notification is ScrollEndNotification && - notification.metrics.extentAfter == 0) { - onScrollToEnd.call(); - } - return false; - }, + child: NotificationListener( + onNotification: _onNotification, child: ListView.builder( - padding: const EdgeInsetsDirectional.only(start: 16), shrinkWrap: true, + padding: const EdgeInsetsDirectional.only(start: 16), itemCount: communities.length, controller: scrollController, itemBuilder: itemBuilder,