Model Riverpod

State

class Currency {
  final CurrencyRateModel currency;
  final double value; // amount of currency
  final double rate; // conversion rate on €
}

class CurrencyExchangeState {
  final Currency currency1;
  final Currency currency2;
}

Actions

import 'package:flutter_riverpod/flutter_riverpod.dart';

final actionsProvider = Provider<Actions>((ref) {
  return ActionsModel();
});

abstract class Actions {
  void setCurrencyId1(String id); // will set currency and rate
  void setCurrencyId2(String id); // will set currency and rate
  void setCurrencyValue1(double value);
  void setCurrencyValue2(double value);
  void reverseCurrencies(); // keep currency1.value as base
}

class ActionsModel implements Actions {
  @override
  void setCurrencyId1(String id) {
    // Implémentez la logique pour setCurrencyId1 ici
  }

  @override
  void setCurrencyId2(String id) {
    // Implémentez la logique pour setCurrencyId2 ici
  }

  @override
  void setCurrencyValue1(double value) {
    // Implémentez la logique pour setCurrencyValue1 ici
  }

  @override
  void setCurrencyValue2(double value) {
    // Implémentez la logique pour setCurrencyValue2 ici
  }

  @override
  void reverseCurrencies() {
    // Implémentez la logique pour reverseCurrencies ici
  }
}
Table of Contents