mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	chore(mobile): remove things sections (#3309)
Co-authored-by: Alex Tran <Alex.Tran@conductix.com>
This commit is contained in:
		@@ -63,12 +63,3 @@ final getCuratedLocationProvider =
 | 
			
		||||
  var curatedLocation = await searchService.getCuratedLocation();
 | 
			
		||||
  return curatedLocation ?? [];
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
final getCuratedObjectProvider =
 | 
			
		||||
    FutureProvider.autoDispose<List<CuratedObjectsResponseDto>>((ref) async {
 | 
			
		||||
  final SearchService searchService = ref.watch(searchServiceProvider);
 | 
			
		||||
 | 
			
		||||
  var curatedObject = await searchService.getCuratedObjects();
 | 
			
		||||
 | 
			
		||||
  return curatedObject ?? [];
 | 
			
		||||
});
 | 
			
		||||
 
 | 
			
		||||
@@ -1,55 +0,0 @@
 | 
			
		||||
import 'package:auto_route/auto_route.dart';
 | 
			
		||||
import 'package:easy_localization/easy_localization.dart';
 | 
			
		||||
import 'package:flutter/material.dart';
 | 
			
		||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
 | 
			
		||||
import 'package:immich_mobile/modules/search/models/curated_content.dart';
 | 
			
		||||
import 'package:immich_mobile/modules/search/providers/search_page_state.provider.dart';
 | 
			
		||||
import 'package:immich_mobile/modules/search/ui/explore_grid.dart';
 | 
			
		||||
import 'package:immich_mobile/shared/ui/immich_loading_indicator.dart';
 | 
			
		||||
import 'package:immich_mobile/utils/capitalize.dart';
 | 
			
		||||
import 'package:openapi/api.dart';
 | 
			
		||||
 | 
			
		||||
class CuratedObjectPage extends HookConsumerWidget {
 | 
			
		||||
  const CuratedObjectPage({
 | 
			
		||||
    super.key,
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  Widget build(BuildContext context, WidgetRef ref) {
 | 
			
		||||
    AsyncValue<List<CuratedObjectsResponseDto>> curatedObjects =
 | 
			
		||||
        ref.watch(getCuratedObjectProvider);
 | 
			
		||||
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: AppBar(
 | 
			
		||||
        title: Text(
 | 
			
		||||
          'curated_object_page_title',
 | 
			
		||||
          style: TextStyle(
 | 
			
		||||
            color: Theme.of(context).primaryColor,
 | 
			
		||||
            fontWeight: FontWeight.bold,
 | 
			
		||||
            fontSize: 16.0,
 | 
			
		||||
          ),
 | 
			
		||||
        ).tr(),
 | 
			
		||||
        leading: IconButton(
 | 
			
		||||
          onPressed: () => AutoRouter.of(context).pop(),
 | 
			
		||||
          icon: const Icon(Icons.arrow_back_ios_rounded),
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
      body: curatedObjects.when(
 | 
			
		||||
        loading: () => const Center(child: ImmichLoadingIndicator()),
 | 
			
		||||
        error: (err, stack) => Center(
 | 
			
		||||
          child: Text('Error: $err'),
 | 
			
		||||
        ),
 | 
			
		||||
        data: (curatedLocations) => ExploreGrid(
 | 
			
		||||
          curatedContent: curatedLocations
 | 
			
		||||
              .map(
 | 
			
		||||
                (l) => CuratedContent(
 | 
			
		||||
                  label: l.object.capitalize(),
 | 
			
		||||
                  id: l.id,
 | 
			
		||||
                ),
 | 
			
		||||
              )
 | 
			
		||||
              .toList(),
 | 
			
		||||
        ),
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@@ -25,7 +25,6 @@ class SearchPage extends HookConsumerWidget {
 | 
			
		||||
  Widget build(BuildContext context, WidgetRef ref) {
 | 
			
		||||
    final isSearchEnabled = ref.watch(searchPageStateProvider).isSearchEnabled;
 | 
			
		||||
    final curatedLocation = ref.watch(getCuratedLocationProvider);
 | 
			
		||||
    final curatedObjects = ref.watch(getCuratedObjectProvider);
 | 
			
		||||
    final curatedPeople = ref.watch(getCuratedPeopleProvider);
 | 
			
		||||
    var isDarkTheme = Theme.of(context).brightness == Brightness.dark;
 | 
			
		||||
    double imageSize = MediaQuery.of(context).size.width / 3;
 | 
			
		||||
@@ -128,40 +127,6 @@ class SearchPage extends HookConsumerWidget {
 | 
			
		||||
      );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    buildThings() {
 | 
			
		||||
      return SizedBox(
 | 
			
		||||
        height: imageSize,
 | 
			
		||||
        child: curatedObjects.when(
 | 
			
		||||
          loading: () => SizedBox(
 | 
			
		||||
            height: imageSize,
 | 
			
		||||
            child: const Center(child: ImmichLoadingIndicator()),
 | 
			
		||||
          ),
 | 
			
		||||
          error: (err, stack) => SizedBox(
 | 
			
		||||
            height: imageSize,
 | 
			
		||||
            child: Center(child: Text('Error: $err')),
 | 
			
		||||
          ),
 | 
			
		||||
          data: (objects) => CuratedRow(
 | 
			
		||||
            content: objects
 | 
			
		||||
                .map(
 | 
			
		||||
                  (o) => CuratedContent(
 | 
			
		||||
                    id: o.id,
 | 
			
		||||
                    label: o.object,
 | 
			
		||||
                  ),
 | 
			
		||||
                )
 | 
			
		||||
                .toList(),
 | 
			
		||||
            imageSize: imageSize,
 | 
			
		||||
            onTap: (content, index) {
 | 
			
		||||
              AutoRouter.of(context).push(
 | 
			
		||||
                SearchResultRoute(
 | 
			
		||||
                  searchTerm: 'm:${content.label}',
 | 
			
		||||
                ),
 | 
			
		||||
              );
 | 
			
		||||
            },
 | 
			
		||||
          ),
 | 
			
		||||
        ),
 | 
			
		||||
      );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    return Scaffold(
 | 
			
		||||
      appBar: ImmichSearchBar(
 | 
			
		||||
        searchFocusNode: searchFocusNode,
 | 
			
		||||
@@ -191,13 +156,6 @@ class SearchPage extends HookConsumerWidget {
 | 
			
		||||
                  top: 0,
 | 
			
		||||
                ),
 | 
			
		||||
                buildPlaces(),
 | 
			
		||||
                SearchRowTitle(
 | 
			
		||||
                  title: "search_page_things".tr(),
 | 
			
		||||
                  onViewAllPressed: () => AutoRouter.of(context).push(
 | 
			
		||||
                    const CuratedObjectRoute(),
 | 
			
		||||
                  ),
 | 
			
		||||
                ),
 | 
			
		||||
                buildThings(),
 | 
			
		||||
                const SizedBox(height: 24.0),
 | 
			
		||||
                Padding(
 | 
			
		||||
                  padding: const EdgeInsets.symmetric(horizontal: 16),
 | 
			
		||||
 
 | 
			
		||||
@@ -30,7 +30,6 @@ 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/curated_object_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';
 | 
			
		||||
@@ -87,7 +86,6 @@ part 'router.gr.dart';
 | 
			
		||||
    AutoRoute(page: BackupControllerPage, guards: [AuthGuard, DuplicateGuard]),
 | 
			
		||||
    AutoRoute(page: SearchResultPage, guards: [AuthGuard, DuplicateGuard]),
 | 
			
		||||
    AutoRoute(page: CuratedLocationPage, guards: [AuthGuard, DuplicateGuard]),
 | 
			
		||||
    AutoRoute(page: CuratedObjectPage, guards: [AuthGuard, DuplicateGuard]),
 | 
			
		||||
    AutoRoute(page: CreateAlbumPage, guards: [AuthGuard, DuplicateGuard]),
 | 
			
		||||
    AutoRoute(page: FavoritesPage, guards: [AuthGuard, DuplicateGuard]),
 | 
			
		||||
    AutoRoute(page: AllVideosPage, guards: [AuthGuard, DuplicateGuard]),
 | 
			
		||||
 
 | 
			
		||||
@@ -111,12 +111,6 @@ class _$AppRouter extends RootStackRouter {
 | 
			
		||||
        child: const CuratedLocationPage(),
 | 
			
		||||
      );
 | 
			
		||||
    },
 | 
			
		||||
    CuratedObjectRoute.name: (routeData) {
 | 
			
		||||
      return MaterialPageX<dynamic>(
 | 
			
		||||
        routeData: routeData,
 | 
			
		||||
        child: const CuratedObjectPage(),
 | 
			
		||||
      );
 | 
			
		||||
    },
 | 
			
		||||
    CreateAlbumRoute.name: (routeData) {
 | 
			
		||||
      final args = routeData.argsAs<CreateAlbumRouteArgs>();
 | 
			
		||||
      return MaterialPageX<dynamic>(
 | 
			
		||||
@@ -441,14 +435,6 @@ class _$AppRouter extends RootStackRouter {
 | 
			
		||||
            duplicateGuard,
 | 
			
		||||
          ],
 | 
			
		||||
        ),
 | 
			
		||||
        RouteConfig(
 | 
			
		||||
          CuratedObjectRoute.name,
 | 
			
		||||
          path: '/curated-object-page',
 | 
			
		||||
          guards: [
 | 
			
		||||
            authGuard,
 | 
			
		||||
            duplicateGuard,
 | 
			
		||||
          ],
 | 
			
		||||
        ),
 | 
			
		||||
        RouteConfig(
 | 
			
		||||
          CreateAlbumRoute.name,
 | 
			
		||||
          path: '/create-album-page',
 | 
			
		||||
@@ -507,7 +493,7 @@ class _$AppRouter extends RootStackRouter {
 | 
			
		||||
        ),
 | 
			
		||||
        RouteConfig(
 | 
			
		||||
          AlbumViewerRoute.name,
 | 
			
		||||
          path: '/',
 | 
			
		||||
          path: '/album-viewer-page',
 | 
			
		||||
          guards: [
 | 
			
		||||
            authGuard,
 | 
			
		||||
            duplicateGuard,
 | 
			
		||||
@@ -839,18 +825,6 @@ class CuratedLocationRoute extends PageRouteInfo<void> {
 | 
			
		||||
  static const String name = 'CuratedLocationRoute';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// generated route for
 | 
			
		||||
/// [CuratedObjectPage]
 | 
			
		||||
class CuratedObjectRoute extends PageRouteInfo<void> {
 | 
			
		||||
  const CuratedObjectRoute()
 | 
			
		||||
      : super(
 | 
			
		||||
          CuratedObjectRoute.name,
 | 
			
		||||
          path: '/curated-object-page',
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
  static const String name = 'CuratedObjectRoute';
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// generated route for
 | 
			
		||||
/// [CreateAlbumPage]
 | 
			
		||||
class CreateAlbumRoute extends PageRouteInfo<CreateAlbumRouteArgs> {
 | 
			
		||||
@@ -1020,7 +994,7 @@ class AlbumViewerRoute extends PageRouteInfo<AlbumViewerRouteArgs> {
 | 
			
		||||
    required int albumId,
 | 
			
		||||
  }) : super(
 | 
			
		||||
          AlbumViewerRoute.name,
 | 
			
		||||
          path: '/',
 | 
			
		||||
          path: '/album-viewer-page',
 | 
			
		||||
          args: AlbumViewerRouteArgs(
 | 
			
		||||
            key: key,
 | 
			
		||||
            albumId: albumId,
 | 
			
		||||
 
 | 
			
		||||
@@ -33,7 +33,6 @@ class TabNavigationObserver extends AutoRouterObserver {
 | 
			
		||||
    if (route.name == 'SearchRoute') {
 | 
			
		||||
      // Refresh Location State
 | 
			
		||||
      ref.invalidate(getCuratedLocationProvider);
 | 
			
		||||
      ref.invalidate(getCuratedObjectProvider);
 | 
			
		||||
      ref.invalidate(getCuratedPeopleProvider);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user