wip: bloc for files
This commit is contained in:
		| @@ -2,26 +2,21 @@ import 'dart:convert'; | ||||
| import 'dart:developer'; | ||||
| 
 | ||||
| import 'package:dio/dio.dart'; | ||||
| import 'package:flutter/foundation.dart'; | ||||
| 
 | ||||
| abstract class DataLoader<TResult> { | ||||
| abstract class HttpDataLoader<TResult> { | ||||
|   final Dio dio; | ||||
|   DataLoader(this.dio) { | ||||
|   HttpDataLoader(this.dio) { | ||||
|     dio.options.connectTimeout = const Duration(seconds: 10).inMilliseconds; | ||||
|     dio.options.sendTimeout = const Duration(seconds: 30).inMilliseconds; | ||||
|     dio.options.receiveTimeout = const Duration(seconds: 30).inMilliseconds; | ||||
|   } | ||||
| 
 | ||||
|   Future<TResult> run() async { | ||||
|     var fetcher = fetch(); | ||||
|     await Future.wait([ | ||||
|       fetcher, | ||||
|       Future.delayed(const Duration(milliseconds: 500)) // TODO tune or remove | ||||
|     ]); | ||||
| 
 | ||||
|     var response = await fetcher; | ||||
|     var response = await fetch(); | ||||
|     try { | ||||
|       return assemble(DataLoaderResult( | ||||
|         json: jsonDecode(response.data!), | ||||
|         json: await compute(jsonDecode, response.data!), | ||||
|         headers: response.headers.map.map((key, value) => MapEntry(key, value.join(';'))), | ||||
|       )); | ||||
|     } catch(trace, e) { | ||||
		Reference in New Issue
	
	Block a user