stack_wallet/lib/services/buy/buy_data_loading_service.dart
sneurlax 61c971973c restyle coin and fiat selection widgets
and:
 - available -> supported
 - do not load simplex data on desktop menu item action
2023-01-13 13:14:56 -06:00

63 lines
1.8 KiB
Dart

import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:stackwallet/providers/providers.dart';
import 'package:stackwallet/services/buy/simplex/simplex_api.dart';
import 'package:stackwallet/utilities/logger.dart';
class BuyDataLoadingService {
Future<void> loadAll(WidgetRef ref) async {
try {
await Future.wait([
_loadSimplexCurrencies(ref),
]);
} catch (e, s) {
Logging.instance.log("BuyDataLoadingService.loadAll failed: $e\n$s",
level: LogLevel.Error);
}
}
Future<void> _loadSimplexCurrencies(WidgetRef ref) async {
bool error = false;
// if (ref.read(simplexLoadStatusStateProvider.state).state ==
// SimplexLoadStatus.loading) {
// // already in progress so just
// return;
// }
ref.read(simplexLoadStatusStateProvider.state).state =
SimplexLoadStatus.loading;
final response = await SimplexAPI.instance.getSupported();
if (response['supportedCryptos'] != null) {
print(response['supportedCryptos']);
ref
.read(supportedSimplexCurrenciesProvider)
.updateSupportedCryptos(response['supportedCryptos']!);
} else {
error = true;
Logging.instance.log(
"_loadSimplexCurrencies: $response",
level: LogLevel.Warning,
);
}
if (response['supportedFiats'] != null) {
print(response['supportedFiats']);
ref
.read(supportedSimplexCurrenciesProvider)
.updateSupportedFiats(response['supportedFiats']!);
} else {
error = true;
Logging.instance.log(
"_loadSimplexCurrencies: $response",
level: LogLevel.Warning,
);
}
if (error) {
// _loadSimplexCurrencies() again?
} else {
ref.read(changeNowEstimatedInitialLoadStatusStateProvider.state).state =
ChangeNowLoadStatus.success;
}
}
}