mirror of
https://github.com/immich-app/immich.git
synced 2025-10-24 23:39:03 -04:00
* chore: map widget and page styling * fix: map bottom sheet styling * fix: attribution location on android it appears that on android, the attribution marker is positioned from the top of the display and on iOS its positioned from the safe area edge
45 lines
1.6 KiB
Dart
45 lines
1.6 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
|
import 'package:immich_mobile/presentation/widgets/bottom_sheet/base_bottom_sheet.widget.dart';
|
|
import 'package:immich_mobile/presentation/widgets/map/map.state.dart';
|
|
import 'package:immich_mobile/presentation/widgets/timeline/timeline.widget.dart';
|
|
import 'package:immich_mobile/providers/infrastructure/timeline.provider.dart';
|
|
|
|
class MapBottomSheet extends StatelessWidget {
|
|
const MapBottomSheet({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return BaseBottomSheet(
|
|
initialChildSize: 0.25,
|
|
maxChildSize: 0.9,
|
|
shouldCloseOnMinExtent: false,
|
|
resizeOnScroll: false,
|
|
actions: [],
|
|
backgroundColor: context.themeData.colorScheme.surface,
|
|
slivers: [const SliverFillRemaining(hasScrollBody: false, child: _ScopedMapTimeline())],
|
|
);
|
|
}
|
|
}
|
|
|
|
class _ScopedMapTimeline extends StatelessWidget {
|
|
const _ScopedMapTimeline();
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
// TODO: this causes the timeline to switch to flicker to "loading" state and back. This is both janky and inefficient.
|
|
return ProviderScope(
|
|
overrides: [
|
|
timelineServiceProvider.overrideWith((ref) {
|
|
final bounds = ref.watch(mapStateProvider).bounds;
|
|
final timelineService = ref.watch(timelineFactoryProvider).map(bounds);
|
|
ref.onDispose(timelineService.dispose);
|
|
return timelineService;
|
|
}),
|
|
],
|
|
child: const Timeline(appBar: null, bottomSheet: null, withScrubber: false),
|
|
);
|
|
}
|
|
}
|