Commit inicial - Sistema de Gestion Hotelera Hacienda San Angel
- Backend Node.js/Express con PostgreSQL - Frontend React 19 con Vite - Docker Compose para orquestacion - Documentacion completa en README.md - Scripts SQL para base de datos - Configuracion de ejemplo (.env.example)
This commit is contained in:
85
frontend/Frontend-Hotel/src/context/AuthContext.jsx
Normal file
85
frontend/Frontend-Hotel/src/context/AuthContext.jsx
Normal file
@@ -0,0 +1,85 @@
|
||||
// context/AuthContext.jsx
|
||||
import { createContext, useState, useEffect } from "react";
|
||||
|
||||
export const AuthContext = createContext();
|
||||
|
||||
function AuthProvider({ children }) {
|
||||
const [user, setUser] = useState(null); // { id, name, role }
|
||||
const [userData, setUserData] = useState(null);
|
||||
|
||||
// Recuperar user de localStorage al iniciar
|
||||
useEffect(() => {
|
||||
const savedUser = localStorage.getItem("rol");
|
||||
if (savedUser) {
|
||||
try {
|
||||
setUser(JSON.parse(savedUser));
|
||||
} catch (error) {
|
||||
console.error("Error parsing user data:", error);
|
||||
localStorage.removeItem("rol");
|
||||
}
|
||||
}
|
||||
}, []);
|
||||
|
||||
const login = (userData, data) => {
|
||||
setUserData(data);
|
||||
setUser(userData);
|
||||
localStorage.setItem("rol", JSON.stringify(userData));
|
||||
};
|
||||
|
||||
const logout = () => {
|
||||
setUser(null);
|
||||
localStorage.removeItem("rol");
|
||||
};
|
||||
|
||||
return (
|
||||
<AuthContext.Provider value={{ user, login, logout, userData }}>
|
||||
{children}
|
||||
</AuthContext.Provider>
|
||||
);
|
||||
}
|
||||
|
||||
export { AuthProvider };
|
||||
|
||||
// // context/AuthContext.jsx
|
||||
// import { createContext, useState, useEffect } from "react";
|
||||
|
||||
// export const AuthContext = createContext();
|
||||
|
||||
// export const AuthProvider = ({ children }) => {
|
||||
// const [user, setUser] = useState(null); // { id, name, role }
|
||||
// const [lang, setLang] = useState("es");//true = español
|
||||
|
||||
// // useEffect(() => {
|
||||
// // const savedUser = localStorage.getItem("rol");
|
||||
// // if (savedUser && savedUser !== "undefined") {
|
||||
// // try {
|
||||
// // setUser(JSON.parse(savedUser));
|
||||
// // } catch (error) {
|
||||
// // console.error("Error al parsear el usuario:", error);
|
||||
// // localStorage.removeItem("rol"); // limpia el valor corrupto
|
||||
// // }
|
||||
// // }
|
||||
// // }, []);
|
||||
|
||||
// // Recuperar user de localStorage al iniciar
|
||||
// useEffect(() => {
|
||||
// const savedUser = localStorage.getItem("rol");
|
||||
// if (savedUser) setUser(JSON.parse(savedUser));
|
||||
// }, []);
|
||||
|
||||
// const login = (userData) => {
|
||||
// setUser(userData);
|
||||
// localStorage.setItem("rol", JSON.stringify(userData));
|
||||
// };
|
||||
|
||||
// const logout = () => {
|
||||
// setUser(null);
|
||||
// localStorage.removeItem("rol");
|
||||
// };
|
||||
|
||||
// return (
|
||||
// <AuthContext.Provider value={{ user, login, logout,lang ,setLang}}>
|
||||
// {children}
|
||||
// </AuthContext.Provider>
|
||||
// );
|
||||
// };
|
||||
24
frontend/Frontend-Hotel/src/context/LenguageContext.jsx
Normal file
24
frontend/Frontend-Hotel/src/context/LenguageContext.jsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import { createContext, useState, useEffect, useContext } from "react";
|
||||
|
||||
export const langContext = createContext();
|
||||
|
||||
export const LangProvider = ({ children }) => {
|
||||
const [lang, setLang] = useState("en"); // Estado para el idioma
|
||||
|
||||
// Ahora 'event' es el objeto de evento de React
|
||||
const toggleLang = (event) => {
|
||||
// Extraemos el valor de la opción seleccionada (ej: "es" o "en")
|
||||
const newLang = event.target.value;
|
||||
console.log("Nuevo idioma seleccionado:", newLang);
|
||||
// Establecemos el estado 'lang' con el valor seleccionado
|
||||
setLang(newLang);
|
||||
}
|
||||
|
||||
return (
|
||||
<langContext.Provider value={{ lang, toggleLang }}>
|
||||
{children}
|
||||
</langContext.Provider>
|
||||
);
|
||||
};
|
||||
|
||||
export const useLang = () => useContext(langContext);
|
||||
Reference in New Issue
Block a user