import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:dio/dio.dart'; class ConversionUnit { final String name; final String symbol; final String category; final double rateToValue; ConversionUnit({required this.name, required this.symbol, required this.category, required this.rateToValue}); } class ConverterNotifier extends StateNotifier> { ConverterNotifier() : super(_initialUnits); static final List _initialUnits = [ ConversionUnit(name: 'Chilometri', symbol: 'km', category: 'Distanza', rateToValue: 1000), ConversionUnit(name: 'Metri', symbol: 'm', category: 'Distanza', rateToValue: 1), ConversionUnit(name: 'Kilogrammi', symbol: 'kg', category: 'Peso', rateToValue: 1), ConversionUnit(name: 'Libbre', symbol: 'lb', category: 'Peso', rateToValue: 0.453592), ]; Future fetchLiveRates() async { try { final response = await Dio().get('https://api.frankfurter.app/latest?from=EUR'); final rates = response.data['rates'] as Map; state = [ ...state, ConversionUnit(name: 'Dollaro USA', symbol: 'USD', category: 'Valuta', rateToValue: rates['USD']), ConversionUnit(name: 'Euro', symbol: 'EUR', category: 'Valuta', rateToValue: 1.0), ]; } catch (e) { print("Errore API: $e"); } } } final converterProvider = StateNotifierProvider>((ref) => ConverterNotifier());