Skip to content

Commit 6af71ce

Browse files
Creating an optimized production build
1 parent 125feaa commit 6af71ce

File tree

14 files changed

+59
-106
lines changed

14 files changed

+59
-106
lines changed

src/App.js

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// App.js
2-
import React, { useState, useEffect } from "react";
2+
import React, { useState, useEffect, useRef, useCallback } from "react";
33
import {
44
BrowserRouter as Router,
55
Route,
@@ -124,37 +124,42 @@ const obtenerCorreoDesdeToken = (token) => {
124124
function AppRoutes({ user, setUser }) {
125125
const [loading, setLoading] = useState(true);
126126
const navigate = useNavigate();
127-
128-
useEffect(() => {
129-
const fetchUser = async () => {
130-
const token = localStorage.getItem("token");
131-
if (token) {
132-
try {
133-
const correoGuardado = obtenerCorreoDesdeToken(token);
134-
if (correoGuardado) {
135-
const usuario = await consultarUsuarioPorCorreo(correoGuardado);
136-
setUser(usuario);
137-
138-
if (usuario.isAdmin) {
139-
document.documentElement.style.setProperty("--variable-collection-current-color", "var(--variable-collection-user-admin)");
140-
navigate("/administrador");
141-
} else {
142-
document.documentElement.style.setProperty("--variable-collection-current-color", "var(--variable-collection-user-estandar)");
143-
navigate("/home");
144-
}
145-
} else {
146-
localStorage.removeItem("token");
147-
}
148-
} catch (error) {
149-
console.error("Error obteniendo usuario:", error);
127+
const hasFetchedUser = useRef(false);
128+
129+
const fetchUser = useCallback(async () => {
130+
const token = localStorage.getItem("token");
131+
if (token) {
132+
try {
133+
const correoGuardado = obtenerCorreoDesdeToken(token);
134+
if (correoGuardado) {
135+
const usuario = await consultarUsuarioPorCorreo(correoGuardado);
136+
setUser(usuario);
137+
138+
const currentPath = usuario.isAdmin ? "/administrador" : "/home";
139+
document.documentElement.style.setProperty(
140+
"--variable-collection-current-color",
141+
usuario.isAdmin
142+
? "var(--variable-collection-user-admin)"
143+
: "var(--variable-collection-user-estandar)"
144+
);
145+
navigate(currentPath);
146+
} else {
150147
localStorage.removeItem("token");
151148
}
149+
} catch (error) {
150+
console.error("Error obteniendo usuario:", error);
151+
localStorage.removeItem("token");
152152
}
153-
setLoading(false);
154-
};
153+
}
154+
setLoading(false);
155+
}, [setUser, navigate]);
155156

156-
fetchUser();
157-
}, []);
157+
useEffect(() => {
158+
if (!hasFetchedUser.current) {
159+
fetchUser();
160+
hasFetchedUser.current = true;
161+
}
162+
}, [fetchUser]);
158163

159164
const handleLogout = () => {
160165
localStorage.removeItem("token");

src/components/Admin/filters/DiaSalonFilter.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const DiaSalonFilter = ({ onBuscar }) => {
2525
if (dia) {
2626
onBuscar({ dia });
2727
}
28-
}, [dia]);
28+
}, [dia, onBuscar]);
2929

3030
return (
3131
<Container>

src/components/Admin/filters/MesSalonFilter.jsx

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,7 @@ const MesSalonFilter = ({ onBuscar }) => {
3535
if (mes) {
3636
onBuscar({ mes });
3737
}
38-
}, [mes]);
39-
40-
const handleBuscar = () => {
41-
if (!mes) {
42-
alert("Por favor selecciona un mes");
43-
return;
44-
}
45-
onBuscar({ mes });
46-
};
38+
}, [mes, onBuscar]);
4739

4840
return (
4941
<Container>

src/components/Admin/filters/RangoFechasFilter.jsx

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,7 @@ const RangoFechasFilter = ({ onBuscar }) => {
3030
if (fechaInicio && fechaFin) {
3131
onBuscar({ fechaInicio, fechaFin });
3232
}
33-
}, [fechaInicio, fechaFin]);
34-
35-
const handleBuscar = () => {
36-
if (!fechaInicio || !fechaFin) {
37-
alert("Por favor, selecciona ambas fechas.");
38-
return;
39-
}
40-
onBuscar({ fechaInicio, fechaFin });
41-
};
33+
}, [fechaInicio, fechaFin, onBuscar]);
4234

