addEmailAddress method

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

Implementation

Future<void> addEmailAddress(BuildContext context, WidgetRef ref) async {
  final account = ref.read(accountProvider);
  final newValue = await showDialog<String>(
    context: context,
    builder: (BuildContext context) => const AddEmailAddr(),
  );
  if (newValue != null && context.mounted) {
    EasyLoading.show(status: L10n.of(context).addingEmailAddress);
    try {
      await account.request3pidManagementTokenViaEmail(newValue);
      ref.invalidate(emailAddressesProvider);
      if (!context.mounted) {
        EasyLoading.dismiss();
        return;
      }
      EasyLoading.showToast(L10n.of(context).pleaseCheckYourInbox);
    } catch (e, s) {
      _log.severe('Failed to submit email address', e, s);
      if (!context.mounted) {
        EasyLoading.dismiss();
        return;
      }
      EasyLoading.showError(
        L10n.of(context).failedToSubmitEmail(e),
        duration: const Duration(seconds: 3),
      );
    }
  }
}