29 lines
		
	
	
		
			713 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			713 B
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:riverpod_annotation/riverpod_annotation.dart';
 | |
| import 'package:island/models/embed.dart';
 | |
| import 'package:island/pods/network.dart';
 | |
| 
 | |
| part 'link_preview.g.dart';
 | |
| 
 | |
| @riverpod
 | |
| class LinkPreview extends _$LinkPreview {
 | |
|   @override
 | |
|   Future<SnScrappedLink?> build(String url) async {
 | |
|     final client = ref.read(apiClientProvider);
 | |
| 
 | |
|     try {
 | |
|       final response = await client.get(
 | |
|         '/scrap/link',
 | |
|         queryParameters: {'url': url},
 | |
|       );
 | |
| 
 | |
|       if (response.statusCode == 200 && response.data != null) {
 | |
|         return SnScrappedLink.fromJson(response.data);
 | |
|       }
 | |
|       return null;
 | |
|     } catch (e) {
 | |
|       // Return null on error to show fallback UI
 | |
|       return null;
 | |
|     }
 | |
|   }
 | |
| }
 |