diff --git a/src/core/keycloak.jsx b/src/core/keycloak.jsx index 6efe5fc..3ce5de5 100644 --- a/src/core/keycloak.jsx +++ b/src/core/keycloak.jsx @@ -2,17 +2,20 @@ import Keycloak from "keycloak-js"; import { createContext, useCallback, - useContext, useEffect, useMemo, useRef, useState, } from "react"; +// variables + let keycloakInstance = null; let initPromise = null; let initializedValue = false; +// contexts + const KeycloakContext = createContext(null); const createKeycloak = ({ url, realm, clientId }) => { @@ -26,6 +29,8 @@ const createKeycloak = ({ url, realm, clientId }) => { return keycloakInstance; }; +// initializations + export const initKeycloak = ({ config, initOptions = {} }) => { const keycloak = createKeycloak(config); if (!initPromise) { @@ -48,6 +53,8 @@ export const initKeycloak = ({ config, initOptions = {} }) => { return initPromise; }; +// exports + export const isKeycloakInitialized = () => { return initializedValue; }; @@ -74,6 +81,8 @@ export const loginKeycloak = (options) => { return keycloakInstance?.login(options); }; +// providers + export const KeycloakProvider = ({ children, config, @@ -152,10 +161,8 @@ export const KeycloakProvider = ({ // const useKeycloak = () => { // const context = useContext(KeycloakContext); - // if (!context) { // throw new Error("useKeycloak must be used inside KeycloakProvider"); // } - // return context; // }; diff --git a/src/core/permission.jsx b/src/core/permission.jsx index b294c9b..578584a 100644 --- a/src/core/permission.jsx +++ b/src/core/permission.jsx @@ -13,15 +13,19 @@ import { logoutKeycloak, } from "./keycloak.jsx"; +// contexts + const PermissionContext = createContext(null); +// storage keys + const DEFAULT_STORAGE_KEY = "permissions"; const getPermissionStorageKey = (config) => { return config?.storageKey || DEFAULT_STORAGE_KEY; }; -// provider +// providers export const PermissionProvider = ({ user = null, @@ -81,7 +85,7 @@ export const PermissionProvider = ({ ); }; -// storage +// storage cashes export const getCachedPermissions = (storageKey = DEFAULT_STORAGE_KEY) => { if (typeof window === "undefined") return undefined; @@ -139,14 +143,14 @@ export const checkPermission = (permissionSet, perm = "") => { return false; }; -// keys +// api keys export const permissionKeys = { all: ["permissions"], list: (clientId) => [...permissionKeys.all, clientId], }; -// api +// apis export const getPermissions = async (config) => { if (!config?.url || !config?.clientId) {