mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	* Added placeholder for search explore * refactor immich asset grid to use ref and provider * all videos page * got favorites, recently added, videos, and motion videos all using the immich grid * Fixed issue with hero animations * theming * localization * delete empty file * style text * Styling icons * more styling --------- Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
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_first_letter.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.capitalizeFirstLetter(),
 | 
						|
                  id: l.id,
 | 
						|
                ),
 | 
						|
              )
 | 
						|
              .toList(),
 | 
						|
        ),
 | 
						|
      ),
 | 
						|
    );
 | 
						|
  }
 | 
						|
}
 |