Rev 15261 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from 'react'import { useState } from 'react'import SearchLocationInput from '../../../shared/SearchLocationInput'import { addNotification } from '../../../redux/notification/notification.actions'import axios from 'axios'import { useDispatch } from 'react-redux'import { Modal } from 'react-bootstrap'const LocationModal = ({closeModal,dataLink,googleApiKey,defaultData = '',onComplete = function () { }}) => {const [isActive, setIsActive] = useState((defaultData.is_main === 'y') ? true : false)const [value, setValue] = useState(defaultData.formatted_address)const [data, setData] = useState({})const dispatch = useDispatch()const onSubmit = () => {const values = Object.values(data)if (!values.length) {return dispatch(addNotification({style: 'danger',msg: 'El campo no puede estar vacio.'}))}const formData = new FormData()Object.entries({ ...data, is_main: isActive ? 'y' : 'n' }).forEach((entries) => {formData.append(entries[0], entries[1])})axios.post(dataLink, formData).then(({ data }) => {if (!data.success) {typeof data.data === 'string'?dispatch(addNotification({style: 'danger',msg: data.data})): Object.entries(data.data).map(([key, value]) =>value.map(err =>dispatch(addNotification({style: 'danger',msg: `${key}: ${err}`}))))return}onComplete(data.data)dispatch(addNotification({style: 'success',msg: 'Registro actualizado'}))closeModal()}).catch((err) => console.log(err))}return (<Modal size="md" show onHide={closeModal}><Modal.Header closeButton><Modal.Title>Ubicación</Modal.Title></Modal.Header><Modal.Body><div className='form-group'><SearchLocationInputvalue={value}setValue={setValue}googleApiKey={googleApiKey}updateData={setData}/><divclassName={`toggle btn btn-primary ${!isActive && 'off'}`}data-toggle="toggle"role="button"style={{ width: '130px' }}onClick={() => setIsActive(!isActive)}><inputtype="checkbox"checked={isActive}/><div className="toggle-group"><label htmlFor="status" className="btn btn-primary toggle-on">Principal</label><label htmlFor="status" className="btn btn-light toggle-off">Secundaria</label><span className="toggle-handle btn btn-light"></span></div></div></div></Modal.Body><Modal.Footer><buttonclassName="btn btn-primary"type="submit"onClick={onSubmit}>Enviar</button><buttonclassName='btn btn-tertiary'onClick={closeModal}>Cancelar</button></Modal.Footer></Modal >)}export default LocationModal