mirror of
https://github.com/immich-app/immich.git
synced 2025-07-09 03:04:16 -04:00
feat(mobile): drift partner detail page (#19815)
* feat(mobile): drift partner detail page * fix: lint
This commit is contained in:
parent
172388c455
commit
e703685d8d
@ -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(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@ -493,7 +493,8 @@ class _PartnerList extends StatelessWidget {
|
|||||||
fontWeight: FontWeight.w500,
|
fontWeight: FontWeight.w500,
|
||||||
),
|
),
|
||||||
).t(context: context, args: {'user': partner.name}),
|
).t(context: context, args: {'user': partner.name}),
|
||||||
onTap: () => context.pushRoute(PartnerDetailRoute(partner: partner)),
|
onTap: () =>
|
||||||
|
context.pushRoute(DriftPartnerDetailRoute(partnerId: partner.id)),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
@ -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/search/search.page.dart';
|
||||||
import 'package:immich_mobile/pages/share_intent/share_intent.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_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_recently_taken.page.dart';
|
||||||
import 'package:immich_mobile/presentation/pages/dev/drift_video.page.dart';
|
import 'package:immich_mobile/presentation/pages/dev/drift_video.page.dart';
|
||||||
import 'package:immich_mobile/presentation/pages/dev/drift_trash.page.dart';
|
import 'package:immich_mobile/presentation/pages/dev/drift_trash.page.dart';
|
||||||
@ -429,6 +430,10 @@ class AppRouter extends RootStackRouter {
|
|||||||
page: DriftAssetSelectionTimelineRoute.page,
|
page: DriftAssetSelectionTimelineRoute.page,
|
||||||
guards: [_authGuard, _duplicateGuard],
|
guards: [_authGuard, _duplicateGuard],
|
||||||
),
|
),
|
||||||
|
AutoRoute(
|
||||||
|
page: DriftPartnerDetailRoute.page,
|
||||||
|
guards: [_authGuard, _duplicateGuard],
|
||||||
|
),
|
||||||
AutoRoute(
|
AutoRoute(
|
||||||
page: DriftRecentlyTakenRoute.page,
|
page: DriftRecentlyTakenRoute.page,
|
||||||
guards: [_authGuard, _duplicateGuard],
|
guards: [_authGuard, _duplicateGuard],
|
||||||
|
@ -783,6 +783,44 @@ class DriftMemoryRouteArgs {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// generated route for
|
||||||
|
/// [DriftPartnerDetailPage]
|
||||||
|
class DriftPartnerDetailRoute
|
||||||
|
extends PageRouteInfo<DriftPartnerDetailRouteArgs> {
|
||||||
|
DriftPartnerDetailRoute({
|
||||||
|
Key? key,
|
||||||
|
required String partnerId,
|
||||||
|
List<PageRouteInfo>? 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<DriftPartnerDetailRouteArgs>();
|
||||||
|
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
|
/// generated route for
|
||||||
/// [DriftRecentlyTakenPage]
|
/// [DriftRecentlyTakenPage]
|
||||||
class DriftRecentlyTakenRoute extends PageRouteInfo<void> {
|
class DriftRecentlyTakenRoute extends PageRouteInfo<void> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user