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.hrefconst 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"><inputtype="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"><selectname="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