mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-04 03:39:37 -05: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),
 | 
						|
                      )
 | 
						|
                    ],
 | 
						|
                  ),
 | 
						|
          ),
 | 
						|
        );
 | 
						|
      },
 | 
						|
    );
 | 
						|
  }
 | 
						|
}
 |