From 746354b77911122cf600e6228199c74a2528fc04 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 6 Sep 2024 14:47:09 -0500 Subject: [PATCH] Added rounting mechanism --- .../albums/albums_collection.page.dart | 9 +- .../albums/local_albums_collection.page.dart | 9 +- .../albums/people_collection.page.dart | 9 +- .../albums/places_collection.part.dart | 9 +- .../pages/collections/collections.page.dart | 186 ++++++++++-------- mobile/lib/routing/router.dart | 12 +- 6 files changed, 139 insertions(+), 95 deletions(-) diff --git a/mobile/lib/pages/collections/albums/albums_collection.page.dart b/mobile/lib/pages/collections/albums/albums_collection.page.dart index 6e90ce862045b..a55ccf5fb8d59 100644 --- a/mobile/lib/pages/collections/albums/albums_collection.page.dart +++ b/mobile/lib/pages/collections/albums/albums_collection.page.dart @@ -7,6 +7,13 @@ class AlbumsCollectionPage extends HookConsumerWidget { const AlbumsCollectionPage({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { - return Container(); + return Scaffold( + appBar: AppBar( + title: const Text('albums_collection_page_title'), + ), + body: const Center( + child: Text('albums_collection_page_content'), + ), + ); } } diff --git a/mobile/lib/pages/collections/albums/local_albums_collection.page.dart b/mobile/lib/pages/collections/albums/local_albums_collection.page.dart index 2352ea3a568b9..4f31cc9e01f46 100644 --- a/mobile/lib/pages/collections/albums/local_albums_collection.page.dart +++ b/mobile/lib/pages/collections/albums/local_albums_collection.page.dart @@ -7,6 +7,13 @@ class LocalAlbumsCollectionPage extends HookConsumerWidget { const LocalAlbumsCollectionPage({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { - return Container(); + return Scaffold( + appBar: AppBar( + title: const Text('on_this_device'), + ), + body: const Center( + child: Text('on_this_device_content'), + ), + ); } } diff --git a/mobile/lib/pages/collections/albums/people_collection.page.dart b/mobile/lib/pages/collections/albums/people_collection.page.dart index d5c58fb922dec..a37bb256a4c05 100644 --- a/mobile/lib/pages/collections/albums/people_collection.page.dart +++ b/mobile/lib/pages/collections/albums/people_collection.page.dart @@ -7,6 +7,13 @@ class PeopleCollectionPage extends HookConsumerWidget { const PeopleCollectionPage({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { - return Container(); + return Scaffold( + appBar: AppBar( + title: const Text('people'), + ), + body: const Center( + child: Text('people'), + ), + ); } } diff --git a/mobile/lib/pages/collections/albums/places_collection.part.dart b/mobile/lib/pages/collections/albums/places_collection.part.dart index 9fce76c597c88..665e915fe3adc 100644 --- a/mobile/lib/pages/collections/albums/places_collection.part.dart +++ b/mobile/lib/pages/collections/albums/places_collection.part.dart @@ -7,6 +7,13 @@ class PlacesCollectionPage extends HookConsumerWidget { const PlacesCollectionPage({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { - return Container(); + return Scaffold( + appBar: AppBar( + title: const Text('places'), + ), + body: const Center( + child: Text('places'), + ), + ); } } diff --git a/mobile/lib/pages/collections/collections.page.dart b/mobile/lib/pages/collections/collections.page.dart index 042287705f615..91492386ccbd4 100644 --- a/mobile/lib/pages/collections/collections.page.dart +++ b/mobile/lib/pages/collections/collections.page.dart @@ -87,41 +87,44 @@ class PeopleCollectionCard extends ConsumerWidget { 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: size, - width: size, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: context.colorScheme.secondaryContainer.withAlpha(100), + return GestureDetector( + onTap: () => context.pushRoute(const PeopleCollectionRoute()), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: size, + width: size, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: context.colorScheme.secondaryContainer.withAlpha(100), + ), + child: people.widgetWhen( + onData: (people) { + return GridView.count( + crossAxisCount: 2, + padding: const EdgeInsets.all(12), + crossAxisSpacing: 8, + mainAxisSpacing: 8, + physics: const NeverScrollableScrollPhysics(), + children: people.take(4).map((person) { + return CircleAvatar( + backgroundImage: NetworkImage( + getFaceThumbnailUrl(person.id), + headers: ApiService.getRequestHeaders(), + ), + ); + }).toList(), + ); + }, + ), ), - child: people.widgetWhen( - onData: (people) { - return GridView.count( - crossAxisCount: 2, - padding: const EdgeInsets.all(12), - crossAxisSpacing: 8, - mainAxisSpacing: 8, - physics: const NeverScrollableScrollPhysics(), - children: people.take(4).map((person) { - return CircleAvatar( - backgroundImage: NetworkImage( - getFaceThumbnailUrl(person.id), - headers: ApiService.getRequestHeaders(), - ), - ); - }).toList(), - ); - }, + Padding( + padding: const EdgeInsets.all(8.0), + child: Text('People', style: context.textTheme.labelLarge), ), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text('People', style: context.textTheme.labelLarge), - ), - ], + ], + ), ); } } @@ -137,38 +140,43 @@ class AlbumsCollectionCard extends ConsumerWidget { ? 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: size, - width: size, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: context.colorScheme.secondaryContainer.withAlpha(100), + return GestureDetector( + onTap: () => context.pushRoute(isLocal + ? const LocalAlbumsCollectionRoute() + : const AlbumsCollectionRoute()), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: size, + width: size, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: context.colorScheme.secondaryContainer.withAlpha(100), + ), + child: GridView.count( + crossAxisCount: 2, + padding: const EdgeInsets.all(12), + crossAxisSpacing: 8, + mainAxisSpacing: 8, + physics: const NeverScrollableScrollPhysics(), + children: albums.take(4).map((album) { + return AlbumThumbnailCard( + album: album, + showTitle: false, + ); + }).toList(), + ), ), - child: GridView.count( - crossAxisCount: 2, - padding: const EdgeInsets.all(12), - crossAxisSpacing: 8, - mainAxisSpacing: 8, - physics: const NeverScrollableScrollPhysics(), - children: albums.take(4).map((album) { - return AlbumThumbnailCard( - album: album, - showTitle: false, - ); - }).toList(), + Padding( + padding: const EdgeInsets.all(8.0), + child: Text( + isLocal ? 'On this device' : 'Albums', + style: context.textTheme.labelLarge, + ), ), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text( - isLocal ? 'On this device' : 'Albums', - style: context.textTheme.labelLarge, - ), - ), - ], + ], + ), ); } } @@ -178,33 +186,37 @@ class PlacesCollectionCard extends StatelessWidget { @override Widget build(BuildContext context) { final size = MediaQuery.of(context).size.width * 0.5 - 20; - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - height: size, - width: size, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: context.colorScheme.secondaryContainer.withAlpha(100), - ), - child: IgnorePointer( - child: MapThumbnail( - zoom: 8, - centre: const LatLng( - 21.44950, - -157.91959, + return GestureDetector( + onTap: () => context.pushRoute(const PlacesCollectionRoute()), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: size, + width: size, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: context.colorScheme.secondaryContainer.withAlpha(100), + ), + child: IgnorePointer( + child: MapThumbnail( + zoom: 8, + centre: const LatLng( + 21.44950, + -157.91959, + ), + showAttribution: false, + themeMode: + context.isDarkTheme ? ThemeMode.dark : ThemeMode.light, ), - showAttribution: false, - themeMode: context.isDarkTheme ? ThemeMode.dark : ThemeMode.light, ), ), - ), - Padding( - padding: const EdgeInsets.all(8.0), - child: Text('Places', style: context.textTheme.labelLarge), - ), - ], + Padding( + padding: const EdgeInsets.all(8.0), + child: Text('Places', style: context.textTheme.labelLarge), + ), + ], + ), ); } } diff --git a/mobile/lib/routing/router.dart b/mobile/lib/routing/router.dart index 1c93bd8d9234f..81ada3b106d9f 100644 --- a/mobile/lib/routing/router.dart +++ b/mobile/lib/routing/router.dart @@ -240,21 +240,25 @@ class AppRouter extends RootStackRouter { page: HeaderSettingsRoute.page, guards: [_duplicateGuard], ), - AutoRoute( + CustomRoute( page: PeopleCollectionRoute.page, guards: [_authGuard, _duplicateGuard], + transitionsBuilder: TransitionsBuilders.slideLeft, ), - AutoRoute( + CustomRoute( page: AlbumsCollectionRoute.page, guards: [_authGuard, _duplicateGuard], + transitionsBuilder: TransitionsBuilders.slideLeft, ), - AutoRoute( + CustomRoute( page: LocalAlbumsCollectionRoute.page, guards: [_authGuard, _duplicateGuard], + transitionsBuilder: TransitionsBuilders.slideLeft, ), - AutoRoute( + CustomRoute( page: PlacesCollectionRoute.page, guards: [_authGuard, _duplicateGuard], + transitionsBuilder: TransitionsBuilders.slideLeft, ), ]; }