Rev 5175 | Rev 5996 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types *//* eslint-disable camelcase */import React, { useEffect, useState } from 'react'import { connect } from 'react-redux'import { debounce } from '../../../../utils'import { searchEntities } from '../../../../services/search'import { addNotification } from '../../../../redux/notification/notification.actions'import Spinner from '../../../../shared/loading-spinner/Spinner'import Profile from '../../../../components/Profile'import SearchList from '../../../../components/SearchList'import TitleSection from '../../../../components/TitleSection'import EmptySection from '../../../../shared/empty-section/EmptySection'import AddGroupModal from './add-group-modal/AddGroupModal'const MyGroups = ({ groupTypes, industries, addNotification, LABELS }) => {const [groups, setGroups] = useState([])const [loading, setLoading] = useState(true)const [showAddGroupModal, setShowAddGroupModal] = useState(false)useEffect(() => {getGroups()}, [])const getGroups = async (searchValue = '') => {setLoading(true)const response = await searchEntities('group/my-groups', searchValue)if (!response.success) {addNotification({ style: 'danger', msg: response.data })setLoading(false)return}setGroups(response.data)setLoading(false)}const handleShowAddGroupModal = () => {setShowAddGroupModal(!showAddGroupModal)}const handleSearch = debounce((value) => getGroups(value), 500)return (<section className="companies-info container"><TitleSection title={LABELS.MY_GROUPS} allowAdd onAdd={handleShowAddGroupModal} /><SearchList onChange={handleSearch} /><div className="companies-list">{loading && <Spinner />}{(!loading && Boolean(!groups.length)) && <EmptySection align='left' message={LABELS.DATATABLE_SZERORECORDS} />}{(!loading && Boolean(groups.length)) &&groups.map(({ image, link_delete, link_edit, link_view, name, privacy }, id) =><Profileimage={image}name={name}status={privacy}link_view={link_view}link_edit={link_edit}link_delete={link_delete}key={id}fetchCallback={getGroups}btnAcceptTitle={LABELS.GROUP_VIEW}btnEditTitle={`${LABELS.EDIT} ${LABELS.GROUP.toLowerCase()}`}btnCancelTitle={`${LABELS.DELETE} ${LABELS.GROUP.toLowerCase()}`}/>)}</div><AddGroupModalshow={showAddGroupModal}onHide={handleShowAddGroupModal}getGroups={getGroups}groupTypes={groupTypes}industries={industries}/></section>)}const mapDispatchToProps = {addNotification: (notification) => addNotification(notification)}export default connect(null, mapDispatchToProps)(MyGroups)