4335
return (
4436
<Container>
@@ -58,7 +50,6 @@ const RangoFechasFilter = ({ onBuscar }) => {
5850
onChange={(e) => setFechaFin(e.target.value)}
5951
/>
6052
</Row>
61-
<Button onClick={handleBuscar}>Buscar Reservas</Button>
6253
</Container>
6354
);
6455
};
@@ -85,12 +76,4 @@ const Input = styled.input`
8576
font-size: 16px;
8677
border: 1px solid #ccc;
8778
border-radius: 4px;
88-
`;
89-
const Button = styled.button`
90-
background-color: #52b69a;
91-
color: #fff;
92-
padding: 8px 16px;
93-
border: none;
94-
border-radius: 8px;
95-
cursor: pointer;
9679
`;

src/components/Admin/filters/TotalSalonFilter.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ const TotalSalonFilter = ({ onBuscar }) => {
2121
useEffect(() => {
2222
// Realizar la búsqueda automáticamente cuando se selecciona un salón
2323
onBuscar({ ...(salon && { idSalon: salon }) });
24-
}, [salon]);
24+
}, [salon, onBuscar]);
2525

2626
return (
2727
<Container>

src/components/Table/UserRow.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState } from "react";
1+
import React from "react";
22
import styled from 'styled-components';
33
import Button from "../Button/Button"; // Asegúrate de que este import apunte a tu componente Button
44

src/components/popup/AddReservaModal/GenerarReservaForm.jsx

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,6 @@ const FormGenerarReserva = ({ usuario, onClose , onReservaExitosa }) => {
3030
{ hora: "05:30 PM", valor: 17.5 }
3131
];
3232

33-
const generarFechasDelMes = (mes, año) => {
34-
const fechas = [];
35-
const fechaBase = new Date(año, mes - 1, 1);
36-
37-
while (fechaBase.getMonth() === mes - 1) {
38-
fechas.push(fechaBase.toISOString().split("T")[0]);
39-
fechaBase.setDate(fechaBase.getDate() + 1);
40-
}
41-
42-
return fechas;
43-
};
44-
4533
useEffect(() => {
4634
const cargarSalones = async () => {
4735
const data = await getSalones();

src/components/popup/CRUDSalonModal/CRUDSalonForm.jsx

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,6 @@ function CRUDSalonForm({ tempSalon, setTempSalon, isEditing }) {
77
setTempSalon({ ...tempSalon, recursos: [...tempSalon.recursos, { nombre: "", cantidad: 1, especificaciones: [], activo: true }] });
88
};
99

10-
// Función para eliminar un recurso por índice
11-
const eliminarRecurso = (index) => {
12-
setTempSalon({
13-
...tempSalon,
14-
recursos: tempSalon.recursos.filter((_, i) => i !== index)
15-
});
16-
};
17-
18-
// Función para actualizar un recurso específico
19-
const actualizarRecurso = (index, value) => {
20-
const nuevosRecursos = [...tempSalon.recursos];
21-
nuevosRecursos[index] = value;
22-
setTempSalon({ ...tempSalon, recursos: nuevosRecursos });
23-
};
24-
2510
return (
2611
<div className="modal-content">
2712
<div className="campo">

src/config/config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export const BASE_URL = "https://limbo-cfgvasfjc6argbhh.canadacentral-01.azurewebsites.net/";
1+
export const BASE_URL = "http://localhost:8080/api";

src/pages/Administrator/consultaModal/ConsultaDiaSalon.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useState } from "react";
1+
import React, { useState, useCallback } from "react";
22
import styled from "styled-components";
33
import DiaSalonFilter from "../../../components/Admin/filters/DiaSalonFilter";
44
import DiaSalonChart from "../../../components/Admin/charts/DiaSalonChart";
@@ -8,7 +8,7 @@ const ConsultaDiaSalon = () => {
88
const [reservas, setReservas] = useState([]);
99
const [errorMsg, setErrorMsg] = useState("");
1010

11-
const handleBuscar = async (filtros) => {
11+
const handleBuscar = useCallback(async (filtros) => {
1212
try {
1313
setErrorMsg("");
1414
setReservas([]);
@@ -26,7 +26,7 @@ const ConsultaDiaSalon = () => {
2626
} catch (error) {
2727
setErrorMsg(error.message || "Error consultando reservas");
2828
}
29-
};
29+
}, []);
3030

3131
return (
3232
<Body>

0 commit comments

Comments
 (0)