Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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

Rev 7006 Rev 7007
Línea 6... Línea 6...
6
import Spinner from '../../components/UI/Spinner'
6
import Spinner from '../../components/UI/Spinner'
7
import SearchItem from '../../components/search/SearchItem'
7
import SearchItem from '../../components/search/SearchItem'
8
import SearchInput from '../../components/UI/SearchInput'
8
import SearchInput from '../../components/UI/SearchInput'
9
import EmptySection from '../../components/UI/EmptySection'
9
import EmptySection from '../../components/UI/EmptySection'
10
import PaginationComponent from '../../components/UI/PaginationComponent'
10
import PaginationComponent from '../../components/UI/PaginationComponent'
-
 
11
import FiltersSidebar from '../../components/search/FiltersSidebar'
-
 
12
import CategoryFilter from '../../components/search/CategoryFilter'
-
 
13
import LocationFilter from '../../components/search/LocationFilter'
Línea 11... Línea 14...
11
 
14
 
12
const SearchPage = () => {
15
const SearchPage = () => {
13
  const [entities, setEntities] = useState([])
16
  const [entities, setEntities] = useState([])
14
  const [loading, setLoading] = useState(true)
17
  const [loading, setLoading] = useState(true)
15
  const [category, setCategory] = useState('user')
18
  const [category, setCategory] = useState('user')
16
  const [entity, setEntity] = useState('')
19
  const [entity, setEntity] = useState('')
17
  const [currentPage, setCurrentPage] = useState(1)
20
  const [currentPage, setCurrentPage] = useState(1)
18
  const [pages, setPages] = useState(1)
21
  const [pages, setPages] = useState(1)
19
  const activeFilters = useRef([])
22
  const activeFilters = useRef([])
Línea 20... Línea 23...
20
  const addressFilter = useRef([])
23
  const addressKeys = useRef([])
21
 
24
 
Línea 22... Línea 25...
22
  const { search, pathname } = useLocation()
25
  const { search, pathname } = useLocation()
Línea 29... Línea 32...
29
    setLoading(true)
32
    setLoading(true)
30
    setCurrentPage(page)
33
    setCurrentPage(page)
Línea 31... Línea 34...
31
 
34
 
Línea 32... Línea 35...
32
    const urlParams = { page, keyword }
35
    const urlParams = { page, keyword }
33
 
36
 
34
    addressFilter.current.forEach(({ name, type }) => {
37
    addressKeys.current.forEach(({ name, type }) => {
-
 
38
      urlParams[type] = name
35
      urlParams[type] = name
39
    })
36
    })
40
 
37
    activeFilters.current.forEach(({ name, value }) => {
41
    activeFilters.current.forEach(({ name, value }) => {
Línea 38... Línea 42...
38
      urlParams[name] = value
42
      urlParams[name] = value
Línea 53... Línea 57...
53
 
57
 
54
  const onChangePageHandler = (currentPage) => {
58
  const onChangePageHandler = (currentPage) => {
55
    setCurrentPage(currentPage)
59
    setCurrentPage(currentPage)
Línea -... Línea 60...
-
 
60
  }
-
 
61
 
-
 
62
  const getAddressHandler = (addresObject) => {
-
 
63
    const { address_components } = addresObject
-
 
64
    if (address_components) {
-
 
65
      addressKeys.current = []
-
 
66
      address_components.map((address_component) => {
-
 
67
        const address_component_name = address_component.long_name
-
 
68
        const address_component_type = address_component.types[0]
-
 
69
        switch (address_component_type) {
-
 
70
          case 'route':
-
 
71
            addressKeys.current = [
-
 
72
              ...addressKeys.current,
-
 
73
              { type: 'route', name: address_component_name },
-
 
74
            ]
-
 
75
            break
-
 
76
          case 'sublocality':
-
 
77
            addressKeys.current = [
-
 
78
              ...addressKeys.current,
-
 
79
              { type: 'sublocality', name: address_component_name },
-
 
80
            ]
-
 
81
            break
-
 
82
          case 'locality':
-
 
83
            addressKeys.current = [
-
 
84
              ...addressKeys.current,
-
 
85
              { type: 'locality', name: address_component_name },
-
 
86
            ]
-
 
87
            break
-
 
88
          case 'administrative_area_level_2':
-
 
89
            addressKeys.current = [
-
 
90
              ...addressKeys.current,
-
 
91
              {
-
 
92
                type: 'administrative_area_level_2',
-
 
93
                name: address_component_name,
-
 
94
              },
-
 
95
            ]
-
 
96
            break
-
 
97
          case 'administrative_area_level_1':
-
 
98
            addressKeys.current = [
-
 
99
              ...addressKeys.current,
-
 
100
              {
-
 
101
                type: 'administrative_area_level_1',
-
 
102
                name: address_component_name,
-
 
103
              },
-
 
104
            ]
-
 
105
            break
-
 
106
          case 'country':
-
 
107
            addressKeys.current = [
-
 
108
              ...addressKeys.current,
-
 
109
              { type: 'country', name: address_component_name },
-
 
110
            ]
-
 
111
            break
-
 
112
          case 'postal_code':
-
 
113
            addressKeys.current = [
-
 
114
              ...addressKeys.current,
-
 
115
              { type: 'postal_code', name: address_component_name },
-
 
116
            ]
-
 
117
            break
-
 
118
          default:
-
 
119
            break
-
 
120
        }
-
 
121
      })
-
 
122
      loadEntities()
-
 
123
    } else {
-
 
124
      if (addressKeys.current.length) {
-
 
125
        loadEntities()
-
 
126
      }
-
 
127
    }
56
  }
128
  }
57
 
129
 
58
  const onSubmitHandler = (e) => {
130
  const onSubmitHandler = (e) => {
59
    e.preventDefault()
131
    e.preventDefault()
Línea 75... Línea 147...
75
          placeholder="¿Que desea encontrar?"
147
          placeholder="¿Que desea encontrar?"
76
          style={{ backgroundColor: 'var(--bg-color)' }}
148
          style={{ backgroundColor: 'var(--bg-color)' }}
77
        />
149
        />
78
        <Row className="mt-3">
150
        <Row className="mt-3">
79
          <Col as="aside" md="4">
151
          <Col as="aside" md="4">
80
            <div></div>
152
            <FiltersSidebar>
-
 
153
              <CategoryFilter onChange={(value) => setCategory(value)} />
-
 
154
              <LocationFilter onChange={getAddressHandler} />
-
 
155
            </FiltersSidebar>
81
          </Col>
156
          </Col>
82
          <Col as="section" md="8">
157
          <Col as="section" md="8">
83
            <div className="posts-section">
158
            <div className="posts-section">
84
              {loading && <Spinner />}
159
              {loading && <Spinner />}
85
              {entities.length ? (
160
              {entities.length ? (