8000 :sparkles: reduce useless code · vue-use-form/vue-use-form@4e1f03a · GitHub
[go: up one dir, main page]

Skip to content

Commit 4e1f03a

Browse files
committed
✨ reduce useless code
1 parent 62cf3f2 commit 4e1f03a

File tree

1 file changed

+24
-33
lines changed

1 file changed

+24
-33
lines changed

packages/core/src/logic/creatFormControl.ts

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
import { nextTick, reactive, ref, unref } from 'vue'
2+
3+
import { VALIDATION_MODE } from '../shared/constant'
4+
import type { FieldError, FieldErrors } from '../types/errors'
25
import type { Field, FieldElement, FieldValues, Fields } from '../types/filed'
36
import type {
47
FieldNamesMarkedBoolean,
@@ -20,32 +23,19 @@ import type {
2023
UseFormTriggerValidate,
2124
UseFormUnregister,
2225
} from '../types/form'
23-
import type { FieldError, FieldErrors } from '../types/errors'
24-
import {
25-
get,
26-
isArray,
27-
isEmptyObject,
28-
isFunction,
29-
isNullOrUndefined,
30-
isString,
31-
isUndefined,
32-
set,
33-
unset,
34-
} from '../utils'
35-
import { isRadioOrCheckboxInput } from '../utils/fieldElement'
36-
import { isFieldElement } from '../utils/isFieldElement'
3726
import type { DefaultValues, UnpackNestedValue } from '../types/utils'
38-
import { getValidationMode } from '../utils/getValidationMode'
27+
import { get, isArray, isEmptyObject, isFunction, isNullOrUndefined, isString, isUndefined, set, unset } from '../utils'
3928

4029
import {
4130
createErrorHandler as createErrorHandlerUtil,
4231
createSubmitHandler as createSubmitHandlerUtil,
4332
} from '../utils/createHandler'
4433

45-
import { VALIDATION_MODE } from '../shared/constant'
46-
import { getFormEl } from '../utils/getFormEl'
47-
4834
import { deepEqual } from '../utils/deepEqual'
35+
import { isRadioOrCheckboxInput } from '../utils/fieldElement'
36+
import { getFormEl } from '../utils/getFormEl'
37+
import { getValidationMode } from '../utils/getValidationMode'
38+
import { isFieldElement } from '../utils/isFieldElement'
4939
import { handleValidateError, validateField } from './validate'
5040

5141
export function creatFormControl<TFieldValues extends FieldValues = FieldValues>(
@@ -401,7 +391,7 @@ export function creatFormControl<TFieldValues extends FieldValues = FieldValues>
401391
field = get(_fields, fieldName)
402392
}
403393

404-
function addEventListenerToElement() {
394+
const addEventListenerToElement = () => {
405395
if (isFieldElement(field.el) || _fields[fieldName].isUnregistered) {
406396
return
407397
}
@@ -427,8 +417,19 @@ export function creatFormControl<TFieldValues extends FieldValues = FieldValues>
427417
}
428418
}
429419

420+
const handleValueChange = async (input: InputEvent | any) => {
421+
field.inputValue.value = (input?.target as any)?.value || input || ''
422+
423+
_handleAllDirtyFieldsOperate(fieldName)
424+
if (validationModeBeforeSubmit.isOnChange) {
425+
await _onChange(fieldName)
426+
}
427+
}
428+
430429
return {
430+
// avoid rebinding ref
431431
...(!isFieldElement(field.el) && { ref: _fields[fieldName].el }),
432+
432433
value: field.inputValue.value,
433434
onInput: async (e: InputEvent) => {
434435
if (_fields[fieldName].isUnregistered) {
@@ -440,30 +441,20 @@ export function creatFormControl<TFieldValues extends FieldValues = FieldValues>
440441
// make sure that only trigger onInput or onUpdate:modelValue
441442
queueMicrotask(async () => {
442443
if (!isModelValue) {
443-
field.inputValue.value = (e?.target as any)?.value || ''
444-
445-
_handleAllDirtyFieldsOperate(fieldName)
446-
if (validationModeBeforeSubmit.isOnChange) {
447-
await _onChange(fieldName)
448-
}
444+
await handleValueChange(e)
449445
}
450446
})
451447
},
448+
452449
'modelValue': field.inputValue.value,
453450
'onUpdate:modelValue': async (input: any) => {
454451
if (_fields[fieldName].isUnregistered) {
455452
return
456453
}
457454

458-
addEventListenerToElement()
459-
460455
isModelValue = true
461-
field.inputValue.value = input
462-
463-
_handleAllDirtyFieldsOperate(fieldName)
464-
if (validationModeBeforeSubmit.isOnChange) {
465-
await _onChange(fieldName)
466-
}
456+
addEventListenerToElement()
457+
await handleValueChange(input)
467458
},
468459
}
469460
}

0 commit comments

Comments
 (0)
0