wip: bloc for files

This commit is contained in:
2024-08-17 11:41:38 +02:00
parent ddeeaeaeac
commit 54b777237f
42 changed files with 880 additions and 148 deletions

View File

@ -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) {