Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 4619 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3585 stevensc 1
/* eslint-disable react/prop-types */
1 www 2
import React, { useEffect, useState } from "react";
3585 stevensc 3
import { withRouter } from "react-router";
1 www 4
import styled from "styled-components";
5
import BasicSettings from "./basic-settings/BasicSettings";
6
import Browsers from "./browsers/Browsers";
7
import ChangeImage from "./change-image/ChangeImage";
8
import ChangePassword from "./change-password/ChangePassword";
9
import Devices from "./devices/Devices";
10
import Ips from "./ips/Ips";
11
import Location from "./location/Location";
12
import Notifications from "./notifications/Notifications";
13
import Privacy from "./privacy/Privacy";
14
import SocialNetworks from "./social-networks/SocialNetworks";
15
import Transactions from "./transactions/Transactions";
1963 steven 16
import CloseAccount from "./close-account/CloseAccount";
1 www 17
 
18
const StyledNavTabs = styled.div`
19
  a {
20
    cursor: pointer;
21
    &.active {
22
      color: blue;
23
    }
24
  }
25
`;
26
 
27
const TABS = {
28
  BASIC: "BASIC",
29
  NOTIFICATIONS: "NOTIFICATIONS",
30
  CHANGE_PASSWORD: "CHANGE_PASSWORD",
31
  CHANGE_IMAGE: "CHANGE_IMAGE",
32
  LOCATION: "LOCAITON",
33
  PRIVACY: "PRIVACY",
34
  SOCIAL_NETWORKS: "SOCIAL_NETWORKS",
35
  TRANSACTIONS: "TRANSACTIONS",
36
  BROWSERS: "BROWSERS",
37
  IPS: "IPS",
38
  DEVICES: "DEVICES",
1963 steven 39
  CLOSE_ACCOUNT: "CLOSE_ACCOUNT",
1 www 40
};
41
 
