immich/mobile/lib/providers/timeline.provider.dart
shenlong e52b9d15b5
chore: bump dart sdk to 3.8 (#20355)
* chore: bump dart sdk to 3.8

* chore: make build

* make pigeon

* chore: format files

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-28 14:04:03 -05:00

69 lines
2.6 KiB
Dart

import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:immich_mobile/entities/asset.entity.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, String?>((ref, userId) {
if (userId == null) {
return const Stream.empty();
}
ref.watch(localeProvider);
final timelineService = ref.watch(timelineServiceProvider);
return timelineService.watchHomeTimeline(userId);
}, dependencies: [localeProvider]);
final multiUsersTimelineProvider = StreamProvider.family<RenderList, List<String>>((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();
});
final assetSelectionTimelineProvider = StreamProvider<RenderList>((ref) {
final timelineService = ref.watch(timelineServiceProvider);
return timelineService.watchAssetSelectionTimeline();
});
final assetsTimelineProvider = FutureProvider.family<RenderList, List<Asset>>((ref, assets) {
final timelineService = ref.watch(timelineServiceProvider);
return timelineService.getTimelineFromAssets(assets, null);
});
final lockedTimelineProvider = StreamProvider<RenderList>((ref) {
final timelineService = ref.watch(timelineServiceProvider);
return timelineService.watchLockedTimelineProvider();
});