Rev 6753 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useEffect, useState } from 'react'import { useDispatch, useSelector } from 'react-redux'import { debounce } from '../../utils'import { addNotification } from '../../redux/notification/notification.actions'import { searchEntities } from '../../services/items'import Spinner from '../../components/UI/Spinner'import SearchBar from '../../components/UI/SearchBar'import ProfileItem from '../../components/profile/ProfileItem'import TitleSection from '../../components/UI/TitleSection'import EmptySection from '../../components/UI/EmptySection'import LoaderContainer from '../../components/UI/LoaderContainer'import AddCompanyModal from '../../components/modals/AddCompanyModal'const MyCompanies = () => {const [companies, setCompanies] = useState([])const [loading, setLoading] = useState(true)const [search, setSearch] = useState('')const [showAddCompanyModal, setShowCompanyModal] = useState(false)const labels = useSelector(({ intl }) => intl.labels)const dispatch = useDispatch()const getMyCompanies = async (searchValue = '') => {setLoading(true)const response = await searchEntities('company/my-companies', searchValue)if (!response.success) {dispatch(addNotification({ style: 'danger', msg: response.data }))setLoading(false)return}setCompanies(response.data)setLoading(false)}const toggleShowCompanyModal = () => {setShowCompanyModal(!showAddCompanyModal)}const handleSearch = debounce((value) => setSearch(value), 500)useEffect(() => {getMyCompanies()}, [search])return (<main className="companies-info container"><TitleSectiontitle={labels.my_companies}onAdd={toggleShowCompanyModal}addLabel={labels.add_company}/><SearchBar onChange={handleSearch} />{loading ? (<LoaderContainer><Spinner /></LoaderContainer>) : (<ul className="companies-list">{companies.length ? (companies.map(({ id, link_my_company, ...rest }) => (<ProfileItemkey={id}link_admin={link_my_company}btnAcceptTitle={labels.view_company}{...rest}/>))) : (<EmptySectionalign="left"message={labels.datatable_szerorecords}/>)}</ul>)}<AddCompanyModalshow={showAddCompanyModal}onHide={toggleShowCompanyModal}fetchCompanies={getMyCompanies}/></main>)}export default MyCompanies