Rev 2946 | Rev 3847 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable react/prop-types */import React from "react";import { useState } from "react";import { connect } from "react-redux";import FeedSection from "../../../dashboard/components/feed-section/FeedSection";import ShareFeed from "../../../dashboard/components/share-feed/ShareFeed";import { setTimelineUrl } from "../../../redux/feed/feed.actions";import { feedTypes } from "../../../redux/feed/feed.types";import GroupMembersHelper from "../../../shared/helpers/group-members-helper/GroupMembersHelper";import SuggestedGroupsHelper from "../../../shared/helpers/suggested-groups-helper/SuggestedGroupsHelper";import parse from "html-react-parser";import { axios } from "../../../utils";import { addNotification } from "../../../redux/notification/notification.actions";const View = (props) => {// backendVars Destructuringconst {routeTimeline,groupId,cover,image,totalMembers,name,overview,groupType,industry,privacy,accessibility,website,withoutFeeds,linkInmail} = props.backendVars;// redux destructuringconst { setTimelineUrl, addNotification: AddNotification } = props;const groupTabs = {FEED_TAB: "FEED_TAB",INFO_TAB: "INFO_TAB",};// statesconst [currentTab, setCurrentTab] = useState(withoutFeeds ? groupTabs.INFO_TAB : groupTabs.FEED_TAB);const [actionLinks, setActionLinks] = useState({})const [linkInvite, setLinkInvite] = useState('')setTimelineUrl(routeTimeline);const load = () => {axios.get('').then(res => {if (res.data.success) {setActionLinks(res.data.data)} else {AddNotification({type: 'error',payload: res.data.data})}}).catch(err => {console.log('>>: err > ', err)})}React.useEffect(() => {load()}, [])const handleActionLink = (url) => {axios.post(url).then(res => {if (res.data.success) {AddNotification({style: 'success',msg: res.data.data})window.location.reload()} else {AddNotification({style: 'error',msg: res.data.data})}}).catch(err => {console.log('>>: err > ', err)})}return (<React.Fragment><section className="cover-sec"><img// src="<?php echo $this->url('storage', ['type' => 'group-cover', 'code' => $group_id_encrypted, 'filename' => $cover]) ?>"src={`/storage/type/group-cover/code/${groupId}/${cover ? `filename/${cover}` : ""}`}alt="cover-image"/></section><main><div className="main-section"><div className="ph-5"><div className="main-section-data"><div className="main-left-sidebar"><div className="user_profile border-gray overflow-hidden m-0"><div className="user-pro-img"><imgsrc={`/storage/type/group/code/${groupId}/${image ? `filename/${image}` : ""}`}alt="profile-image"/></div><div className="user_pro_status"><h1 className="font-weight-bold" style={{ fontSize: '1.5rem' }} >{name}</h1><ul className="flw-status"><div className="container horizontal-list"><div className="row ">{linkInmail&&<ahref={linkInmail || '#'}className="btn btn-primary">Contactar con el Administrador</a>}<div className="members_count"><b style={{ fontSize: '1rem' }} >{totalMembers}</b><p>Miembros</p></div>{actionLinks.link_accept && (<buttononClick={() => handleActionLink(actionLinks.link_accept)}className="btn btn-primary"title=""><span className="ellipsis">Aceptar invitacion</span></button>)}{actionLinks.link_cancel && (<buttononClick={() => handleActionLink(actionLinks.link_cancel)}className="btn btn-primary"title=""><span className="ellipsis">Cancelar invitacion</span></button>)}{(!linkInvite && actionLinks.link_leave) && (<buttononClick={() => handleActionLink(actionLinks.link_leave)}className="btn btn-primary"title=""><span className="ellipsis">Abandonar grupo</span></button>)}{actionLinks.link_request && (<buttononClick={() => handleActionLink(actionLinks.link_request)}className="btn btn-primary"title="">{accessibility === 'Auto unirse' ? 'Unirse' : 'Solicitar membresia'}</button>)}</div></div></ul></div></div><GroupMembersHelper groupId={groupId} handleFirstLinkInvite={link => setLinkInvite(link)} /></div><div className="main-ws-sec"><div className="user-tab-sec">{!withoutFeeds && (<div className="row"><div className="col text-left pl-0"><buttonclassName={` ${currentTab === groupTabs.FEED_TAB ? "active" : ""} animated fadeIn btn btn-link p-0 text-decoration-none`}onClick={(e) => {e.preventDefault();setCurrentTab(groupTabs.FEED_TAB);}}><span className="ellipsis text-dark font-weight-bold">Ver Publicaciones</span></button></div><div className="col text-right pl-0"><buttonclassName={` ${currentTab === groupTabs.INFO_TAB ? "active" : ""} animated fadeIn btn btn-link p-0 text-decoration-none`}onClick={(e) => {e.preventDefault();setCurrentTab(groupTabs.INFO_TAB);}}><span className="ellipsis text-dark font-weight-bold">Ver Información</span></button></div></div>)}{/* <!-- tab-feed end--> */}</div>{/* <!--user-tab-sec end--> */}<divclassName="product-feed-tab animated fadeIn"id="feed-dd"style={{display:currentTab === groupTabs.FEED_TAB ? "flex" : "none",}}><ShareFeedfeedType={feedTypes.GROUP}postUrl={`/feed/add/group/${groupId}`}image={`/storage/type/group/code/${groupId}/${image ? `filename/${image}` : ""}`}/>{/* <!--posts-section star--> */}<div className="posts-section"><FeedSectionrouteTimeline={routeTimeline}image={`/storage/type/group/code/${groupId}/${image ? `filename/${image}` : ""}`}/></div>{/* <!--posts-section end--> */}</div>{/* <!--product-feed-tab end--> */}<divclassName="product-feed-tab animated fadeIn"id="info-dd"style={{ display: currentTab === groupTabs.INFO_TAB ? "flex" : "none", }}><div className="main-ws-sec">{/* <!--user-tab-sec start--> */}{!!overview && (<div className="user-profile-extended-ov"><h3>Visión General</h3><span id="overview-description">{parse(overview)}</span></div>)}{/* <!--user-tab-sec endit--> */}{/* <!--user-tab-sec start--> */}{!!groupType && (<div className="user-profile-extended-ov"><h3>Tipo</h3><span id="overview-type">{groupType}</span></div>)}{/* <!--user-tab-sec endit--> */}{/* <!--user-tab-sec start--> */}{!!industry && (<div className="user-profile-extended-ov"><h3>Industria</h3><span id="overview-industry">{industry}</span></div>)}{/* <!--user-tab-sec endit--> */}{/* <!--user-tab-sec start--> */}{/* <?php if($privacy) : ?> */}{!!privacy && (<div className="user-profile-extended-ov"><h3>Privacidad</h3><span id="overview-privacy">{privacy}</span></div>)}{/* <!--user-tab-sec endit--> */}{/* <!--user-tab-sec start--> */}{!!accessibility && (<div className="user-profile-extended-ov"><h3>Accesibilidad</h3><span id="overview-accessibility">{accessibility}</span></div>)}{/* <!--user-tab-sec endit--> */}{/* <!--user-tab-sec start--> */}{!!website && (<div className="user-profile-extended-ov"><h3>Página Web</h3><span id="overview-website">{website}</span></div>)}{/* <!--user-tab-sec endit--> */}{/* <!--user-profile-ov end--> */}</div>{/* <!--main-ws-sec end--> */}</div></div><SuggestedGroupsHelper groupId={groupId} /></div></div ></div ></main ></React.Fragment >);};const mapDispatchToProps = {setTimelineUrl: (url) => setTimelineUrl(url),addNotification: (notification) => addNotification(notification),};export default connect(null, mapDispatchToProps)(View);