import React, { createContext, useState, useEffect } from "react";
import Cookies from "js-cookie";

// create a context for the user.
export const UserContext = createContext();

export const UserProvider = ({ children }) => {
  // user that will be stored initally set as guest
  const [user, setUser] = useState({
    isAuthenticated: false,
    permission: "guest",
  });

  useEffect(() => {
    // check if user is authenticated and their permisssion level
    const userAuthenticated = Cookies.get("userAuthenticated");
    const userPermission = Cookies.get("userPermission");

    console.log("userContext user authenticated: ", userAuthenticated);
    console.log("userContext user permission: ", userPermission);

    if (userAuthenticated === "true") {
      setUser({
        isAuthenticated: true,
        permission: userPermission || "guest",
      });

      console.log("set permission to: ", userPermission);
    }
  }, []);

  return (
    <UserContext.Provider value={{ user, setUser }}>
      {children}
    </UserContext.Provider>
  );
};