UNPKG

@keycloakify/keycloak-admin-ui

Version:
34 lines 1.57 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { NetworkError } from "@keycloak/keycloak-admin-client"; import { createNamedContext, useFetch, useRequiredContext, } from "../../ui-shared"; import { useCallback, useState } from "react"; import { useAdminClient } from "../../admin-client"; import { KeycloakSpinner } from "../../ui-shared"; import { sortProviders } from "../../util"; export const ServerInfoContext = createNamedContext("ServerInfoContext", undefined); export const useServerInfo = () => useRequiredContext(ServerInfoContext); export const useLoginProviders = () => sortProviders(useServerInfo().providers["login-protocol"].providers); export const ServerInfoProvider = ({ children }) => { const { adminClient } = useAdminClient(); const [serverInfo, setServerInfo] = useState(); const findServerInfo = useCallback(async () => { var _a; try { const serverInfo = await adminClient.serverInfo.find(); return serverInfo; } catch (error) { // The user is not allowed to view the server info if (error instanceof NetworkError && ((_a = error.response) === null || _a === void 0 ? void 0 : _a.status) === 403) { return {}; } throw error; } }, []); useFetch(findServerInfo, setServerInfo, []); if (!serverInfo) { return _jsx(KeycloakSpinner, {}); } return (_jsx(ServerInfoContext.Provider, { value: serverInfo, children: children })); }; //# sourceMappingURL=ServerInfoProvider.js.map