Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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