confirmationTokenAddress method

Future<void> confirmationTokenAddress(
  1. dynamic context,
  2. dynamic ref
)

Implementation

Future<void> confirmationTokenAddress(
  BuildContext context,
  WidgetRef ref,
) async {
  final account = ref.read(accountProvider);
  final newValue = await showDialog<EmailConfirm>(
    context: context,
    builder: (BuildContext context) => const TokenConfirm(),
  );
  if (!context.mounted) return;
  if (newValue == null) return;
  EasyLoading.show(status: L10n.of(context).tryingToConfirmToken);
  try {
    final result = await account.submitTokenFromEmail(
      emailAddress,
      newValue.token,
      newValue.password,
    );
    if (!context.mounted) {
      EasyLoading.dismiss();
      return;
    }
    if (result) {
      ref.invalidate(emailAddressesProvider);
      EasyLoading.showToast(L10n.of(context).looksGoodAddressConfirmed);
    } else {
      _log.severe('Invalid token or password');
      EasyLoading.showError(
        L10n.of(context).invalidTokenOrPassword,
        duration: const Duration(seconds: 3),
      );
    }
  } catch (e, s) {
    _log.severe('Failed to confirm token', e, s);
    if (!context.mounted) {
      EasyLoading.dismiss();
      return;
    }
    EasyLoading.showError(
      L10n.of(context).failedToConfirmToken(e),
      duration: const Duration(seconds: 3),
    );
  }
}