Rev 1852 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useEffect } from 'react'
import { useSelector } from 'react-redux'
import { useForm } from 'react-hook-form'
import Modal from 'components/UI/modal/Modal'
import UbicationInput from 'components/UI/inputs/UbicationInput'
import FormErrorFeedback from 'components/UI/form/FormErrorFeedback'
const LocationModal = ({ show, onConfirm, onClose }) => {
const labels = useSelector(({ intl }) => intl.labels)
const {
register,
errors,
handleSubmit,
setValue,
clearErrors,
watch,
reset
} = useForm()
const toggleModal = () => {
reset()
onClose()
}
const addressHandler = (address) => {
Object.entries(address).forEach(([key, value]) => {
if (value) {
register(key)
clearErrors(key)
setValue(key, value)
}
})
}
const onSubmit = handleSubmit((data) => onConfirm(data))
useEffect(() => {
register('formatted_address', {
required: 'por favor seleccione una ubicación correcta'
})
}, [])
return (
<Modal
title={labels.location}
show={show}
onClose={toggleModal}
onAccept={onSubmit}
>
<UbicationInput
onGetAddress={addressHandler}
settedQuery={watch('formatted_address')}
/>
{errors.formatted_address && (
<FormErrorFeedback>
{errors.formatted_address.message}
</FormErrorFeedback>
)}
</Modal>
)
}
export default LocationModal