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( (ref, userId) { ref.watch(localeProvider); final timelineService = ref.watch(timelineServiceProvider); return timelineService.watchHomeTimeline(userId); }, dependencies: [localeProvider], ); final multiUsersTimelineProvider = StreamProvider.family>( (ref, userIds) { ref.watch(localeProvider); final timelineService = ref.watch(timelineServiceProvider); return timelineService.watchMultiUsersTimeline(userIds); }, dependencies: [localeProvider], ); final albumTimelineProvider = StreamProvider.autoDispose.family((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((ref) { final timelineService = ref.watch(timelineServiceProvider); return timelineService.watchArchiveTimeline(); }); final favoriteTimelineProvider = StreamProvider((ref) { final timelineService = ref.watch(timelineServiceProvider); return timelineService.watchFavoriteTimeline(); }); final trashTimelineProvider = StreamProvider((ref) { final timelineService = ref.watch(timelineServiceProvider); return timelineService.watchTrashTimeline(); }); final allVideosTimelineProvider = StreamProvider((ref) { final timelineService = ref.watch(timelineServiceProvider); return timelineService.watchAllVideosTimeline(); });