mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-04 03:27:09 -05:00 
			
		
		
		
	* Refactor sharing to album * Added library page in the bottom navigation bar * Refactor SharedAlbumService to album service * Refactor apiProvider to its file * Added image grid * render album thumbnail * Using the wrap to render thumbnail and album info better * Navigate to album viewer * After deletion, navigate to the respective page of the shared and non-shared album * Correctly remove album in local state * Refactor create album page * Implemented create non-shared album
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'dart:async';
 | 
						|
 | 
						|
import 'package:flutter/material.dart';
 | 
						|
import 'package:hooks_riverpod/hooks_riverpod.dart';
 | 
						|
import 'package:immich_mobile/shared/providers/api.provider.dart';
 | 
						|
import 'package:immich_mobile/shared/services/api.service.dart';
 | 
						|
import 'package:openapi/api.dart';
 | 
						|
 | 
						|
final assetServiceProvider = Provider(
 | 
						|
  (ref) => AssetService(
 | 
						|
    ref.watch(apiServiceProvider),
 | 
						|
  ),
 | 
						|
);
 | 
						|
 | 
						|
class AssetService {
 | 
						|
  final ApiService _apiService;
 | 
						|
 | 
						|
  AssetService(this._apiService);
 | 
						|
 | 
						|
  Future<List<AssetResponseDto>?> getAllAsset() async {
 | 
						|
    try {
 | 
						|
      return await _apiService.assetApi.getAllAssets();
 | 
						|
    } catch (e) {
 | 
						|
      debugPrint("Error [getAllAsset]  ${e.toString()}");
 | 
						|
      return null;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  Future<AssetResponseDto?> getAssetById(String assetId) async {
 | 
						|
    try {
 | 
						|
      return await _apiService.assetApi.getAssetById(assetId);
 | 
						|
    } catch (e) {
 | 
						|
      debugPrint("Error [getAssetById]  ${e.toString()}");
 | 
						|
      return null;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  Future<List<DeleteAssetResponseDto>?> deleteAssets(
 | 
						|
    Set<AssetResponseDto> deleteAssets,
 | 
						|
  ) async {
 | 
						|
    try {
 | 
						|
      List<String> payload = [];
 | 
						|
 | 
						|
      for (var asset in deleteAssets) {
 | 
						|
        payload.add(asset.id);
 | 
						|
      }
 | 
						|
 | 
						|
      return await _apiService.assetApi
 | 
						|
          .deleteAsset(DeleteAssetDto(ids: payload));
 | 
						|
    } catch (e) {
 | 
						|
      debugPrint("Error getAllAsset  ${e.toString()}");
 | 
						|
      return null;
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 |