| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | 
							- import {
 -   isValidElement,
 -   useCallback,
 - } from 'react'
 - import type { ReactNode } from 'react'
 - import { useTranslation } from 'react-i18next'
 - import type { FormSchema } from '../types'
 - import { useRenderI18nObject } from '@/hooks/use-i18n'
 - 
 - export const useGetValidators = () => {
 -   const { t } = useTranslation()
 -   const renderI18nObject = useRenderI18nObject()
 -   const getLabel = useCallback((label: string | Record<string, string> | ReactNode) => {
 -     if (isValidElement(label))
 -       return ''
 - 
 -     if (typeof label === 'string')
 -       return label
 - 
 -     if (typeof label === 'object' && label !== null)
 -       return renderI18nObject(label as Record<string, string>)
 -   }, [])
 -   const getValidators = useCallback((formSchema: FormSchema) => {
 -     const {
 -       name,
 -       validators,
 -       required,
 -       label,
 -     } = formSchema
 -     let mergedValidators = validators
 -     const memorizedLabel = getLabel(label)
 -     if (required && !validators) {
 -       mergedValidators = {
 -         onMount: ({ value }: any) => {
 -           if (!value)
 -             return t('common.errorMsg.fieldRequired', { field: memorizedLabel || name })
 -         },
 -         onChange: ({ value }: any) => {
 -           if (!value)
 -             return t('common.errorMsg.fieldRequired', { field: memorizedLabel || name })
 -         },
 -         onBlur: ({ value }: any) => {
 -           if (!value)
 -             return t('common.errorMsg.fieldRequired', { field: memorizedLabel })
 -         },
 -       }
 -     }
 -     return mergedValidators
 -   }, [t, getLabel])
 - 
 -   return {
 -     getValidators,
 -   }
 - }
 
 
  |