4406 stevensc 42
const AccountSettings = (props) => {
1 www 43
  // props destructuring
44
  const {
45
    facebook,
46
    google,
47
    twitter,
48
    socialNetworkRoutes,
49
    routeTransactions,
50
    routeAddFunds,
51
    routeBrowsers,
52
    routeIPs,
53
    routeDevices,
54
    balance,
55
    amounts,
4405 stevensc 56
    timezones,
57
    defaultNetwork
58
  } = backendVars;
1 www 59
 
60
  const [currentTab, setCurrentTab] = useState(TABS.BASIC);
61
 
3585 stevensc 62
  const handleChangeTab = (event, tab) => {
1 www 63
    event.preventDefault();
64
    setCurrentTab(tab);
65
  };
66
 
67
  const TabRender = () => {
68
    switch (currentTab) {
69
      case TABS.BASIC:
4113 efrain 70
        return <BasicSettings timezones={timezones} />;
1 www 71
      case TABS.NOTIFICATIONS:
72
        return <Notifications />;
73
      case TABS.CHANGE_PASSWORD:
74
        return <ChangePassword />;
75
      case TABS.CHANGE_IMAGE:
76
        return <ChangeImage />;
77
      case TABS.LOCATION:
78
        return <Location />;
79
      case TABS.PRIVACY:
80
        return <Privacy />;
81
      case TABS.SOCIAL_NETWORKS:
82
        return (
83
          <SocialNetworks
84
            facebook={facebook}
85
            twitter={twitter}
86
            google={google}
87
            socialNetworkRoutes={socialNetworkRoutes}
88
          />
89
        );
90
      case TABS.TRANSACTIONS:
91
        return (
92
          <Transactions
93
            routeTransactions={routeTransactions}
94
            routeAddFunds={routeAddFunds}
95
            balance={balance}
96
            amounts={amounts}
97
          />
98
        );
99
      case TABS.BROWSERS:
100
        return <Browsers routeBrowsers={routeBrowsers} />;
101
      case TABS.IPS:
102
        return <Ips routeIPs={routeIPs} />;
103
      case TABS.DEVICES:
104
        return <Devices routeDevices={routeDevices} />;
1963 steven 105
      case TABS.CLOSE_ACCOUNT:
106
        return <CloseAccount />;
1 www 107
      case TABS.default:
108
        return <BasicSettings />;
109
    }
110
  };
111
 
112
  useEffect(() => {
113
    const searchParam = new URLSearchParams(props.location.search);
114
    const tab = searchParam.get("tab");
115
    if (tab === "nav-basic") setCurrentTab(TABS.BASIC);
116
    if (tab === "nav-notification") setCurrentTab(TABS.NOTIFICATIONS);
117
    if (tab === "nav-password") setCurrentTab(TABS.CHANGE_PASSWORD);
118
    if (tab === "nav-image") setCurrentTab(TABS.CHANGE_IMAGE);
119
    if (tab === "nav-location") setCurrentTab(TABS.LOCATION);
120
    if (tab === "nav-privacy") setCurrentTab(TABS.PRIVACY);
121
    if (tab === "nav-social-networks") setCurrentTab(TABS.SOCIAL_NETWORKS);
122
    if (tab === "nav-transactions") setCurrentTab(TABS.TRANSACTIONS);
123
    if (tab === "nav-browsers") setCurrentTab(TABS.BROWSERS);
124
    if (tab === "nav-ips") setCurrentTab(TABS.IPS);
125
    if (tab === "nav-devices") setCurrentTab(TABS.DEVICES);
126
  }, [props.location]);
127
 
128
  return (
129
    <section className="profile-account-setting">
130
      <div className="container">
131
        <div className="account-tabs-setting">
2633 stevensc 132
          <h1>Configuración de la cuenta</h1>
4617 stevensc 133
          <div className="row" style={{ gap: '.5rem' }}>
4618 stevensc 134
            <div className="col-lg-4 p-0">
1 www 135
              <div className="acc-leftbar">
136
                <StyledNavTabs
137
                  className="nav nav-tabs"
138
                  id="nav-tab"
139
                  role="tablist"
140
                >
141
                  <a
3585 stevensc 142
                    href="#"
2629 stevensc 143
                    className={`nav-item nav-link`}
1 www 144
                    onClick={(e) => handleChangeTab(e, TABS.BASIC)}
4405 stevensc 145
                  >
2629 stevensc 146
                    <i className="la la-user" />Básica
1 www 147
                  </a>
148
                  <a
3585 stevensc 149
                    href="#"
2629 stevensc 150
                    className={`nav-item nav-link`}
1 www 151
                    onClick={(e) => handleChangeTab(e, TABS.NOTIFICATIONS)}
152
                  >
2629 stevensc 153
                    <i className="la la-cogs" />Notificaciones
1 www 154
                  </a>
155
                  <a
3585 stevensc 156
                    href="#"
2629 stevensc 157
                    className={`nav-item nav-link`}
1 www 158
                    onClick={(e) => handleChangeTab(e, TABS.CHANGE_PASSWORD)}
4405 stevensc 159
                  >
2629 stevensc 160
                    <i className="fa fa-lock" />Cambiar clave
1 www 161
                  </a>
162
                  <a
3585 stevensc 163
                    href="#"
2629 stevensc 164
                    className={`nav-item nav-link`}
1 www 165
                    onClick={(e) => handleChangeTab(e, TABS.CHANGE_IMAGE)}
4405 stevensc 166
                  >
2629 stevensc 167
                    <i className="fa fa-image" />Cambiar imagen
1 www 168
                  </a>
169
                  <a
3585 stevensc 170
                    href="#"
2629 stevensc 171
                    className={`nav-item nav-link`}
1 www 172
                    onClick={(e) => handleChangeTab(e, TABS.LOCATION)}
4405 stevensc 173
                  >
2629 stevensc 174
                    <i className="fa fa-map-marker" />Ubicación
1 www 175
                  </a>
4406 stevensc 176
                  {defaultNetwork === "y" &&
4405 stevensc 177
                    <a
178
                      href="#"
179
                      className={`nav-item nav-link`}
4761 stevensc 180
                      onClick={(e) => handleChangeTab(e, TABS.PRIVACY)}
181
                    >
182
                      <i className="fa fa-user-secret" />Privacidad
183
                    </a>
184
                  }
185
                  {defaultNetwork === "y" &&
186
                    <a
187
                      href="#"
188
                      className={`nav-item nav-link`}
4405 stevensc 189
                      onClick={(e) => handleChangeTab(e, TABS.SOCIAL_NETWORKS)}
3585 stevensc 190
                    >
4405 stevensc 191
                      <i className="fa fa-facebook" />Redes Sociales
192
                    </a>
193
                  }
4397 stevensc 194
                  {/* <a
3585 stevensc 195
                    href="#"
2629 stevensc 196
                    className={`nav-item nav-link`}
1 www 197
                    onClick={(e) => handleChangeTab(e, TABS.TRANSACTIONS)}
3585 stevensc 198
                    >
2629 stevensc 199
                    <i className="fa fa-money" />Transacciones
4397 stevensc 200
                  </a> */}
4761 stevensc 201
                  {defaultNetwork === "y" &&
202
                    <a
203
                      href="#"
204
                      className={`nav-item nav-link`}
205
                      onClick={(e) => handleChangeTab(e, TABS.CLOSE_ACCOUNT)}
206
                    >
207
                      <i className="fa fa-trash"></i>Cerrar cuenta
208
                    </a>
209
                  }
1 www 210
                </StyledNavTabs>
211
              </div>
212
            </div>
4619 stevensc 213
            <div className="col-lg-7 p-0">
1966 steven 214
              <div className="tab-content h-100" id="nav-tabContent">
215
                <div className="tab-pane fade active show h-100">
216
                  {TabRender()}
217
                </div>
1 www 218
              </div>
219
            </div>
220
          </div>
221
        </div>
222
      </div>
223
    </section>
224
  );
225
};
226
 
227
export default withRouter(AccountSettings);