mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-03 11:07:10 -05:00 
			
		
		
		
	* chore: maplibre gl pubspec * refactor(wip): maplibre for maps * refactor(wip): dual pane + location button * chore: remove flutter_map and deps * refactor(wip): map zoom to location * refactor: location picker * open gallery_viewer on marker tap * remove detectScaleGesture param * test: debounce and throttle * chore: rename get location method * feat(mobile): Adds gps locator to map prompt for easy geolocation (#6282) * Refactored get gps coords * Use var for linter's sake, should handle errors better * Cleanup * Fix linter issues * chore(dep): update maplibre to official lib --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> Co-authored-by: Joshua Herrera <joshua.herrera227@gmail.com>
		
			
				
	
	
		
			62 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'package:flutter/material.dart';
 | 
						|
import 'package:hooks_riverpod/hooks_riverpod.dart';
 | 
						|
import 'package:immich_mobile/modules/map/providers/map_state.provider.dart';
 | 
						|
import 'package:immich_mobile/modules/map/widgets/map_settings/map_settings_list_tile.dart';
 | 
						|
import 'package:immich_mobile/modules/map/widgets/map_settings/map_settings_time_dropdown.dart';
 | 
						|
import 'package:immich_mobile/modules/map/widgets/map_settings/map_theme_picker.dart';
 | 
						|
 | 
						|
class MapSettingsSheet extends HookConsumerWidget {
 | 
						|
  const MapSettingsSheet({super.key});
 | 
						|
 | 
						|
  @override
 | 
						|
  Widget build(BuildContext context, WidgetRef ref) {
 | 
						|
    final mapState = ref.watch(mapStateNotifierProvider);
 | 
						|
 | 
						|
    return DraggableScrollableSheet(
 | 
						|
      expand: false,
 | 
						|
      initialChildSize: 0.6,
 | 
						|
      builder: (ctx, scrollController) => SingleChildScrollView(
 | 
						|
        controller: scrollController,
 | 
						|
        child: Card(
 | 
						|
          elevation: 0.0,
 | 
						|
          shadowColor: Colors.transparent,
 | 
						|
          margin: EdgeInsets.zero,
 | 
						|
          child: Column(
 | 
						|
            mainAxisSize: MainAxisSize.max,
 | 
						|
            children: [
 | 
						|
              MapThemePicker(
 | 
						|
                themeMode: mapState.themeMode,
 | 
						|
                onThemeChange: (mode) => ref
 | 
						|
                    .read(mapStateNotifierProvider.notifier)
 | 
						|
                    .switchTheme(mode),
 | 
						|
              ),
 | 
						|
              const Divider(height: 30, thickness: 2),
 | 
						|
              MapSettingsListTile(
 | 
						|
                title: "map_settings_only_show_favorites",
 | 
						|
                selected: mapState.showFavoriteOnly,
 | 
						|
                onChanged: (favoriteOnly) => ref
 | 
						|
                    .read(mapStateNotifierProvider.notifier)
 | 
						|
                    .switchFavoriteOnly(favoriteOnly),
 | 
						|
              ),
 | 
						|
              MapSettingsListTile(
 | 
						|
                title: "map_settings_include_show_archived",
 | 
						|
                selected: mapState.includeArchived,
 | 
						|
                onChanged: (includeArchive) => ref
 | 
						|
                    .read(mapStateNotifierProvider.notifier)
 | 
						|
                    .switchIncludeArchived(includeArchive),
 | 
						|
              ),
 | 
						|
              MapTimeDropDown(
 | 
						|
                relativeTime: mapState.relativeTime,
 | 
						|
                onTimeChange: (time) => ref
 | 
						|
                    .read(mapStateNotifierProvider.notifier)
 | 
						|
                    .setRelativeTime(time),
 | 
						|
              ),
 | 
						|
              const SizedBox(height: 20),
 | 
						|
            ],
 | 
						|
          ),
 | 
						|
        ),
 | 
						|
      ),
 | 
						|
    );
 | 
						|
  }
 | 
						|
}
 |