Rev 2650 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import {axios} from "../../../utils";import React, { useEffect, useState } from "react";import { connect } from "react-redux";import { addNotification } from "../../../redux/notification/notification.actions";import Spinner from "../../../shared/loading-spinner/Spinner";const SocialNetworks = (props) => {// redux destructuringconst { addNotification } = props;// props destructuringconst { facebook, google, twitter, socialNetworkRoutes } = props;// statesconst [loading, setLoading] = useState(false);const [facebookConnected, setFacebookConnected] = useState(Boolean(facebook));const [twitterConnected, setTwitterConnected] = useState(Boolean(twitter));const [googleConnected, setGoogleConnected] = useState(Boolean(google));const handleAddSocialNetwork = (event, getOauthLink) => {event.preventDefault();setLoading(true);axios.get(getOauthLink).then((response) => {const resData = response.data;if (!resData.success) {return addNotification({style: "danger",msg: "Ha ocurrido un error, Por favor intente más tarde",});}const OauthLink = resData.data;window.location.replace(OauthLink);});};const handleRemoveSocialNetwork = (event, removeRoute) => {const network = event.currentTarget.dataset.network;event.preventDefault();setLoading(true);axios.post(removeRoute).then((response) => {const resData = response.data;if (!resData.success) {return addNotification({style: "danger",msg: resData.data,});}if (network === "facebook") setFacebookConnected(false);if (network === "twitter") setTwitterConnected(false);if (network === "google") setGoogleConnected(false);addNotification({style: "success",msg: resData.data,});});setLoading(false);};return (<div className="acc-setting"><h3>Redes Sociales</h3><table className="table nowrap" cellSpacing="0" width="100%"><tbody><tr><td className="text-center"><i className="fa fa-facebook"></i> Facebook</td><td className="text-center"><i className="fa fa-twitter"></i> Twitter</td><td className="text-center"><i className="fa fa-google"></i> Google</td></tr><tr><td className="text-center">{facebookConnected ? (<buttonclassName="btn btn-delete"id="btn-facebook"data-action="disconnect"data-network="facebook"onClick={(e) =>handleRemoveSocialNetwork(e,socialNetworkRoutes.facebook.remove)}>Desconectar</button>) : (<buttonclassName="btn btn-edit"id="btn-facebook"data-action="connect"data-network="facebook"onClick={(e) =>handleAddSocialNetwork(e, socialNetworkRoutes.facebook.add)}>Conectar</button>)}</td><td className="text-center">{twitterConnected ? (<buttonclassName="btn btn-delete"id="btn-twitter"data-action="disconnect"data-network="twitter"onClick={(e) =>handleRemoveSocialNetwork(e,socialNetworkRoutes.twitter.remove)}>Desconectar</button>) : (<buttonclassName="btn btn-edit"id="btn-twitter"data-action="connect"data-network="twitter"onClick={(e) =>handleAddSocialNetwork(e, socialNetworkRoutes.twitter.add)}>Conectar</button>)}</td><td className="text-center">{googleConnected ? (<buttonclassName="btn btn-delete"id="btn-google"data-action="disconnect"data-network="google"onClick={(e) =>handleRemoveSocialNetwork(e,socialNetworkRoutes.google.remove)}>Desconectar</button>) : (<buttonclassName="btn btn-edit"id="btn-google"data-action="connect"data-network="google"onClick={(e) =>handleAddSocialNetwork(e, socialNetworkRoutes.google.add)}>Conectar</button>)}</td></tr></tbody></table>{loading && (<div className="spinner-container"><Spinner /></div>)}</div>);};const mapDispatchToProps = {addNotification: (notification) => addNotification(notification),};export default connect(null, mapDispatchToProps)(SocialNetworks);