From 414d28f78dd9f09b11bbd5f27c5acb90cf306efd Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Tue, 16 Sep 2025 13:08:12 -0400 Subject: [PATCH] chore: don't allow hover of non-selectable activity participants items (#4002) --- .../activity_sessions/activity_participant_indicator.dart | 4 +++- lib/pangea/activity_sessions/activity_participant_list.dart | 1 + lib/pangea/course_plans/course_activity_repo.dart | 1 + lib/pangea/course_plans/course_location_repo.dart | 1 + lib/pangea/course_plans/course_media_repo.dart | 1 + lib/pangea/course_plans/course_plans_repo.dart | 2 ++ lib/pangea/course_plans/course_topic_repo.dart | 1 + 7 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/pangea/activity_sessions/activity_participant_indicator.dart b/lib/pangea/activity_sessions/activity_participant_indicator.dart index 202cee416..1a8f6ba84 100644 --- a/lib/pangea/activity_sessions/activity_participant_indicator.dart +++ b/lib/pangea/activity_sessions/activity_participant_indicator.dart @@ -16,6 +16,7 @@ class ActivityParticipantIndicator extends StatelessWidget { final VoidCallback? onTap; final bool selected; + final bool selectable; final double opacity; final EdgeInsetsGeometry? padding; @@ -27,6 +28,7 @@ class ActivityParticipantIndicator extends StatelessWidget { this.user, this.userId, this.selected = false, + this.selectable = true, this.onTap, this.opacity = 1.0, this.padding, @@ -58,7 +60,7 @@ class ActivityParticipantIndicator extends StatelessWidget { ), decoration: BoxDecoration( borderRadius: borderRadius ?? BorderRadius.circular(8.0), - color: hovered || selected + color: (hovered || selected) && selectable ? theme.colorScheme.surfaceContainerHighest : Colors.transparent, ), diff --git a/lib/pangea/activity_sessions/activity_participant_list.dart b/lib/pangea/activity_sessions/activity_participant_list.dart index a5595fe83..fdb12cd25 100644 --- a/lib/pangea/activity_sessions/activity_participant_list.dart +++ b/lib/pangea/activity_sessions/activity_participant_list.dart @@ -85,6 +85,7 @@ class ActivityParticipantList extends StatelessWidget { ? () => onTap!(availableRole.id) : null, selected: selected, + selectable: selectable, ); }).toList(), ), diff --git a/lib/pangea/course_plans/course_activity_repo.dart b/lib/pangea/course_plans/course_activity_repo.dart index e54c613ec..228c7d597 100644 --- a/lib/pangea/course_plans/course_activity_repo.dart +++ b/lib/pangea/course_plans/course_activity_repo.dart @@ -43,6 +43,7 @@ class CourseActivityRepo { final activities = []; final toFetch = []; + await _storage.initStorage; for (final uuid in uuids) { final cached = _getCached(uuid); if (cached != null) { diff --git a/lib/pangea/course_plans/course_location_repo.dart b/lib/pangea/course_plans/course_location_repo.dart index f61f6ec69..68353e76e 100644 --- a/lib/pangea/course_plans/course_location_repo.dart +++ b/lib/pangea/course_plans/course_location_repo.dart @@ -47,6 +47,7 @@ class CourseLocationRepo { final locations = []; final toFetch = []; + await _storage.initStorage; for (final uuid in uuids) { final cached = _getCached(uuid); if (cached != null) { diff --git a/lib/pangea/course_plans/course_media_repo.dart b/lib/pangea/course_plans/course_media_repo.dart index 5c1455808..cef4f382a 100644 --- a/lib/pangea/course_plans/course_media_repo.dart +++ b/lib/pangea/course_plans/course_media_repo.dart @@ -27,6 +27,7 @@ class CourseMediaRepo { final urls = []; final toFetch = []; + await _storage.initStorage; for (final uuid in uuids) { final cached = _getCached(uuid); if (cached != null) { diff --git a/lib/pangea/course_plans/course_plans_repo.dart b/lib/pangea/course_plans/course_plans_repo.dart index 2baf61b6a..e3610141a 100644 --- a/lib/pangea/course_plans/course_plans_repo.dart +++ b/lib/pangea/course_plans/course_plans_repo.dart @@ -94,6 +94,7 @@ class CoursePlansRepo { } static Future get(String id) async { + await _courseStorage.initStorage; final cached = _getCached(id); if (cached != null) { return cached; @@ -131,6 +132,7 @@ class CoursePlansRepo { } static Future> search({CourseFilter? filter}) async { + await _courseStorage.initStorage; final cached = _getCachedSearchResults(filter ?? CourseFilter()); if (cached != null && cached.isNotEmpty) { return cached; diff --git a/lib/pangea/course_plans/course_topic_repo.dart b/lib/pangea/course_plans/course_topic_repo.dart index d7b5262ab..e7c17a044 100644 --- a/lib/pangea/course_plans/course_topic_repo.dart +++ b/lib/pangea/course_plans/course_topic_repo.dart @@ -32,6 +32,7 @@ class CourseTopicRepo { final topics = []; final toFetch = []; + await _storage.initStorage; for (final uuid in uuids) { final cached = _getCached(uuid); if (cached != null) {