Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 472 | Rev 474 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 472 Rev 473
Línea 1... Línea 1...
1
import { useState, useEffect } from 'react'
1
import { useState, useEffect } from 'react'
Línea 2... Línea 2...
2
 
2
 
3
const useLocationAutocomplete = ({
-
 
4
    inputRef,
-
 
5
}) => {
3
const useLocationAutocomplete = (inputRef) => {
6
    const [addresObject, setAddressObject] = useState({})
4
    const [addresObject, setAddressObject] = useState({})
7
    const [error, setError] = useState(null)
5
    const [error, setError] = useState(null)
Línea 8... Línea 6...
8
    let autoComplete
6
    let autoComplete
9
 
7
 
10
    function handleScriptLoad(input) {
-
 
11
        autoComplete = new window.google.maps.places.Autocomplete(
8
    function handleScriptLoad(input) {
12
            input,
9
        autoComplete = new window.google.maps.places.Autocomplete(input, {
13
            { types: ['(cities)'] }
10
            types: ['(cities)'],
14
        )
11
        })
15
        autoComplete.setFields([
12
        autoComplete.setFields([
16
            'address_components',
13
            'address_components',
17
            'formatted_address',
14
            'formatted_address',
Línea 30... Línea 27...
30
            addresObject.address_components?.map((address_component) => {
27
            addresObject.address_components?.map((address_component) => {
31
                const address_component_name = address_component.long_name
28
                const address_component_name = address_component.long_name
32
                const address_component_type = address_component.types[0]
29
                const address_component_type = address_component.types[0]
Línea 33... Línea 30...
33
 
30
 
34
                switch (address_component_type) {
31
                switch (address_component_type) {
35
                    case "route":
32
                    case 'route':
36
                        address["address1"] = address_component_name
33
                        address['address1'] = address_component_name
37
                        break
34
                        break
38
                    case "sublocality":
35
                    case 'sublocality':
39
                        address["address2"] = address_component_name
36
                        address['address2'] = address_component_name
40
                        break
37
                        break
41
                    case "locality":
38
                    case 'locality':
42
                        address["city1"] = address_component_name
39
                        address['city1'] = address_component_name
43
                        break
40
                        break
44
                    case "administrative_area_level_2":
41
                    case 'administrative_area_level_2':
45
                        address["city2"] = address_component_name
42
                        address['city2'] = address_component_name
46
                        break
43
                        break
47
                    case "administrative_area_level_1":
44
                    case 'administrative_area_level_1':
48
                        address["state"] = address_component_name
45
                        address['state'] = address_component_name
49
                        break
46
                        break
50
                    case "country":
47
                    case 'country':
51
                        address["country"] = address_component_name
48
                        address['country'] = address_component_name
52
                        break
49
                        break
53
                    case "postal_code":
50
                    case 'postal_code':
54
                        address["postal_code"] = address_component_name
51
                        address['postal_code'] = address_component_name
55
                        break
52
                        break
56
                    case "geometry":
53
                    case 'geometry':
57
                        address["latitude"] = address_component.latitude
54
                        address['latitude'] = address_component.latitude
58
                        address["longitude"] = address_component.longitude
55
                        address['longitude'] = address_component.longitude
59
                        break
56
                        break
60
                    default:
57
                    default:
61
                        break
58
                        break
62
                }
59
                }
Línea 63... Línea 60...
63
            })
60
            })
64
 
-
 
65
            setAddressObject({ ...address, formatted_address: query })
61
 
66
        }
62
            setAddressObject({ ...address, formatted_address: query })
67
        else {
63
        } else {
68
            setError('Ha ocurrido un error')
64
            setError('Ha ocurrido un error')
Línea 69... Línea 65...
69
        }
65
        }
-
 
66
    }
70
    }
67
 
-
 
68
    useEffect(() => {
71
 
69
        if (inputRef) {
Línea 72... Línea 70...
72
    useEffect(() => {
70
            handleScriptLoad(inputRef)
73
        handleScriptLoad(inputRef)
71
        }
Línea 74... Línea -...
74
    }, [inputRef])
-
 
75
 
72
    }, [inputRef])
-
 
73