Rev 1963 | Rev 2633 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useEffect, useState } from "react";import { useLocation, withRouter } from "react-router";import styled from "styled-components";import BasicSettings from "./basic-settings/BasicSettings";import Browsers from "./browsers/Browsers";import ChangeImage from "./change-image/ChangeImage";import ChangePassword from "./change-password/ChangePassword";import Devices from "./devices/Devices";import Ips from "./ips/Ips";import Location from "./location/Location";import Notifications from "./notifications/Notifications";import Privacy from "./privacy/Privacy";import SocialNetworks from "./social-networks/SocialNetworks";import Transactions from "./transactions/Transactions";import CloseAccount from "./close-account/CloseAccount";const StyledNavTabs = styled.div`a {cursor: pointer;&.active {color: blue;}}`;const TABS = {BASIC: "BASIC",NOTIFICATIONS: "NOTIFICATIONS",CHANGE_PASSWORD: "CHANGE_PASSWORD",CHANGE_IMAGE: "CHANGE_IMAGE",LOCATION: "LOCAITON",PRIVACY: "PRIVACY",SOCIAL_NETWORKS: "SOCIAL_NETWORKS",TRANSACTIONS: "TRANSACTIONS",BROWSERS: "BROWSERS",IPS: "IPS",DEVICES: "DEVICES",CLOSE_ACCOUNT: "CLOSE_ACCOUNT",};const AccountSettings = (props) => {// props destructuringconst {facebook,google,twitter,socialNetworkRoutes,routeTransactions,routeAddFunds,routeBrowsers,routeIPs,routeDevices,balance,amounts,} = props.backendVars;const [currentTab, setCurrentTab] = useState(TABS.BASIC);const handleChangeTab = (event, tab, param) => {event.preventDefault();setCurrentTab(tab);};const TabRender = () => {switch (currentTab) {case TABS.BASIC:return <BasicSettings />;case TABS.NOTIFICATIONS:return <Notifications />;case TABS.CHANGE_PASSWORD:return <ChangePassword />;case TABS.CHANGE_IMAGE:return <ChangeImage />;case TABS.LOCATION:return <Location />;case TABS.PRIVACY:return <Privacy />;case TABS.SOCIAL_NETWORKS:return (<SocialNetworksfacebook={facebook}twitter={twitter}google={google}socialNetworkRoutes={socialNetworkRoutes}/>);case TABS.TRANSACTIONS:return (<TransactionsrouteTransactions={routeTransactions}routeAddFunds={routeAddFunds}balance={balance}amounts={amounts}/>);case TABS.BROWSERS:return <Browsers routeBrowsers={routeBrowsers} />;case TABS.IPS:return <Ips routeIPs={routeIPs} />;case TABS.DEVICES:return <Devices routeDevices={routeDevices} />;case TABS.CLOSE_ACCOUNT:return <CloseAccount />;case TABS.default:return <BasicSettings />;}};useEffect(() => {const searchParam = new URLSearchParams(props.location.search);const tab = searchParam.get("tab");if (tab === "nav-basic") setCurrentTab(TABS.BASIC);if (tab === "nav-notification") setCurrentTab(TABS.NOTIFICATIONS);if (tab === "nav-password") setCurrentTab(TABS.CHANGE_PASSWORD);if (tab === "nav-image") setCurrentTab(TABS.CHANGE_IMAGE);if (tab === "nav-location") setCurrentTab(TABS.LOCATION);if (tab === "nav-privacy") setCurrentTab(TABS.PRIVACY);if (tab === "nav-social-networks") setCurrentTab(TABS.SOCIAL_NETWORKS);if (tab === "nav-transactions") setCurrentTab(TABS.TRANSACTIONS);if (tab === "nav-browsers") setCurrentTab(TABS.BROWSERS);if (tab === "nav-ips") setCurrentTab(TABS.IPS);if (tab === "nav-devices") setCurrentTab(TABS.DEVICES);}, [props.location]);return (<section className="profile-account-setting"><div className="container"><div className="account-tabs-setting"><div className="row"><div className="col-lg-3"><div className="acc-leftbar"><StyledNavTabsclassName="nav nav-tabs"id="nav-tab"role="tablist"><aclassName={`nav-item nav-link ${currentTab === TABS.BASIC ? "active" : ""}`}id="nav-basic-tab"onClick={(e) => handleChangeTab(e, TABS.BASIC)}><i className="la la-user"></i>Básica</a><aclassName={`nav-item nav-link ${currentTab === TABS.NOTIFICATIONS ? "active" : ""}`}id="nav-acc-tab"onClick={(e) => handleChangeTab(e, TABS.NOTIFICATIONS)}><i className="la la-cogs"></i>Notificaciones</a><aclassName={`nav-item nav-link ${currentTab === TABS.CHANGE_PASSWORD ? "active" : ""}`}id="nav-password-tab"onClick={(e) => handleChangeTab(e, TABS.CHANGE_PASSWORD)}><i className="fa fa-lock"></i>Cambiar clave</a><aclassName={`nav-item nav-link ${currentTab === TABS.CHANGE_IMAGE ? "active" : ""}`}id="nav-image-tab"onClick={(e) => handleChangeTab(e, TABS.CHANGE_IMAGE)}><i className="fa fa-image"></i>Cambiar imagen</a><aclassName={`nav-item nav-link ${currentTab === TABS.LOCATION ? "active" : ""}`}id="nav-location-tab"onClick={(e) => handleChangeTab(e, TABS.LOCATION)}><i className="fa fa-map-marker"></i>Ubicación</a><aclassName={`nav-item nav-link ${currentTab === TABS.PRIVACY ? "active" : ""}`}id="nav-privacy-tab"onClick={(e) => handleChangeTab(e, TABS.PRIVACY)}><i className="fa fa-user-secret"></i>Privacidad</a><aclassName={`nav-item nav-link ${currentTab === TABS.SOCIAL_NETWORKS ? "active" : ""}`}id="nav-social-networks-tab"onClick={(e) => handleChangeTab(e, TABS.SOCIAL_NETWORKS)}><i className="fa fa-facebook"></i>Redes Sociales</a><aclassName={`nav-item nav-link ${currentTab === TABS.TRANSACTIONS ? "active" : ""}`}id="nav-social-networks-tab"onClick={(e) => handleChangeTab(e, TABS.TRANSACTIONS)}><i className="fa fa-money"></i>Transacciones</a><aclassName={`nav-item nav-link ${currentTab === TABS.CLOSE_ACCOUNT ? "active" : ""}`}id="nav-social-networks-tab"onClick={(e) => handleChangeTab(e, TABS.CLOSE_ACCOUNT)}><i className="fa fa-trash"></i>Cerrar cuenta</a>{/* <aclassName={`nav-item nav-link ${currentTab === TABS.BROWSERS ? "active" : ""}`}id="nav-social-networks-tab"onClick={(e) => handleChangeTab(e, TABS.BROWSERS)}><i className="fa fa-internet-explorer"></i>Navegadores</a><aclassName={`nav-item nav-link ${currentTab === TABS.IPS ? "active" : ""}`}id="nav-social-networks-tab"onClick={(e) => handleChangeTab(e, TABS.IPS)}><i className="fa fa-wifi"></i>Conexiones</a><aclassName={`nav-item nav-link ${currentTab === TABS.DEVICES ? "active" : ""}`}id="nav-social-networks-tab"onClick={(e) => handleChangeTab(e, TABS.DEVICES)}><i className="fa fa-tablet"></i>Dispositivos</a> */}</StyledNavTabs></div>{/* <!--acc-leftbar end--> */}</div><div className="col-lg-9"><div className="tab-content h-100" id="nav-tabContent"><div className="tab-pane fade active show h-100">{TabRender()}</div></div></div></div></div>{/* <!--account-tabs-setting end--> */}</div></section>);};export default withRouter(AccountSettings);