UNPKG

@slashid/docusaurus-theme-slashid

Version:
89 lines (87 loc) 2.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useSlashIDConfig = void 0; var _react = require("react"); var _useDocusaurusContext = _interopRequireDefault(require("@docusaurus/useDocusaurusContext")); var _domain = require("../../domain"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /* ============================================================================ * Copyright (c) SlashID * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * ========================================================================== */ function isLegacyConfig(config) { if (config.hasOwnProperty("oidcClientID") && config.hasOwnProperty("oidcProvider")) { return true; } return false; } const DEFAULT_CONFIG = { orgID: "", forceLogin: false, baseURL: "https://api.slashid.com", sdkURL: "https://cdn.slashid.com/sdk.html", uxMode: "redirect", privateRedirectPath: "/", formConfiguration: { storeLastHandle: true, factors: [{ method: "email_link" }] } }; const useSlashIDConfig = () => { const { siteConfig } = (0, _useDocusaurusContext.default)(); const { slashID } = siteConfig.themeConfig; const safeOptions = (0, _react.useMemo)(() => { // handle the legacy theme config if (isLegacyConfig(slashID) && slashID.oidcClientID && slashID.oidcProvider) { const { orgID, forceLogin, baseURL, sdkURL, privatePaths, privateRedirectPath } = slashID; const options = { orgID, forceLogin, baseURL, sdkURL, privatePaths, privateRedirectPath, formConfiguration: { factors: [{ method: "email_link" }, { method: "oidc", options: { client_id: slashID.oidcClientID, provider: slashID.oidcProvider, ux_mode: "popup" } }] } }; return (0, _domain.convertGlobToRegex)({ ...DEFAULT_CONFIG, ...options }); } const optionsWithDefaults = { ...DEFAULT_CONFIG, ...slashID }; return (0, _domain.convertGlobToRegex)(optionsWithDefaults); }, [slashID]); return safeOptions; }; exports.useSlashIDConfig = useSlashIDConfig;