Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 1 | Rev 1966 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

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