generative_front/contexts/KeycloakContext.js
Hossein Salari d4a2acba6e
All checks were successful
Build and Deploy Next.js + Nginx Docker Image / build-and-deploy (push) Successful in 2m53s
Build and Deploy Next.js + Nginx Docker Image / deploy (push) Successful in 6s
core: update many files
2026-02-23 13:41:29 +03:30

37 lines
946 B
JavaScript

import keycloak from "@/lib/keycloak";
import { createContext, useContext, useEffect, useState } from "react";
const KeycloakContext = createContext();
let keycloakInitialized = false;
export const KeycloakProvider = ({ children }) => {
const [initialized, setInitialized] = useState(false);
const [authenticated, setAuthenticated] = useState(false);
useEffect(() => {
if (!keycloakInitialized) {
keycloakInitialized = true;
keycloak
.init({
onLoad: "login-required",
checkLoginIframe: false,
flow: "implicit",
})
.then((auth) => {
setAuthenticated(auth);
setInitialized(true);
})
.catch((err) => {});
}
}, []);
return (
<KeycloakContext.Provider value={{ keycloak, authenticated, initialized }}>
{children}
</KeycloakContext.Provider>
);
};
export const useKeycloak = () => useContext(KeycloakContext);