Skip to content

Commit

Permalink
feat(map-view): zoom on marker on first build
Browse files Browse the repository at this point in the history
  • Loading branch information
simon-the-shark committed Sep 23, 2024
1 parent a041a74 commit d2b2c26
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 3 deletions.
2 changes: 2 additions & 0 deletions lib/features/bottom_scroll_sheet/data_list.dart
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,10 @@ class _DataSliverList<T extends GoogleNavigable> extends HookConsumerWidget {
useInitialActiveId(
context.initialActiveItemId<T>(),
ref.watch(context.activeMarkerController<T>().notifier),
ref.watch(context.mapController<T>().notifier).zoomOnMarker,
items,
);

if (items.isEmpty) return _EmptyDataList<T>();
final previousLength = usePrevious(items.length);
final skipAnimationAnyway =
Expand Down
Original file line number Diff line number Diff line change
@@ -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";
Expand All @@ -9,6 +10,7 @@ import "../../map_view/controllers/controllers_set.dart";
void useInitialActiveId<T extends GoogleNavigable>(
String? initialActiveId,
ActiveMarkerController<T> activeMarkerController,
void Function(T item) zoomOnMarker,
IList<T> items,
) {
if (initialActiveId == null) return;
Expand All @@ -17,9 +19,8 @@ void useInitialActiveId<T extends GoogleNavigable>(
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;
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<T>(
IList<String>? ids,
Future<IList<T>> Function() itemsCallback,
Expand Down
3 changes: 3 additions & 0 deletions lib/features/science_clubs_view/science_clubs_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand Down

0 comments on commit d2b2c26

Please sign in to comment.