Compare commits

...

5 Commits

Author SHA1 Message Date
Alex
46f348825d reset memory on navigate to photos page 2025-08-04 18:03:49 -05:00
Alex
17e6ca962a merge main 2025-08-04 17:26:54 -05:00
Alex
b05e931ed8 fix: formatting 2025-08-04 17:22:05 -05:00
Brandon Wees
fab63e6b2a Update main_timeline.page.dart 2025-08-04 16:45:26 -05:00
bwees
3ef9e36f38 fix(mobile): disable memory lane when memories are disabled 2025-08-04 14:58:06 -05:00
2 changed files with 12 additions and 1 deletions

View File

@@ -11,6 +11,7 @@ import 'package:immich_mobile/providers/app_settings.provider.dart';
import 'package:immich_mobile/providers/backup/drift_backup.provider.dart';
import 'package:immich_mobile/providers/haptic_feedback.provider.dart';
import 'package:immich_mobile/providers/infrastructure/album.provider.dart';
import 'package:immich_mobile/providers/infrastructure/memory.provider.dart';
import 'package:immich_mobile/providers/search/search_input_focus.provider.dart';
import 'package:immich_mobile/providers/tab.provider.dart';
import 'package:immich_mobile/providers/timeline/multiselect.provider.dart';
@@ -124,6 +125,11 @@ void _onNavigationSelected(TabsRouter router, int index, WidgetRef ref) {
EventStream.shared.emit(const ScrollToTopEvent());
}
// On Photos page navigation, invalidate memories provider to get the most up-to-date data
if (router.activeIndex == 0) {
ref.invalidate(driftMemoryFutureProvider);
}
// On Search page tapped
if (router.activeIndex == 1 && index == 1) {
ref.read(searchInputFocusProvider).requestFocus();

View File

@@ -4,6 +4,7 @@ import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/presentation/widgets/memory/memory_lane.widget.dart';
import 'package:immich_mobile/presentation/widgets/timeline/timeline.widget.dart';
import 'package:immich_mobile/providers/infrastructure/memory.provider.dart';
import 'package:immich_mobile/providers/user.provider.dart';
@RoutePage()
class MainTimelinePage extends ConsumerWidget {
@@ -12,10 +13,14 @@ class MainTimelinePage extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final memoryLaneProvider = ref.watch(driftMemoryFutureProvider);
final memoriesEnabled = ref.watch(currentUserProvider.select((user) => user?.memoryEnabled ?? true));
// TODO: the user preferences need to be updated
// from the server to get live hiding/showing of memory lane
return memoryLaneProvider.maybeWhen(
data: (memories) {
return memories.isEmpty
return memories.isEmpty || !memoriesEnabled
? const Timeline()
: Timeline(
topSliverWidget: SliverToBoxAdapter(