Merged in feat/SW-2202 (pull request #1909)

feat: trigger validation on form upon autofill in enter details

* feat: trigger validation on form upon autofill in enter details


Approved-by: Niclas Edenvin
This commit is contained in:
Simon.Emanuelsson
2025-05-02 08:12:33 +00:00
committed by Niclas Edenvin
parent d7708b682a
commit 862d4abbe3
2 changed files with 33 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
"use client"
import { useEffect } from "react"
import { useFormContext } from "react-hook-form"
export default function AutoFillDetector() {
const {
formState: { dirtyFields, isDirty, touchedFields },
trigger,
watch,
} = useFormContext()
useEffect(() => {
const dirtyFieldKeys = Object.keys(dirtyFields)
const touchedFieldKeys = Object.keys(touchedFields)
const hasDirtyUnTouchedFields = dirtyFieldKeys.some(
(field) => !touchedFieldKeys.includes(field)
)
const subscription = watch((_, field) => {
if (!field.type) {
if (isDirty && hasDirtyUnTouchedFields) {
trigger(field.name)
trigger("countryCode")
}
}
})
return () => subscription.unsubscribe()
}, [dirtyFields, isDirty, touchedFields, trigger, watch])
return null
}