react-hook-form
Advanced tools
Comparing version 2.1.0-beta.4 to 2.1.0-beta.5
@@ -305,32 +305,2 @@ import { useRef, useState, useEffect } from 'react'; | ||
async function validateAllFields({ previous, data, index, fieldsLength, resolve, fields, removeReferenceAndEventListeners, validateWithStateUpdate, }) { | ||
const resolvedPrevious = await previous; | ||
const { ref, ref: { name, type }, options, } = data; | ||
const lastChild = fieldsLength - 1 === index; | ||
removeReferenceAndEventListeners(data); | ||
if (!fields[name]) | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
const fieldError = await validateField(data, fields); | ||
const hasError = fieldError && fieldError[name]; | ||
if (!hasError) { | ||
resolvedPrevious.values[name] = getFieldValue(fields, ref); | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
} | ||
if (isRadioInput(type) && Array.isArray(options)) { | ||
options.forEach(option => { | ||
if (option.eventAttached && option.eventAttached.includes('change')) | ||
return; | ||
option.ref.addEventListener('change', validateWithStateUpdate); | ||
option.eventAttached = [...(option.eventAttached || []), 'change']; | ||
}); | ||
// @ts-ignore | ||
} | ||
else if (!fields[name].eventAttached || !fields[name].eventAttached.includes('input')) { | ||
ref.addEventListener('input', validateWithStateUpdate); | ||
data.eventAttached = [...(data.eventAttached || []), 'input']; | ||
} | ||
resolvedPrevious.errors = Object.assign({}, (resolvedPrevious.errors || []), fieldError); | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
} | ||
function combineFieldValues(data) { | ||
@@ -490,13 +460,30 @@ const output = Object.entries(data).reduce((previous, [key, value]) => { | ||
else { | ||
const result = await new Promise(resolve => currentFieldValues.reduce(async (previous, [name, data], index) => { | ||
return await validateAllFields({ | ||
previous, | ||
data, | ||
index, | ||
fieldsLength, | ||
fields, | ||
removeReferenceAndEventListeners, | ||
validateWithStateUpdate, | ||
resolve, | ||
}); | ||
const result = await new Promise(resolve => currentFieldValues.reduce(async (previous, data, index) => { | ||
const resolvedPrevious = await previous; | ||
const { ref, ref: { name, type }, options, } = data; | ||
const lastChild = fieldsLength - 1 === index; | ||
removeReferenceAndEventListeners(data); | ||
if (!fields[name]) | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
const fieldError = await validateField(data, fields); | ||
const hasError = fieldError && fieldError[name]; | ||
if (!hasError) { | ||
resolvedPrevious.values[name] = getFieldValue(fields, ref); | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
} | ||
if (isRadioInput(type) && Array.isArray(options)) { | ||
options.forEach(option => { | ||
if (option.eventAttached && option.eventAttached.includes('change')) | ||
return; | ||
option.ref.addEventListener('change', validateWithStateUpdate); | ||
option.eventAttached = [...(option.eventAttached || []), 'change']; | ||
}); | ||
// @ts-ignore | ||
} | ||
else if (!fields[name].eventAttached || !fields[name].eventAttached.includes('input')) { | ||
ref.addEventListener('input', validateWithStateUpdate); | ||
data.eventAttached = [...(data.eventAttached || []), 'input']; | ||
} | ||
resolvedPrevious.errors = Object.assign({}, (resolvedPrevious.localErrors || []), fieldError); | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
}, Promise.resolve({ | ||
@@ -503,0 +490,0 @@ errors: {}, |
@@ -307,32 +307,2 @@ 'use strict'; | ||
async function validateAllFields({ previous, data, index, fieldsLength, resolve, fields, removeReferenceAndEventListeners, validateWithStateUpdate, }) { | ||
const resolvedPrevious = await previous; | ||
const { ref, ref: { name, type }, options, } = data; | ||
const lastChild = fieldsLength - 1 === index; | ||
removeReferenceAndEventListeners(data); | ||
if (!fields[name]) | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
const fieldError = await validateField(data, fields); | ||
const hasError = fieldError && fieldError[name]; | ||
if (!hasError) { | ||
resolvedPrevious.values[name] = getFieldValue(fields, ref); | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
} | ||
if (isRadioInput(type) && Array.isArray(options)) { | ||
options.forEach(option => { | ||
if (option.eventAttached && option.eventAttached.includes('change')) | ||
return; | ||
option.ref.addEventListener('change', validateWithStateUpdate); | ||
option.eventAttached = [...(option.eventAttached || []), 'change']; | ||
}); | ||
// @ts-ignore | ||
} | ||
else if (!fields[name].eventAttached || !fields[name].eventAttached.includes('input')) { | ||
ref.addEventListener('input', validateWithStateUpdate); | ||
data.eventAttached = [...(data.eventAttached || []), 'input']; | ||
} | ||
resolvedPrevious.errors = Object.assign({}, (resolvedPrevious.errors || []), fieldError); | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
} | ||
function combineFieldValues(data) { | ||
@@ -492,13 +462,30 @@ const output = Object.entries(data).reduce((previous, [key, value]) => { | ||
else { | ||
const result = await new Promise(resolve => currentFieldValues.reduce(async (previous, [name, data], index) => { | ||
return await validateAllFields({ | ||
previous, | ||
data, | ||
index, | ||
fieldsLength, | ||
fields, | ||
removeReferenceAndEventListeners, | ||
validateWithStateUpdate, | ||
resolve, | ||
}); | ||
const result = await new Promise(resolve => currentFieldValues.reduce(async (previous, data, index) => { | ||
const resolvedPrevious = await previous; | ||
const { ref, ref: { name, type }, options, } = data; | ||
const lastChild = fieldsLength - 1 === index; | ||
removeReferenceAndEventListeners(data); | ||
if (!fields[name]) | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
const fieldError = await validateField(data, fields); | ||
const hasError = fieldError && fieldError[name]; | ||
if (!hasError) { | ||
resolvedPrevious.values[name] = getFieldValue(fields, ref); | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
} | ||
if (isRadioInput(type) && Array.isArray(options)) { | ||
options.forEach(option => { | ||
if (option.eventAttached && option.eventAttached.includes('change')) | ||
return; | ||
option.ref.addEventListener('change', validateWithStateUpdate); | ||
option.eventAttached = [...(option.eventAttached || []), 'change']; | ||
}); | ||
// @ts-ignore | ||
} | ||
else if (!fields[name].eventAttached || !fields[name].eventAttached.includes('input')) { | ||
ref.addEventListener('input', validateWithStateUpdate); | ||
data.eventAttached = [...(data.eventAttached || []), 'input']; | ||
} | ||
resolvedPrevious.errors = Object.assign({}, (resolvedPrevious.localErrors || []), fieldError); | ||
return lastChild ? resolve(resolvedPrevious) : resolvedPrevious; | ||
}, Promise.resolve({ | ||
@@ -505,0 +492,0 @@ errors: {}, |
{ | ||
"name": "react-hook-form", | ||
"version": "2.1.0-beta.4", | ||
"version": "2.1.0-beta.5", | ||
"main": "dist/index.js", | ||
@@ -5,0 +5,0 @@ "module": "dist/index.es.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
69042
1712