mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-03 19:17:11 -05:00 
			
		
		
		
	* refactor: user entity * chore: rebase fixes * refactor: remove int user Id * refactor: migrate store userId from int to string * refactor: rename uid to id * fix: migration * pr feedback --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.5 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,
 | 
						|
  );
 | 
						|
});
 |