mirror of
				https://github.com/KevinMidboe/immich.git
				synced 2025-10-29 17:40:28 +00:00 
			
		
		
		
	* styling light and dark theme * Icon topbar * Fixed app bar title dark theme * Fixed issue with getting thumbnail for things * Refactor sharing page * Refactor scroll thumb * Refactor chip in auto backup indiation button * Refactor sharing page * Added theme toggle * Up version for testflight build * Refactor backup controller page * Refactor album selection page * refactor album pages * Refactor gradient color profile header * Added theme switcher * Register app theme correctly * Added locale to the app * Added translation key * Styling for bottomsheet colors * up server version * Fixed font size * Fixed overlapsed sliverappbar on photos screen
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.9 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/home/providers/home_page_state.provider.dart';
 | |
| import 'package:immich_mobile/routing/router.dart';
 | |
| 
 | |
| class TabControllerPage extends ConsumerWidget {
 | |
|   const TabControllerPage({Key? key}) : super(key: key);
 | |
| 
 | |
|   @override
 | |
|   Widget build(BuildContext context, WidgetRef ref) {
 | |
|     var isMultiSelectEnable =
 | |
|         ref.watch(homePageStateProvider).isMultiSelectEnable;
 | |
| 
 | |
|     return AutoTabsRouter(
 | |
|       routes: [
 | |
|         const HomeRoute(),
 | |
|         SearchRoute(),
 | |
|         const SharingRoute(),
 | |
|         const LibraryRoute()
 | |
|       ],
 | |
|       builder: (context, child, animation) {
 | |
|         final tabsRouter = AutoTabsRouter.of(context);
 | |
|         return WillPopScope(
 | |
|           onWillPop: () async {
 | |
|             tabsRouter.setActiveIndex(0);
 | |
|             return false;
 | |
|           },
 | |
|           child: Scaffold(
 | |
|             body: FadeTransition(
 | |
|               opacity: animation,
 | |
|               child: child,
 | |
|             ),
 | |
|             bottomNavigationBar: isMultiSelectEnable
 | |
|                 ? null
 | |
|                 : BottomNavigationBar(
 | |
|                     selectedLabelStyle: const TextStyle(
 | |
|                       fontSize: 13,
 | |
|                       fontWeight: FontWeight.w600,
 | |
|                     ),
 | |
|                     unselectedLabelStyle: const TextStyle(
 | |
|                       fontSize: 13,
 | |
|                       fontWeight: FontWeight.w600,
 | |
|                     ),
 | |
|                     currentIndex: tabsRouter.activeIndex,
 | |
|                     onTap: (index) {
 | |
|                       tabsRouter.setActiveIndex(index);
 | |
|                     },
 | |
|                     items: [
 | |
|                       BottomNavigationBarItem(
 | |
|                         label: 'tab_controller_nav_photos'.tr(),
 | |
|                         icon: const Icon(Icons.photo_outlined),
 | |
|                         activeIcon: const Icon(Icons.photo),
 | |
|                       ),
 | |
|                       BottomNavigationBarItem(
 | |
|                         label: 'tab_controller_nav_search'.tr(),
 | |
|                         icon: const Icon(Icons.search_rounded),
 | |
|                         activeIcon: const Icon(Icons.search),
 | |
|                       ),
 | |
|                       BottomNavigationBarItem(
 | |
|                         label: 'tab_controller_nav_sharing'.tr(),
 | |
|                         icon: const Icon(Icons.group_outlined),
 | |
|                         activeIcon: const Icon(Icons.group),
 | |
|                       ),
 | |
|                       BottomNavigationBarItem(
 | |
|                         label: 'tab_controller_nav_library'.tr(),
 | |
|                         icon: const Icon(Icons.photo_album_outlined),
 | |
|                         activeIcon: const Icon(Icons.photo_album_rounded),
 | |
|                       )
 | |
|                     ],
 | |
|                   ),
 | |
|           ),
 | |
|         );
 | |
|       },
 | |
|     );
 | |
|   }
 | |
| }
 |