chore updates
This commit is contained in:
parent
818331917c
commit
45aa2932ac
@ -2,17 +2,20 @@ import Keycloak from "keycloak-js";
|
|||||||
import {
|
import {
|
||||||
createContext,
|
createContext,
|
||||||
useCallback,
|
useCallback,
|
||||||
useContext,
|
|
||||||
useEffect,
|
useEffect,
|
||||||
useMemo,
|
useMemo,
|
||||||
useRef,
|
useRef,
|
||||||
useState,
|
useState,
|
||||||
} from "react";
|
} from "react";
|
||||||
|
|
||||||
|
// variables
|
||||||
|
|
||||||
let keycloakInstance = null;
|
let keycloakInstance = null;
|
||||||
let initPromise = null;
|
let initPromise = null;
|
||||||
let initializedValue = false;
|
let initializedValue = false;
|
||||||
|
|
||||||
|
// contexts
|
||||||
|
|
||||||
const KeycloakContext = createContext(null);
|
const KeycloakContext = createContext(null);
|
||||||
|
|
||||||
const createKeycloak = ({ url, realm, clientId }) => {
|
const createKeycloak = ({ url, realm, clientId }) => {
|
||||||
@ -26,6 +29,8 @@ const createKeycloak = ({ url, realm, clientId }) => {
|
|||||||
return keycloakInstance;
|
return keycloakInstance;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// initializations
|
||||||
|
|
||||||
export const initKeycloak = ({ config, initOptions = {} }) => {
|
export const initKeycloak = ({ config, initOptions = {} }) => {
|
||||||
const keycloak = createKeycloak(config);
|
const keycloak = createKeycloak(config);
|
||||||
if (!initPromise) {
|
if (!initPromise) {
|
||||||
@ -48,6 +53,8 @@ export const initKeycloak = ({ config, initOptions = {} }) => {
|
|||||||
return initPromise;
|
return initPromise;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// exports
|
||||||
|
|
||||||
export const isKeycloakInitialized = () => {
|
export const isKeycloakInitialized = () => {
|
||||||
return initializedValue;
|
return initializedValue;
|
||||||
};
|
};
|
||||||
@ -74,6 +81,8 @@ export const loginKeycloak = (options) => {
|
|||||||
return keycloakInstance?.login(options);
|
return keycloakInstance?.login(options);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// providers
|
||||||
|
|
||||||
export const KeycloakProvider = ({
|
export const KeycloakProvider = ({
|
||||||
children,
|
children,
|
||||||
config,
|
config,
|
||||||
@ -152,10 +161,8 @@ export const KeycloakProvider = ({
|
|||||||
|
|
||||||
// const useKeycloak = () => {
|
// const useKeycloak = () => {
|
||||||
// const context = useContext(KeycloakContext);
|
// const context = useContext(KeycloakContext);
|
||||||
|
|
||||||
// if (!context) {
|
// if (!context) {
|
||||||
// throw new Error("useKeycloak must be used inside KeycloakProvider");
|
// throw new Error("useKeycloak must be used inside KeycloakProvider");
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// return context;
|
// return context;
|
||||||
// };
|
// };
|
||||||
|
|||||||
@ -13,15 +13,19 @@ import {
|
|||||||
logoutKeycloak,
|
logoutKeycloak,
|
||||||
} from "./keycloak.jsx";
|
} from "./keycloak.jsx";
|
||||||
|
|
||||||
|
// contexts
|
||||||
|
|
||||||
const PermissionContext = createContext(null);
|
const PermissionContext = createContext(null);
|
||||||
|
|
||||||
|
// storage keys
|
||||||
|
|
||||||
const DEFAULT_STORAGE_KEY = "permissions";
|
const DEFAULT_STORAGE_KEY = "permissions";
|
||||||
|
|
||||||
const getPermissionStorageKey = (config) => {
|
const getPermissionStorageKey = (config) => {
|
||||||
return config?.storageKey || DEFAULT_STORAGE_KEY;
|
return config?.storageKey || DEFAULT_STORAGE_KEY;
|
||||||
};
|
};
|
||||||
|
|
||||||
// provider
|
// providers
|
||||||
|
|
||||||
export const PermissionProvider = ({
|
export const PermissionProvider = ({
|
||||||
user = null,
|
user = null,
|
||||||
@ -81,7 +85,7 @@ export const PermissionProvider = ({
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
// storage
|
// storage cashes
|
||||||
|
|
||||||
export const getCachedPermissions = (storageKey = DEFAULT_STORAGE_KEY) => {
|
export const getCachedPermissions = (storageKey = DEFAULT_STORAGE_KEY) => {
|
||||||
if (typeof window === "undefined") return undefined;
|
if (typeof window === "undefined") return undefined;
|
||||||
@ -139,14 +143,14 @@ export const checkPermission = (permissionSet, perm = "") => {
|
|||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
// keys
|
// api keys
|
||||||
|
|
||||||
export const permissionKeys = {
|
export const permissionKeys = {
|
||||||
all: ["permissions"],
|
all: ["permissions"],
|
||||||
list: (clientId) => [...permissionKeys.all, clientId],
|
list: (clientId) => [...permissionKeys.all, clientId],
|
||||||
};
|
};
|
||||||
|
|
||||||
// api
|
// apis
|
||||||
|
|
||||||
export const getPermissions = async (config) => {
|
export const getPermissions = async (config) => {
|
||||||
if (!config?.url || !config?.clientId) {
|
if (!config?.url || !config?.clientId) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user