1
0
mirror of https://github.com/immich-app/immich.git synced 2025-08-07 23:03:36 +02:00

feat(mobile): drift locked folder page (#19746)

* feat(mobile): drift locked folder page

* feat: include local indicator

* remove join in bucket

* remove status indicator join

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
This commit is contained in:
Daimolean
2025-07-07 12:29:33 +08:00
committed by GitHub
parent 5579554532
commit cf91d9bdfc
6 changed files with 120 additions and 0 deletions

View File

@ -0,0 +1,33 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/widgets.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/presentation/widgets/timeline/timeline.widget.dart';
import 'package:immich_mobile/providers/infrastructure/timeline.provider.dart';
import 'package:immich_mobile/providers/user.provider.dart';
@RoutePage()
class DriftLockedFolderPage extends StatelessWidget {
const DriftLockedFolderPage({super.key});
@override
Widget build(BuildContext context) {
return ProviderScope(
overrides: [
timelineServiceProvider.overrideWith(
(ref) {
final user = ref.watch(currentUserProvider);
if (user == null) {
throw Exception('User must be logged in to access locked folder');
}
final timelineService =
ref.watch(timelineFactoryProvider).lockedFolder(user.id);
ref.onDispose(timelineService.dispose);
return timelineService;
},
),
],
child: const Timeline(),
);
}
}

View File

@ -109,6 +109,11 @@ final _features = [
icon: Icons.archive_outlined,
onTap: (ctx, _) => ctx.pushRoute(const DriftArchiveRoute()),
),
_Feature(
name: 'Locked Folder',
icon: Icons.lock_outline_rounded,
onTap: (ctx, _) => ctx.pushRoute(const DriftLockedFolderRoute()),
),
];
@RoutePage()