25 lines
		
	
	
		
			775 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			775 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
import 'package:hooks_riverpod/hooks_riverpod.dart';
 | 
						|
import 'package:island/models/file_pool.dart';
 | 
						|
import 'package:island/pods/config.dart';
 | 
						|
import 'package:island/pods/network.dart';
 | 
						|
 | 
						|
final poolsProvider = FutureProvider<List<SnFilePool>>((ref) async {
 | 
						|
  final dio = ref.watch(apiClientProvider);
 | 
						|
  final response = await dio.get('/drive/pools');
 | 
						|
  return response.data
 | 
						|
      .map((e) => SnFilePool.fromJson(e))
 | 
						|
      .cast<SnFilePool>()
 | 
						|
      .toList();
 | 
						|
});
 | 
						|
 | 
						|
String? resolveDefaultPoolId(WidgetRef ref, List<SnFilePool> pools) {
 | 
						|
  final settings = ref.watch(appSettingsNotifierProvider);
 | 
						|
 | 
						|
  final configuredId = settings.defaultPoolId;
 | 
						|
  if (configuredId != null && pools.any((p) => p.id == configuredId)) {
 | 
						|
    return configuredId;
 | 
						|
  }
 | 
						|
 | 
						|
  return pools.firstOrNull?.id;
 | 
						|
}
 |