verifyAddPrimaryEmailOtp method

Future<void> verifyAddPrimaryEmailOtp({
  1. required BuildContext context,
  2. required String? otp,
  3. required String userInput,
  4. required String? email,
  5. required String flag,
  6. required Function toggleInvalidCodeMsg,
  7. required TextEditingController controller,
})

Implementation

Future<void> verifyAddPrimaryEmailOtp({
  required BuildContext context,
  required String? otp,
  required String userInput,
  required String? email,
  required String flag,
  required Function toggleInvalidCodeMsg,
  required TextEditingController controller,
}) async {
  /// check if OTP match
  if (userInput == otp) {
    toggleLoadingIndicator(context: context, flag: flag);
    final Map<String, dynamic> result =
        await addPrimaryEmail(context: context, email: email, otp: otp);
    if (result['status'] == 'error') {
      toggleLoadingIndicator(context: context, flag: flag, show: false);
      Navigator.pop(context, <String, String>{
        'status': 'error',
        'message': addContactFeedback(email, hasError: true)
      });
      return;
    }
    toggleLoadingIndicator(context: context, flag: flag, show: false);
    Navigator.pop(context, <String, String>{
      'status': 'ok',
      'message': addContactFeedback(email)
    });

    return;
  }
  toggleInvalidCodeMsg(val: true);
  controller.clear();
  await HapticFeedback.vibrate();
}