diff --git a/packages/lib/package.json b/packages/lib/package.json index 5898a814..c8598430 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -1,7 +1,7 @@ { "name": "solid-form-handler", "description": "A SolidJS library for simplifying form validations.", - "version": "1.2.0-alpha.4", + "version": "1.2.0-alpha.5", "license": "MIT", "type": "module", "keywords": [ diff --git a/packages/lib/src/hooks/useFormHandler/index.ts b/packages/lib/src/hooks/useFormHandler/index.ts index 466b32b6..4d4fd0cf 100644 --- a/packages/lib/src/hooks/useFormHandler/index.ts +++ b/packages/lib/src/hooks/useFormHandler/index.ts @@ -607,13 +607,19 @@ export const useFormHandler = (validationSchema: ValidationSchema, o setFormIsValidating(true); await validateField( ROOT_KEY, - { force: true, omitTriggers: true, throwException: true, ...options }, + { force: true, omitTriggers: true, throwException: true, silentValidation: options?.silentValidation }, { ..._, recursive: true } ); + setFormIsValidating(false); + return { isFormInvalid: false }; } catch (error) { - throw new FormErrorsException(error as ErrorMap); - } finally { setFormIsValidating(false); + + if (options?.throwException === false) { + return { isFormInvalid: true }; + } + + throw new FormErrorsException(error as ErrorMap); } }; @@ -1081,7 +1087,7 @@ export const useFormHandler = (validationSchema: ValidationSchema, o ) => Promise, touchField, validateField: validateField as (path?: string, options?: ValidateFieldOptions) => Promise, - validateForm, + validateForm: validateForm as (options?: ValidateOptions) => Promise<{ isFormInvalid: boolean }>, _: { addFieldsetState, buildFieldState,