diff --git a/lib/features/bottom_scroll_sheet/data_list.dart b/lib/features/bottom_scroll_sheet/data_list.dart index d62d4a4..4203da4 100644 --- a/lib/features/bottom_scroll_sheet/data_list.dart +++ b/lib/features/bottom_scroll_sheet/data_list.dart @@ -37,8 +37,10 @@ class _DataSliverList extends HookConsumerWidget { useInitialActiveId( context.initialActiveItemId(), ref.watch(context.activeMarkerController().notifier), + ref.watch(context.mapController().notifier).zoomOnMarker, items, ); + if (items.isEmpty) return _EmptyDataList(); final previousLength = usePrevious(items.length); final skipAnimationAnyway = diff --git a/lib/features/bottom_scroll_sheet/hooks/use_initial_active_id.dart b/lib/features/bottom_scroll_sheet/hooks/use_initial_active_id.dart index 1b66a2a..08f5565 100644 --- a/lib/features/bottom_scroll_sheet/hooks/use_initial_active_id.dart +++ b/lib/features/bottom_scroll_sheet/hooks/use_initial_active_id.dart @@ -1,5 +1,6 @@ import "package:collection/collection.dart"; import "package:fast_immutable_collections/fast_immutable_collections.dart"; +import "package:flutter/material.dart"; import "package:flutter_hooks/flutter_hooks.dart"; import "../../map_view/controllers/active_map_marker_cntrl.dart"; @@ -9,6 +10,7 @@ import "../../map_view/controllers/controllers_set.dart"; void useInitialActiveId( String? initialActiveId, ActiveMarkerController activeMarkerController, + void Function(T item) zoomOnMarker, IList items, ) { if (initialActiveId == null) return; @@ -17,9 +19,8 @@ void useInitialActiveId( final activeItem = items.firstWhereOrNull((item) => item.id == initialActiveId); if (activeItem != null) { - Future.microtask( - () => activeMarkerController.selectItem(activeItem), - ); + Future.microtask(() => activeMarkerController.selectItem(activeItem)); + Future.delayed(Durations.short1, () => zoomOnMarker(activeItem)); } return null; }, diff --git a/lib/features/science_clubs_filters/hooks/use_initial_filter_ids.dart b/lib/features/science_clubs_filters/hooks/use_initial_filter_ids.dart index 0bd3a7d..0430836 100644 --- a/lib/features/science_clubs_filters/hooks/use_initial_filter_ids.dart +++ b/lib/features/science_clubs_filters/hooks/use_initial_filter_ids.dart @@ -3,6 +3,7 @@ import "package:flutter_hooks/flutter_hooks.dart"; import "../filters_controller.dart"; +// use this hook to load initial set of filters when the widget is first built void useInitialFilterIds( IList? ids, Future> Function() itemsCallback, diff --git a/lib/features/science_clubs_view/science_clubs_view.dart b/lib/features/science_clubs_view/science_clubs_view.dart index a70e009..1769cba 100644 --- a/lib/features/science_clubs_view/science_clubs_view.dart +++ b/lib/features/science_clubs_view/science_clubs_view.dart @@ -7,6 +7,9 @@ import "../../utils/context_extensions.dart"; import "../../widgets/search_box_app_bar.dart"; import "../departments_view/repository/departments_repository.dart"; import "../science_clubs_filters/filters_controller.dart"; +import "../science_clubs_filters/hooks/use_initial_filter_ids.dart"; +import "../science_clubs_filters/model/sci_club_type.dart"; +import "../science_clubs_filters/repository/tags_repository.dart"; import "../science_clubs_filters/widgets/filters_fab.dart"; import "controllers/science_clubs_view_controller.dart"; import "widgets/science_clubs_list.dart";