Skip to content
Snippets Groups Projects
payment_cubit.dart 1.07 KiB
Newer Older
vjrj's avatar
vjrj committed
import 'dart:typed_data';

import 'package:hydrated_bloc/hydrated_bloc.dart';

import 'payment_state.dart';

class PaymentCubit extends HydratedCubit<PaymentState> {
  PaymentCubit() : super(PaymentState.emptyPayment);

  void updatePayment({
    String? description,
    double? amount,
    bool? isSent,
  }) {
    final PaymentState newState = state.copyWith(
      description: description,
      amount: amount,
      isSent: isSent,
    );
    emit(newState);
  }

  void selectUser(String publicKey, String nick, Uint8List avatar) {
    final PaymentState newState = state.copyWith(
      publicKey: publicKey,
      nick: nick,
      avatar: avatar,
    );
    emit(newState);
  }

  void selectKey(String publicKey) {
    final PaymentState newState = state.copyWith(
      publicKey: publicKey,
    );
    emit(newState);
  }

  @override
  PaymentState? fromJson(Map<String, dynamic> json) =>
      PaymentState.fromJson(json);

  @override
  Map<String, dynamic>? toJson(PaymentState state) => state.toJson();

  void clearRecipient() {
    emit(PaymentState.emptyPayment);
  }
}