Rev 7015 | Rev 7020 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useEffect, useState } from 'react'import { axios } from '../../utils'import { useDispatch, useSelector } from 'react-redux'import { addNotification } from '../../redux/notification/notification.actions'import EmptySection from '../../components/UI/EmptySection'const mock = {items: [{image:'/storage/type/knowledge-area/code/facd46a7-70dd-4a8f-9827-605b8f32aaeb/filename/646e347a5124e-area1.png/',title: 'Programa #1',description:'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliq...',category: 'Programas de Desarrollo',link_view: '/knowledge-area/view/facd46a7-70dd-4a8f-9827-605b8f32aaeb',link_edit: '/knowledge-area/edit/facd46a7-70dd-4a8f-9827-605b8f32aaeb',link_delete:'/knowledge-area/delete/facd46a7-70dd-4a8f-9827-605b8f32aaeb',},{image:'/storage/type/knowledge-area/code/174ae74a-3e97-4820-a35e-8315d3a698ff/filename/646e39ca08a08-profile_1.png/',title: 'Desarrollo web',description: 'Prueba de desarrollo',category: 'Programas de Desarrollo',link_view: '/knowledge-area/view/174ae74a-3e97-4820-a35e-8315d3a698ff',link_edit: '/knowledge-area/edit/174ae74a-3e97-4820-a35e-8315d3a698ff',link_delete:'/knowledge-area/delete/174ae74a-3e97-4820-a35e-8315d3a698ff',},],total: 2,page: 1,total_pages: 10,}const KnowledgeAreaPage = ({ allowAdd = true, content_edit = true }) => {const [knowledges, setKnowledges] = useState([])const [knowledgesCategories, setKnowledgesCategories] = useState([])const labels = useSelector(({ intl }) => intl.labels)const dispatch = useDispatch()useEffect(() => {axios.get('/knowledge-area', {headers: {'Content-Type': 'application/json',},}).then((response) => {const { data, success } = response.dataif (!success) {const errorMessage =typeof data === 'string'? data: 'Ha ocurrido un error, por favor intente más tarde.'dispatch(addNotification({ style: 'danger', msg: errorMessage }))return}setKnowledges(data.items)}).catch((error) => {dispatch(addNotification({style: 'danger',msg: 'Ha ocurrido un error, por favor intente más tarde.',}))throw new Error(error)})}, [])return (<section className="companies-info container px-0"><div className="company-title"><h1 className="title mx-auto">{labels.knowledge_area_title}</h1>{content_edit && allowAdd && (<h2 className="title cursor-pointer" id="knowledge-add-a">{labels.knowledge_area_add}</h2>)}</div><div className="row gap-3" id="row-list"><div className="knowledge-category-list col-12 col-md-3"><ul><li className="knowledge-category-li knowledge-category-li-selected"><a className="knowledge-category-a" href="">{labels.knowledge_area_category_all}</a></li>{knowledgesCategories.map((category, index) => (<li className="knowledge-category-li" key={index}><a className="knowledge-category-a" href="">{category.name}</a></li>))}</ul></div><div className="col px-0"><div className="search-box"><form id="form-filter" name="form-filter"><inputtype="text"name="search"id="search"className="form-control"/><button className="btn btn-search">{labels.search}</button></form></div><div className="knowledge-record-list mt-3">{knowledges.length ? (knowledges.map((knowledge, index) => (<Item key={index} {...knowledge} />))) : (<EmptySectionmessage={labels.error_no_record_matched_your_query}/>)}</div>{/* <div id="knowledge-record-pagination"></div> */}</div></div></section>)}const Item = ({link_delete,link_view,link_edit,category,description,image,title,}) => {return (<div className="knowledge-record-card"><ahref={link_view}target="_blank"className="knowledge-record-card-actions-view"rel="noreferrer"><img src={image} alt={`${title} image`} /></a><div className="d-flex align-items-center justify-content-between">{link_edit && (<button data-link="{{>link_edit}}" className="btn-knowledge-edit"><i className="fa fa-pencil" aria-hidden="true" /></button>)}{link_delete && (<button data-link="{{>link_delete}}" className="btn-knowledge-delete"><i className="fa fa-trash" aria-hidden="true" /></button>)}</div><h3>{category}</h3><a href={link_view} target="_blank" rel="noreferrer"><h2>{title}</h2></a><p>{description}</p></div>)}export default KnowledgeAreaPage