latex-ub/services/web/frontend/js/features/subscription/hooks/use-validate-field.tsx
2025-05-05 12:24:05 +00:00

21 lines
487 B
TypeScript

import { useState } from 'react'
type Target = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement
function useValidateField<T extends { target: Target }>() {
const [isValid, setIsValid] = useState(true)
const validate = (e: T) => {
let isValid = e.target.checkValidity()
if (e.target.required) {
isValid = isValid && Boolean(e.target.value.trim().length)
}
setIsValid(isValid)
}
return { validate, isValid }
}
export default useValidateField