Proyectos de Subversion LeadersLinked - Backend

Rev

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

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