immich/mobile/lib/providers/timeline.provider.dart
Alex 5acf6868b7
refactor(mobile): render list (#16239)
* refactor(mobile): trash provider

* refactor(mobile): trash provider

* pr feedback

* archive timeline

* favorite

* album

* trash timeline

* all videos timeline

* refactor

* refactor: home timeline and partner timeline

* update analysis option
2025-02-21 09:01:46 -06:00

56 lines
1.9 KiB
Dart

import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/providers/album/album.provider.dart';
import 'package:immich_mobile/providers/locale_provider.dart';
import 'package:immich_mobile/services/timeline.service.dart';
import 'package:immich_mobile/widgets/asset_grid/asset_grid_data_structure.dart';
final singleUserTimelineProvider = StreamProvider.family<RenderList, int>(
(ref, userId) {
ref.watch(localeProvider);
final timelineService = ref.watch(timelineServiceProvider);
return timelineService.watchHomeTimeline(userId);
},
dependencies: [localeProvider],
);
final multiUsersTimelineProvider = StreamProvider.family<RenderList, List<int>>(
(ref, userIds) {
ref.watch(localeProvider);
final timelineService = ref.watch(timelineServiceProvider);
return timelineService.watchMultiUsersTimeline(userIds);
},
dependencies: [localeProvider],
);
final albumTimelineProvider =
StreamProvider.autoDispose.family<RenderList, int>((ref, id) {
final album = ref.watch(albumWatcher(id)).value;
final timelineService = ref.watch(timelineServiceProvider);
if (album != null) {
return timelineService.watchAlbumTimeline(album);
}
return const Stream.empty();
});
final archiveTimelineProvider = StreamProvider<RenderList>((ref) {
final timelineService = ref.watch(timelineServiceProvider);
return timelineService.watchArchiveTimeline();
});
final favoriteTimelineProvider = StreamProvider<RenderList>((ref) {
final timelineService = ref.watch(timelineServiceProvider);
return timelineService.watchFavoriteTimeline();
});
final trashTimelineProvider = StreamProvider<RenderList>((ref) {
final timelineService = ref.watch(timelineServiceProvider);
return timelineService.watchTrashTimeline();
});
final allVideosTimelineProvider = StreamProvider<RenderList>((ref) {
final timelineService = ref.watch(timelineServiceProvider);
return timelineService.watchAllVideosTimeline();
});