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