Rev 4637 | Rev 5225 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types */
import React, { useEffect, useState } from 'react'
import { axios } from '../../utils'
import CapsulesList from './CapsulesList'
const MarketPlace = () => {
const [capsules, setCapsules] = useState([])
const [categories, setCategories] = useState([])
const [searchParams, setSearchParams] = useState({
search: '',
category: 'capsules'
})
const handleChange = ({ target }) => setSearchParams({ ...searchParams, [target.name]: target.value })
const load = async (_search = searchParams.search, _entity = searchParams.category) => {
try {
const { data } = await axios.get('/marketplace?search=' + _search + '&entity=' + _entity)
if (data.success) setCapsules(data.data)
} catch (error) {
console.log('>>: error > ', error)
}
}
const getCategories = async () => {
const categories = await axios.get('/marketplace/categories')
if (categories.data.data) {
const _categories = Object.keys(categories.data.data).map(element => {
return {
label: categories.data.data[element],
value: element
}
})
setCategories(_categories)
}
}
const checkParams = () => {
const url = window.location.href
const hasEntity = url.includes('?entity=')
if (hasEntity) {
const value = url.split('?entity=')[1]
if (value) { setSearchParams({ ...searchParams, category: value }) }
}
}
useEffect(() => {
getCategories()
checkParams()
}, [])
useEffect(() => {
load(searchParams.search, searchParams.category)
}, [searchParams])
return (
<section className="companies-info container">
<div className="market_admin_title_buttons">
<div className="form-group search_input">
<input
type="text"
name="search"
className="form-control"
onChange={e => handleChange(e)}
value={searchParams.search}
/>
<button className='search-btn'>{LABELS.SEARCH}</button>
</div>
<div className="form-group search_categories">
<select
name="select"
className="form-control"
value={searchParams.category}
onChange={e => handleChange(e)}
>
<option value="">{LABELS.SELECT_CATEGORY}</option>
{categories.map((element, i) =>
<option value={element.value} key={i}>{element.label}</option>
)}
</select>
</div>
</div>
<CapsulesList capsules={capsules} onEnroll={load}/>
</section>
)
}
export default MarketPlace