@keycloakify/keycloak-account-ui
Version:
<p align="center"> <img src="https://github.com/user-attachments/assets/e31c4910-7205-441c-9a35-e134b806b3a8"> </p> <p align="center"> <i>Repackaged Keycloak Account UI</i> <br> <br> <a href="https://github.com/keycloakify/keycloak-a
99 lines • 4.18 kB
JavaScript
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
import { jsx as _jsx } from "react/jsx-runtime";
import { Suspense, useMemo } from "react";
import { assert } from "tsafe/assert";
import { is } from "tsafe/is";
import { joinPath } from "./utils/joinPath";
import defaultContent from "./public/content";
import defaultLogoSvgUrl from "./public/logo.svg";
export function KcAccountUiLoader(props) {
const { KcAccountUi, loadingFallback } = props, paramsOfInit = __rest(props, ["KcAccountUi", "loadingFallback"]);
assert(is(KcAccountUi));
useMemo(() => init(paramsOfInit), []);
return (_jsx(Suspense, { fallback: loadingFallback, children: (() => {
const node = _jsx(KcAccountUi, {});
if (node === null) {
return loadingFallback;
}
return node;
})() }));
}
let previousRunParamsFingerprint = undefined;
function init(params) {
var _a, _b;
exit_condition: {
const paramsFingerprint = JSON.stringify(params);
if (paramsFingerprint === undefined) {
previousRunParamsFingerprint = paramsFingerprint;
break exit_condition;
}
if (paramsFingerprint !== previousRunParamsFingerprint) {
window.location.reload();
return;
}
return;
}
const { content = defaultContent, kcContext, logoUrl = defaultLogoSvgUrl, } = params;
{
const url = new URL(window.location.href);
url.searchParams.delete("referrer");
url.searchParams.delete("referrer_uri");
window.history.replaceState({}, "", url.toString());
}
const environment = {
serverBaseUrl: kcContext.serverBaseUrl,
authUrl: kcContext.authUrl,
authServerUrl: kcContext.authServerUrl,
realm: kcContext.realm.name,
clientId: kcContext.clientId,
resourceUrl: kcContext.resourceUrl,
logo: "",
logoUrl: logoUrl,
baseUrl: `${kcContext.baseUrl.scheme}:${kcContext.baseUrl.rawSchemeSpecificPart}`,
locale: kcContext.locale,
referrerName: (_a = kcContext.referrerName) !== null && _a !== void 0 ? _a : "",
referrerUrl: (_b = kcContext.referrer_uri) !== null && _b !== void 0 ? _b : "",
features: {
isRegistrationEmailAsUsername: kcContext.realm.registrationEmailAsUsername,
isEditUserNameAllowed: kcContext.realm.editUsernameAllowed,
isInternationalizationEnabled: kcContext.realm.isInternationalizationEnabled,
isLinkedAccountsEnabled: kcContext.realm.identityFederationEnabled,
isMyResourcesEnabled: kcContext.realm.userManagedAccessAllowed &&
kcContext.isAuthorizationEnabled,
deleteAccountAllowed: kcContext.deleteAccountAllowed,
updateEmailFeatureEnabled: kcContext.updateEmailFeatureEnabled,
updateEmailActionEnabled: kcContext.updateEmailActionEnabled,
isViewGroupsEnabled: kcContext.isViewGroupsEnabled,
isOid4VciEnabled: kcContext.isOid4VciEnabled,
},
};
{
assert();
const script = document.createElement("script");
script.id = "environment";
script.type = "application/json";
script.textContent = JSON.stringify(environment, null, 1);
document.body.appendChild(script);
}
const realFetch = window.fetch;
window.fetch = async function fetch(...args) {
const [url] = args;
if (url === joinPath(environment.resourceUrl, "/content.json")) {
return {
json: () => Promise.resolve(content),
};
}
return realFetch(...args);
};
}
//# sourceMappingURL=KcAccountUiLoader.js.map