From ac0a7fe5c4eeef382822d045ea253c0c9ad3b048 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=CC=81bastien=20Loix?= Date: Mon, 12 Jul 2021 16:14:43 +0100 Subject: [PATCH] Refactor bypass validation --- .../forms/hook_form_lib/hooks/use_field.ts | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_field.ts b/src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_field.ts index f25fd35b767b3f..77bb17d7b9e601 100644 --- a/src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_field.ts +++ b/src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_field.ts @@ -15,6 +15,7 @@ import { FieldValidateResponse, ValidationError, FormData, + ValidationConfig, } from '../types'; import { FIELD_TYPES, VALIDATION_TYPES } from '../constants'; @@ -212,6 +213,24 @@ export const useField = ( cancelInflightValidation(); + const doByPassValidation = ({ + type: validationType, + isBlocking, + }: ValidationConfig) => { + if ( + typeof validationTypeToValidate !== 'undefined' && + validationType !== validationTypeToValidate + ) { + return true; + } + + if (runOnlyBlockingValidations && isBlocking === false) { + return true; + } + + return false; + }; + const runAsync = async () => { const validationErrors: ValidationError[] = []; @@ -222,17 +241,9 @@ export const useField = ( validator, exitOnFail = true, type: validationType = VALIDATION_TYPES.FIELD, - isBlocking = true, } = validation; - if ( - typeof validationTypeToValidate !== 'undefined' && - validationType !== validationTypeToValidate - ) { - continue; - } - - if (runOnlyBlockingValidations && isBlocking === false) { + if (doByPassValidation(validation)) { continue; } @@ -273,17 +284,9 @@ export const useField = ( validator, exitOnFail = true, type: validationType = VALIDATION_TYPES.FIELD, - isBlocking = true, } = validation; - if ( - typeof validationTypeToValidate !== 'undefined' && - validationType !== validationTypeToValidate - ) { - continue; - } - - if (runOnlyBlockingValidations && isBlocking === false) { + if (doByPassValidation(validation)) { continue; }