Compare commits

...

3 Commits

Author SHA1 Message Date
Yaros f85efb8018 chore: use totalAssets from service 2026-06-11 21:26:20 +02:00
Yaros b827d0023e Merge branch 'main' into feat/map-asset-number 2026-06-10 16:04:33 +02:00
Yaros b97ff581d7 feat(mobile): map asset number 2026-06-08 18:09:16 +02:00
@@ -1,6 +1,11 @@
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/domain/models/events.model.dart';
import 'package:immich_mobile/domain/utils/event_stream.dart';
import 'package:immich_mobile/extensions/build_context_extensions.dart';
import 'package:immich_mobile/generated/translations.g.dart';
import 'package:immich_mobile/presentation/widgets/bottom_sheet/base_bottom_sheet.widget.dart';
import 'package:immich_mobile/presentation/widgets/bottom_sheet/general_bottom_sheet.widget.dart';
import 'package:immich_mobile/presentation/widgets/map/map.state.dart';
@@ -53,7 +58,43 @@ class _ScopedMapTimeline extends StatelessWidget {
return timelineService;
}),
],
child: const Timeline(appBar: null, bottomSheet: GeneralBottomSheet(minChildSize: 0.23), withScrubber: false),
child: const _MapTimelineContent(),
);
}
}
class _MapTimelineContent extends ConsumerStatefulWidget {
const _MapTimelineContent();
@override
ConsumerState<_MapTimelineContent> createState() => _MapTimelineContentState();
}
class _MapTimelineContentState extends ConsumerState<_MapTimelineContent> {
StreamSubscription? _reloadSubscription;
@override
void initState() {
super.initState();
_reloadSubscription = EventStream.shared.listen<TimelineReloadEvent>((_) => setState(() {}));
}
@override
void dispose() {
_reloadSubscription?.cancel();
super.dispose();
}
@override
Widget build(BuildContext context) {
final count = ref.watch(timelineServiceProvider.select((s) => s.totalAssets));
return Column(
children: [
Text(context.t.map_assets_in_bounds(count: count), style: context.themeData.textTheme.headlineSmall),
const Expanded(
child: Timeline(appBar: null, bottomSheet: GeneralBottomSheet(minChildSize: 0.23), withScrubber: false),
),
],
);
}
}