Rev 2802 | 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 = false, onConfirm = () => {}, onClose = () => {} }) => {
const labels = useSelector(({ intl }) => intl.labels);
const {
register,
handleSubmit,
setValue,
clearErrors,
watch,
reset,
formState: { errors }
} = 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;