Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 14738 | Rev 16794 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
14738 stevensc 1
/* eslint-disable no-mixed-spaces-and-tabs */
7774 stevensc 2
import React, { useState } from 'react'
3
import LocationModal from './LocationModal'
8052 stevensc 4
import DeleteModal from '../../../shared/DeleteModal'
6002 stevensc 5
 
15062 stevensc 6
const Location = ({ locations = [], googleApiKey, locationsAddUrl, title }) => {
6002 stevensc 7
 
14738 stevensc 8
	const [actionUrl, setActionUrl] = useState(locationsAddUrl)
9
	const [defaultData, setDefaultData] = useState('')
10
	const [showModal, setShowModal] = useState(false)
11
	const [showDeleteModal, setShowDeleteModal] = useState(false)
12
	const [deleteLink, setDeleteLink] = useState('')
13
	const [removeElement, setRemoveElement] = useState('')
14
	const [locationState, setLocationState] = useState(locations)
6002 stevensc 15
 
14738 stevensc 16
	const addLocation = (url) => {
17
		setShowModal(true)
18
		setActionUrl(url)
19
	}
7775 stevensc 20
 
14738 stevensc 21
	const editLocation = (url, item) => {
22
		setShowModal(true)
23
		setActionUrl(url)
24
		setDefaultData(item)
25
	}
7774 stevensc 26
 
14738 stevensc 27
	const closeModal = () => setShowModal(false)
28
	const closeDeleteModal = () => setShowDeleteModal(false)
7774 stevensc 29
 
14738 stevensc 30
	const deleteLocation = ({ url, address }) => {
31
		setShowDeleteModal(true)
32
		setDeleteLink(url)
33
		setRemoveElement(address)
34
	}
6002 stevensc 35
 
14738 stevensc 36
	return (
37
		<>
38
			<div className="user-profile-extended-ov st2">
39
				<h3>
15062 stevensc 40
					{title}
14738 stevensc 41
					<button
42
						className="btn btn-location-add"
43
						onClick={() => addLocation(locationsAddUrl)}
44
					>
45
						<i className="fa fa-plus-square" />
46
					</button>
47
				</h3>
48
				<span id="locations-records">
49
					{
50
						locationState.map((location, index) => (
51
							<>
52
								<p key={index}>
53
									{location.formatted_address}
54
									{location.is_main === 'y' ? ' (Principal)' : ''}
55
									<button
56
										onClick={() => editLocation(location.link_edit, location)}
57
										className="btn btn-location-edit"
58
										style={{ padding: '.3rem' }}
59
									>
60
										<i className="fa fa-pencil" />
61
									</button>
62
									<button
63
										onClick={() => deleteLocation({ url: location.link_delete, address: location.formatted_address })}
64
										className="btn btn-location-delete"
65
										style={{ padding: '.3rem' }}
66
									>
67
										<i className="fa fa-trash" />
68
									</button>
69
								</p>
70
								{
71
									locations[index + 1] && <hr />
72
								}
73
							</>
74
						))
75
					}
76
				</span>
77
			</div >
78
			{
79
				showModal
7774 stevensc 80
                &&
81
                <LocationModal
14738 stevensc 82
                	closeModal={closeModal}
83
                	onComplete={setLocationState}
84
                	dataLink={actionUrl}
85
                	googleApiKey={googleApiKey}
86
                	defaultData={defaultData}
7774 stevensc 87
                />
14738 stevensc 88
			}
89
			{
90
				showDeleteModal
8051 stevensc 91
                &&
92
                <DeleteModal
14738 stevensc 93
                	url={deleteLink}
94
                	isOpen={showDeleteModal}
95
                	closeModal={closeDeleteModal}
96
                	title={'Esta seguro de eliminar esta ubicación?'}
97
                	onComplete={() => setLocationState(locationState.filter(val => val.formatted_address !== removeElement))}
98
                	message={'Ubicación eliminada'}
8051 stevensc 99
                />
14738 stevensc 100
			}
101
		</>
102
	)
6002 stevensc 103
}
104
 
105
export default Location