| 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);
|