diff --git a/mobile/lib/presentation/pages/dev/drift_partner_detail.page.dart b/mobile/lib/presentation/pages/dev/drift_partner_detail.page.dart new file mode 100644 index 0000000000..4b62387cb4 --- /dev/null +++ b/mobile/lib/presentation/pages/dev/drift_partner_detail.page.dart @@ -0,0 +1,29 @@ +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'; + +@RoutePage() +class DriftPartnerDetailPage extends StatelessWidget { + final String partnerId; + + const DriftPartnerDetailPage({super.key, required this.partnerId}); + + @override + Widget build(BuildContext context) { + return ProviderScope( + overrides: [ + timelineServiceProvider.overrideWith( + (ref) { + final timelineService = + ref.watch(timelineFactoryProvider).remoteAssets(partnerId); + ref.onDispose(timelineService.dispose); + return timelineService; + }, + ), + ], + child: const Timeline(), + ); + } +} diff --git a/mobile/lib/presentation/pages/drift_library.page.dart b/mobile/lib/presentation/pages/drift_library.page.dart index 6c83ce0ca0..1b3452009a 100644 --- a/mobile/lib/presentation/pages/drift_library.page.dart +++ b/mobile/lib/presentation/pages/drift_library.page.dart @@ -493,7 +493,8 @@ class _PartnerList extends StatelessWidget { fontWeight: FontWeight.w500, ), ).t(context: context, args: {'user': partner.name}), - onTap: () => context.pushRoute(PartnerDetailRoute(partner: partner)), + onTap: () => + context.pushRoute(DriftPartnerDetailRoute(partnerId: partner.id)), ); }, ); diff --git a/mobile/lib/routing/router.dart b/mobile/lib/routing/router.dart index 0de001ea47..c8905d79c0 100644 --- a/mobile/lib/routing/router.dart +++ b/mobile/lib/routing/router.dart @@ -68,6 +68,7 @@ import 'package:immich_mobile/pages/search/recently_taken.page.dart'; import 'package:immich_mobile/pages/search/search.page.dart'; import 'package:immich_mobile/pages/share_intent/share_intent.page.dart'; import 'package:immich_mobile/presentation/pages/dev/drift_favorite.page.dart'; +import 'package:immich_mobile/presentation/pages/dev/drift_partner_detail.page.dart'; import 'package:immich_mobile/presentation/pages/dev/drift_recently_taken.page.dart'; import 'package:immich_mobile/presentation/pages/dev/drift_video.page.dart'; import 'package:immich_mobile/presentation/pages/dev/drift_trash.page.dart'; @@ -429,6 +430,10 @@ class AppRouter extends RootStackRouter { page: DriftAssetSelectionTimelineRoute.page, guards: [_authGuard, _duplicateGuard], ), + AutoRoute( + page: DriftPartnerDetailRoute.page, + guards: [_authGuard, _duplicateGuard], + ), AutoRoute( page: DriftRecentlyTakenRoute.page, guards: [_authGuard, _duplicateGuard], diff --git a/mobile/lib/routing/router.gr.dart b/mobile/lib/routing/router.gr.dart index 1ddba4e596..56ccb83aa9 100644 --- a/mobile/lib/routing/router.gr.dart +++ b/mobile/lib/routing/router.gr.dart @@ -783,6 +783,44 @@ class DriftMemoryRouteArgs { } } +/// generated route for +/// [DriftPartnerDetailPage] +class DriftPartnerDetailRoute + extends PageRouteInfo { + DriftPartnerDetailRoute({ + Key? key, + required String partnerId, + List? children, + }) : super( + DriftPartnerDetailRoute.name, + args: DriftPartnerDetailRouteArgs(key: key, partnerId: partnerId), + initialChildren: children, + ); + + static const String name = 'DriftPartnerDetailRoute'; + + static PageInfo page = PageInfo( + name, + builder: (data) { + final args = data.argsAs(); + return DriftPartnerDetailPage(key: args.key, partnerId: args.partnerId); + }, + ); +} + +class DriftPartnerDetailRouteArgs { + const DriftPartnerDetailRouteArgs({this.key, required this.partnerId}); + + final Key? key; + + final String partnerId; + + @override + String toString() { + return 'DriftPartnerDetailRouteArgs{key: $key, partnerId: $partnerId}'; + } +} + /// generated route for /// [DriftRecentlyTakenPage] class DriftRecentlyTakenRoute extends PageRouteInfo {