2025-06-16 20:37:45 +05:30
|
|
|
import 'package:auto_route/auto_route.dart';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
2025-07-04 13:49:15 -05:00
|
|
|
import 'package:immich_mobile/presentation/widgets/memory/memory_lane.widget.dart';
|
2025-06-16 20:37:45 +05:30
|
|
|
import 'package:immich_mobile/presentation/widgets/timeline/timeline.widget.dart';
|
2025-07-04 13:49:15 -05:00
|
|
|
import 'package:immich_mobile/providers/infrastructure/memory.provider.dart';
|
2025-06-16 20:37:45 +05:30
|
|
|
|
|
|
|
@RoutePage()
|
2025-06-30 12:20:13 -05:00
|
|
|
class MainTimelinePage extends ConsumerWidget {
|
2025-06-16 20:37:45 +05:30
|
|
|
const MainTimelinePage({super.key});
|
|
|
|
|
|
|
|
@override
|
2025-06-30 12:20:13 -05:00
|
|
|
Widget build(BuildContext context, WidgetRef ref) {
|
2025-07-04 13:49:15 -05:00
|
|
|
final memoryLaneProvider = ref.watch(driftMemoryFutureProvider);
|
|
|
|
|
|
|
|
return memoryLaneProvider.when(
|
|
|
|
data: (memories) {
|
|
|
|
return memories.isEmpty
|
|
|
|
? const Timeline()
|
|
|
|
: Timeline(
|
|
|
|
topSliverWidget: SliverToBoxAdapter(
|
|
|
|
key: Key('memory-lane-${memories.first.assets.first.id}'),
|
|
|
|
child: DriftMemoryLane(memories: memories),
|
|
|
|
),
|
|
|
|
topSliverWidgetHeight: 200,
|
|
|
|
);
|
|
|
|
},
|
|
|
|
loading: () => const Timeline(),
|
|
|
|
error: (error, stackTrace) => const Timeline(),
|
|
|
|
);
|
2025-06-16 20:37:45 +05:30
|
|
|
}
|
|
|
|
}
|