1
0
mirror of https://github.com/immich-app/immich.git synced 2024-12-25 10:43:13 +02:00

fix(mobile): show all places don't show all places (#9193)

fix(mobile): show all places doesn't show all places
This commit is contained in:
Alex 2024-04-30 22:14:33 -05:00 committed by GitHub
parent f057fe045e
commit c0495ca23f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 46 additions and 15 deletions

View File

@ -3,7 +3,7 @@ import 'package:immich_mobile/models/search/search_curated_content.model.dart';
import 'package:immich_mobile/modules/search/services/search.service.dart';
final getPlacesProvider =
final getPreviewPlacesProvider =
FutureProvider.autoDispose<List<SearchCuratedContent>>((ref) async {
final SearchService searchService = ref.watch(searchServiceProvider);
@ -27,3 +27,25 @@ final getPlacesProvider =
return curatedContent;
});
final getAllPlacesProvider =
FutureProvider.autoDispose<List<SearchCuratedContent>>((ref) async {
final SearchService searchService = ref.watch(searchServiceProvider);
final assetPlaces = await searchService.getAllPlaces();
if (assetPlaces == null) {
return [];
}
final curatedContent = assetPlaces
.map(
(data) => SearchCuratedContent(
label: data.exifInfo!.city!,
id: data.id,
),
)
.toList();
return curatedContent;
});

View File

@ -119,4 +119,13 @@ class SearchService {
}
return null;
}
Future<List<AssetResponseDto>?> getAllPlaces() async {
try {
return await _apiService.searchApi.getAssetsByCity();
} catch (error, stackTrace) {
_log.severe("Failed to getAllPlaces", error, stackTrace);
}
return null;
}
}

View File

@ -8,13 +8,13 @@ import 'package:immich_mobile/modules/search/providers/search_page_state.provide
import 'package:immich_mobile/modules/search/ui/explore_grid.dart';
@RoutePage()
class CuratedLocationPage extends HookConsumerWidget {
const CuratedLocationPage({super.key});
class AllPlacesPage extends HookConsumerWidget {
const AllPlacesPage({super.key});
@override
Widget build(BuildContext context, WidgetRef ref) {
AsyncValue<List<SearchCuratedContent>> places =
ref.watch(getPlacesProvider);
ref.watch(getAllPlacesProvider);
return Scaffold(
appBar: AppBar(

View File

@ -27,7 +27,7 @@ class SearchPage extends HookConsumerWidget {
@override
Widget build(BuildContext context, WidgetRef ref) {
final places = ref.watch(getPlacesProvider);
final places = ref.watch(getPreviewPlacesProvider);
final curatedPeople = ref.watch(getAllPeopleProvider);
final isMapEnabled =
ref.watch(serverInfoProvider.select((v) => v.serverFeatures.map));
@ -174,7 +174,7 @@ class SearchPage extends HookConsumerWidget {
SearchRowTitle(
title: "search_page_places".tr(),
onViewAllPressed: () =>
context.pushRoute(const CuratedLocationRoute()),
context.pushRoute(const AllPlacesRoute()),
top: 0,
),
const SizedBox(height: 10.0),

View File

@ -41,7 +41,7 @@ import 'package:immich_mobile/modules/trash/views/trash_page.dart';
import 'package:immich_mobile/modules/search/views/all_motion_videos_page.dart';
import 'package:immich_mobile/modules/search/views/all_people_page.dart';
import 'package:immich_mobile/modules/search/views/all_videos_page.dart';
import 'package:immich_mobile/modules/search/views/curated_location_page.dart';
import 'package:immich_mobile/modules/search/views/all_places_page.dart';
import 'package:immich_mobile/modules/search/views/person_result_page.dart';
import 'package:immich_mobile/modules/search/views/recently_added_page.dart';
import 'package:immich_mobile/modules/search/views/search_page.dart';
@ -127,7 +127,7 @@ class AppRouter extends _$AppRouter {
guards: [_authGuard, _duplicateGuard, _backupPermissionGuard],
),
AutoRoute(
page: CuratedLocationRoute.page,
page: AllPlacesRoute.page,
guards: [_authGuard, _duplicateGuard],
),
AutoRoute(

View File

@ -138,10 +138,10 @@ abstract class _$AppRouter extends RootStackRouter {
),
);
},
CuratedLocationRoute.name: (routeData) {
AllPlacesRoute.name: (routeData) {
return AutoRoutePage<dynamic>(
routeData: routeData,
child: const CuratedLocationPage(),
child: const AllPlacesPage(),
);
},
FailedBackupStatusRoute.name: (routeData) {
@ -753,11 +753,11 @@ class CreateAlbumRouteArgs {
}
/// generated route for
/// [CuratedLocationPage]
class CuratedLocationRoute extends PageRouteInfo<void> {
const CuratedLocationRoute({List<PageRouteInfo>? children})
/// [AllPlacesPage]
class AllPlacesRoute extends PageRouteInfo<void> {
const AllPlacesRoute({List<PageRouteInfo>? children})
: super(
CuratedLocationRoute.name,
AllPlacesRoute.name,
initialChildren: children,
);

View File

@ -37,7 +37,7 @@ class TabNavigationObserver extends AutoRouterObserver {
// Perform tasks on re-visit to SearchRoute
if (route.name == 'SearchRoute') {
// Refresh Location State
ref.invalidate(getPlacesProvider);
ref.invalidate(getPreviewPlacesProvider);
ref.invalidate(getAllPeopleProvider);
}