import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../../domain/entities/share_account.dart'; import '../../domain/entities/global_state.dart'; import '../../domain/usecases/mining/get_share_account.dart'; import '../../domain/usecases/mining/get_global_state.dart'; import '../../core/di/injection.dart'; // Use Cases Providers final getShareAccountUseCaseProvider = Provider((ref) { return getIt(); }); final getGlobalStateUseCaseProvider = Provider((ref) { return getIt(); }); // State Providers final shareAccountProvider = FutureProvider.family( (ref, accountSequence) async { final useCase = ref.watch(getShareAccountUseCaseProvider); final result = await useCase(accountSequence); return result.fold( (failure) => throw Exception(failure.message), (account) => account, ); }, ); final globalStateProvider = FutureProvider((ref) async { final useCase = ref.watch(getGlobalStateUseCaseProvider); final result = await useCase(); return result.fold( (failure) => throw Exception(failure.message), (state) => state, ); }); final currentPriceProvider = Provider((ref) { final globalState = ref.watch(globalStateProvider); return globalState.when( data: (state) => state?.currentPrice ?? '0', loading: () => '0', error: (_, __) => '0', ); });