mirror of
https://github.com/immich-app/immich
synced 2025-11-14 17:36:12 +00:00
feat(mobile): search enhancement (#8392)
This commit is contained in:
parent
861b72ef04
commit
27be813011
35 changed files with 4302 additions and 2766 deletions
|
|
@ -31,7 +31,9 @@ import 'package:immich_mobile/modules/login/views/change_password_page.dart';
|
|||
import 'package:immich_mobile/modules/login/views/login_page.dart';
|
||||
import 'package:immich_mobile/modules/onboarding/providers/gallery_permission.provider.dart';
|
||||
import 'package:immich_mobile/modules/onboarding/views/permission_onboarding_page.dart';
|
||||
import 'package:immich_mobile/modules/search/models/search_filter.dart';
|
||||
import 'package:immich_mobile/modules/settings/views/settings_sub_page.dart';
|
||||
import 'package:immich_mobile/modules/search/views/search_input_page.dart';
|
||||
import 'package:immich_mobile/modules/shared_link/models/shared_link.dart';
|
||||
import 'package:immich_mobile/modules/shared_link/views/shared_link_edit_page.dart';
|
||||
import 'package:immich_mobile/modules/shared_link/views/shared_link_page.dart';
|
||||
|
|
@ -43,7 +45,6 @@ import 'package:immich_mobile/modules/search/views/curated_location_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';
|
||||
import 'package:immich_mobile/modules/search/views/search_result_page.dart';
|
||||
import 'package:immich_mobile/modules/settings/views/settings_page.dart';
|
||||
import 'package:immich_mobile/routing/auth_guard.dart';
|
||||
import 'package:immich_mobile/routing/custom_transition_builders.dart';
|
||||
|
|
@ -125,10 +126,6 @@ class AppRouter extends _$AppRouter {
|
|||
page: BackupControllerRoute.page,
|
||||
guards: [_authGuard, _duplicateGuard, _backupPermissionGuard],
|
||||
),
|
||||
AutoRoute(
|
||||
page: SearchResultRoute.page,
|
||||
guards: [_authGuard, _duplicateGuard],
|
||||
),
|
||||
AutoRoute(
|
||||
page: CuratedLocationRoute.page,
|
||||
guards: [_authGuard, _duplicateGuard],
|
||||
|
|
@ -223,6 +220,11 @@ class AppRouter extends _$AppRouter {
|
|||
page: BackupOptionsRoute.page,
|
||||
guards: [_authGuard, _duplicateGuard],
|
||||
),
|
||||
CustomRoute(
|
||||
page: SearchInputRoute.page,
|
||||
guards: [_authGuard, _duplicateGuard],
|
||||
transitionsBuilder: TransitionsBuilders.noTransition,
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -255,22 +255,21 @@ abstract class _$AppRouter extends RootStackRouter {
|
|||
child: const RecentlyAddedPage(),
|
||||
);
|
||||
},
|
||||
SearchRoute.name: (routeData) {
|
||||
final args = routeData.argsAs<SearchRouteArgs>(
|
||||
orElse: () => const SearchRouteArgs());
|
||||
SearchInputRoute.name: (routeData) {
|
||||
final args = routeData.argsAs<SearchInputRouteArgs>(
|
||||
orElse: () => const SearchInputRouteArgs());
|
||||
return AutoRoutePage<dynamic>(
|
||||
routeData: routeData,
|
||||
child: SearchPage(key: args.key),
|
||||
child: SearchInputPage(
|
||||
key: args.key,
|
||||
prefilter: args.prefilter,
|
||||
),
|
||||
);
|
||||
},
|
||||
SearchResultRoute.name: (routeData) {
|
||||
final args = routeData.argsAs<SearchResultRouteArgs>();
|
||||
SearchRoute.name: (routeData) {
|
||||
return AutoRoutePage<dynamic>(
|
||||
routeData: routeData,
|
||||
child: SearchResultPage(
|
||||
key: args.key,
|
||||
searchTerm: args.searchTerm,
|
||||
),
|
||||
child: const SearchPage(),
|
||||
);
|
||||
},
|
||||
SelectAdditionalUserForSharingRoute.name: (routeData) {
|
||||
|
|
@ -1113,69 +1112,55 @@ class RecentlyAddedRoute extends PageRouteInfo<void> {
|
|||
}
|
||||
|
||||
/// generated route for
|
||||
/// [SearchPage]
|
||||
class SearchRoute extends PageRouteInfo<SearchRouteArgs> {
|
||||
SearchRoute({
|
||||
/// [SearchInputPage]
|
||||
class SearchInputRoute extends PageRouteInfo<SearchInputRouteArgs> {
|
||||
SearchInputRoute({
|
||||
Key? key,
|
||||
SearchFilter? prefilter,
|
||||
List<PageRouteInfo>? children,
|
||||
}) : super(
|
||||
SearchInputRoute.name,
|
||||
args: SearchInputRouteArgs(
|
||||
key: key,
|
||||
prefilter: prefilter,
|
||||
),
|
||||
initialChildren: children,
|
||||
);
|
||||
|
||||
static const String name = 'SearchInputRoute';
|
||||
|
||||
static const PageInfo<SearchInputRouteArgs> page =
|
||||
PageInfo<SearchInputRouteArgs>(name);
|
||||
}
|
||||
|
||||
class SearchInputRouteArgs {
|
||||
const SearchInputRouteArgs({
|
||||
this.key,
|
||||
this.prefilter,
|
||||
});
|
||||
|
||||
final Key? key;
|
||||
|
||||
final SearchFilter? prefilter;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'SearchInputRouteArgs{key: $key, prefilter: $prefilter}';
|
||||
}
|
||||
}
|
||||
|
||||
/// generated route for
|
||||
/// [SearchPage]
|
||||
class SearchRoute extends PageRouteInfo<void> {
|
||||
const SearchRoute({List<PageRouteInfo>? children})
|
||||
: super(
|
||||
SearchRoute.name,
|
||||
args: SearchRouteArgs(key: key),
|
||||
initialChildren: children,
|
||||
);
|
||||
|
||||
static const String name = 'SearchRoute';
|
||||
|
||||
static const PageInfo<SearchRouteArgs> page = PageInfo<SearchRouteArgs>(name);
|
||||
}
|
||||
|
||||
class SearchRouteArgs {
|
||||
const SearchRouteArgs({this.key});
|
||||
|
||||
final Key? key;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'SearchRouteArgs{key: $key}';
|
||||
}
|
||||
}
|
||||
|
||||
/// generated route for
|
||||
/// [SearchResultPage]
|
||||
class SearchResultRoute extends PageRouteInfo<SearchResultRouteArgs> {
|
||||
SearchResultRoute({
|
||||
Key? key,
|
||||
required String searchTerm,
|
||||
List<PageRouteInfo>? children,
|
||||
}) : super(
|
||||
SearchResultRoute.name,
|
||||
args: SearchResultRouteArgs(
|
||||
key: key,
|
||||
searchTerm: searchTerm,
|
||||
),
|
||||
initialChildren: children,
|
||||
);
|
||||
|
||||
static const String name = 'SearchResultRoute';
|
||||
|
||||
static const PageInfo<SearchResultRouteArgs> page =
|
||||
PageInfo<SearchResultRouteArgs>(name);
|
||||
}
|
||||
|
||||
class SearchResultRouteArgs {
|
||||
const SearchResultRouteArgs({
|
||||
this.key,
|
||||
required this.searchTerm,
|
||||
});
|
||||
|
||||
final Key? key;
|
||||
|
||||
final String searchTerm;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'SearchResultRouteArgs{key: $key, searchTerm: $searchTerm}';
|
||||
}
|
||||
static const PageInfo<void> page = PageInfo<void>(name);
|
||||
}
|
||||
|
||||
/// generated route for
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ class TabNavigationObserver extends AutoRouterObserver {
|
|||
if (route.name == 'SearchRoute') {
|
||||
// Refresh Location State
|
||||
ref.invalidate(getCuratedLocationProvider);
|
||||
ref.invalidate(getCuratedPeopleProvider);
|
||||
ref.invalidate(getAllPeopleProvider);
|
||||
}
|
||||
|
||||
if (route.name == 'SharingRoute') {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue