Added collection pages

This commit is contained in:
Alex 2024-09-06 14:42:02 -05:00
parent c886fcab74
commit 9d6a177547
No known key found for this signature in database
GPG Key ID: 53CD082B3A5E1082
7 changed files with 158 additions and 13 deletions

View File

@ -0,0 +1,12 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
@RoutePage()
class AlbumsCollectionPage extends HookConsumerWidget {
const AlbumsCollectionPage({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
return Container();
}
}

View File

@ -0,0 +1,12 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
@RoutePage()
class LocalAlbumsCollectionPage extends HookConsumerWidget {
const LocalAlbumsCollectionPage({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
return Container();
}
}

View File

@ -0,0 +1,12 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
@RoutePage()
class PeopleCollectionPage extends HookConsumerWidget {
const PeopleCollectionPage({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
return Container();
}
}

View File

@ -0,0 +1,12 @@
import 'package:auto_route/auto_route.dart';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
@RoutePage()
class PlacesCollectionPage extends HookConsumerWidget {
const PlacesCollectionPage({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
return Container();
}
}

View File

@ -5,6 +5,7 @@ import 'package:immich_mobile/extensions/asyncvalue_extensions.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/providers/album/album.provider.dart';
import 'package:immich_mobile/providers/search/people.provider.dart';
import 'package:immich_mobile/routing/router.dart';
import 'package:immich_mobile/services/api.service.dart';
import 'package:immich_mobile/utils/image_url_builder.dart';
import 'package:immich_mobile/widgets/album/album_thumbnail_card.dart';
@ -31,13 +32,13 @@ class CollectionsPage extends StatelessWidget {
Row(
children: [
ActionButton(
onPressed: () {},
onPressed: () => context.pushRoute(const FavoritesRoute()),
icon: Icons.favorite_outline_rounded,
label: 'Favorite',
),
const SizedBox(width: 8),
ActionButton(
onPressed: () {},
onPressed: () => context.pushRoute(const ArchiveRoute()),
icon: Icons.archive_outlined,
label: 'Archive',
),
@ -47,13 +48,13 @@ class CollectionsPage extends StatelessWidget {
Row(
children: [
ActionButton(
onPressed: () {},
onPressed: () => context.pushRoute(const SharedLinkRoute()),
icon: Icons.link_outlined,
label: 'Shared links',
),
const SizedBox(width: 8),
ActionButton(
onPressed: () {},
onPressed: () => context.pushRoute(const TrashRoute()),
icon: Icons.delete_outline_rounded,
label: 'Trash',
),
@ -85,13 +86,13 @@ class PeopleCollectionCard extends ConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final people = ref.watch(getAllPeopleProvider);
final size = MediaQuery.of(context).size.width * 0.5 - 20;
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: MediaQuery.of(context).size.width * 0.5 - 20,
width: MediaQuery.of(context).size.width * 0.5 - 20,
height: size,
width: size,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
color: context.colorScheme.secondaryContainer.withAlpha(100),
@ -135,13 +136,13 @@ class AlbumsCollectionCard extends ConsumerWidget {
final albums = isLocal
? ref.watch(albumProvider).where((album) => album.isLocal)
: ref.watch(albumProvider).where((album) => album.isRemote);
final size = MediaQuery.of(context).size.width * 0.5 - 20;
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
height: MediaQuery.of(context).size.width * 0.5 - 20,
width: MediaQuery.of(context).size.width * 0.5 - 20,
height: size,
width: size,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
color: context.colorScheme.secondaryContainer.withAlpha(100),
@ -189,10 +190,10 @@ class PlacesCollectionCard extends StatelessWidget {
),
child: IgnorePointer(
child: MapThumbnail(
zoom: 5,
zoom: 8,
centre: const LatLng(
47,
5,
21.44950,
-157.91959,
),
showAttribution: false,
themeMode: context.isDarkTheme ? ThemeMode.dark : ThemeMode.light,

View File

@ -13,6 +13,10 @@ import 'package:immich_mobile/pages/backup/backup_album_selection.page.dart';
import 'package:immich_mobile/pages/backup/backup_controller.page.dart';
import 'package:immich_mobile/pages/backup/backup_options.page.dart';
import 'package:immich_mobile/pages/backup/failed_backup_status.page.dart';
import 'package:immich_mobile/pages/collections/albums/albums_collection.page.dart';
import 'package:immich_mobile/pages/collections/albums/local_albums_collection.page.dart';
import 'package:immich_mobile/pages/collections/albums/people_collection.page.dart';
import 'package:immich_mobile/pages/collections/albums/places_collection.part.dart';
import 'package:immich_mobile/pages/collections/collections.page.dart';
import 'package:immich_mobile/pages/common/activities.page.dart';
import 'package:immich_mobile/pages/common/album_additional_shared_user_selection.page.dart';
@ -236,6 +240,22 @@ class AppRouter extends RootStackRouter {
page: HeaderSettingsRoute.page,
guards: [_duplicateGuard],
),
AutoRoute(
page: PeopleCollectionRoute.page,
guards: [_authGuard, _duplicateGuard],
),
AutoRoute(
page: AlbumsCollectionRoute.page,
guards: [_authGuard, _duplicateGuard],
),
AutoRoute(
page: LocalAlbumsCollectionRoute.page,
guards: [_authGuard, _duplicateGuard],
),
AutoRoute(
page: PlacesCollectionRoute.page,
guards: [_authGuard, _duplicateGuard],
),
];
}

View File

@ -319,6 +319,25 @@ class AlbumViewerRouteArgs {
}
}
/// generated route for
/// [AlbumsCollectionPage]
class AlbumsCollectionRoute extends PageRouteInfo<void> {
const AlbumsCollectionRoute({List<PageRouteInfo>? children})
: super(
AlbumsCollectionRoute.name,
initialChildren: children,
);
static const String name = 'AlbumsCollectionRoute';
static PageInfo page = PageInfo(
name,
builder: (data) {
return const AlbumsCollectionPage();
},
);
}
/// generated route for
/// [AllMotionPhotosPage]
class AllMotionPhotosRoute extends PageRouteInfo<void> {
@ -876,6 +895,25 @@ class LibraryRoute extends PageRouteInfo<void> {
);
}
/// generated route for
/// [LocalAlbumsCollectionPage]
class LocalAlbumsCollectionRoute extends PageRouteInfo<void> {
const LocalAlbumsCollectionRoute({List<PageRouteInfo>? children})
: super(
LocalAlbumsCollectionRoute.name,
initialChildren: children,
);
static const String name = 'LocalAlbumsCollectionRoute';
static PageInfo page = PageInfo(
name,
builder: (data) {
return const LocalAlbumsCollectionPage();
},
);
}
/// generated route for
/// [LoginPage]
class LoginRoute extends PageRouteInfo<void> {
@ -1078,6 +1116,25 @@ class PartnerRoute extends PageRouteInfo<void> {
);
}
/// generated route for
/// [PeopleCollectionPage]
class PeopleCollectionRoute extends PageRouteInfo<void> {
const PeopleCollectionRoute({List<PageRouteInfo>? children})
: super(
PeopleCollectionRoute.name,
initialChildren: children,
);
static const String name = 'PeopleCollectionRoute';
static PageInfo page = PageInfo(
name,
builder: (data) {
return const PeopleCollectionPage();
},
);
}
/// generated route for
/// [PermissionOnboardingPage]
class PermissionOnboardingRoute extends PageRouteInfo<void> {
@ -1168,6 +1225,25 @@ class PhotosRoute extends PageRouteInfo<void> {
);
}
/// generated route for
/// [PlacesCollectionPage]
class PlacesCollectionRoute extends PageRouteInfo<void> {
const PlacesCollectionRoute({List<PageRouteInfo>? children})
: super(
PlacesCollectionRoute.name,
initialChildren: children,
);
static const String name = 'PlacesCollectionRoute';
static PageInfo page = PageInfo(
name,
builder: (data) {
return const PlacesCollectionPage();
},
);
}
/// generated route for
/// [RecentlyAddedPage]
class RecentlyAddedRoute extends PageRouteInfo<void> {