UNPKG

@redocly/theme

Version:

Shared UI components lib

44 lines 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useThemeHooks = void 0; const react_1 = require("react"); const ThemeDataContext_1 = require("../contexts/ThemeDataContext"); const use_telemetry_fallback_1 = require("./use-telemetry-fallback"); const fallbacks = { useAnchorPositioning: () => ({ isSupported: false }), useTranslate: () => ({ translate: (value, options) => (typeof options === 'string' ? options : options === null || options === void 0 ? void 0 : options.defaultValue) || value || '', }), useSubmitFeedback: () => ({ submitFeedback: () => { } }), useTelemetry: use_telemetry_fallback_1.useTelemetryFallback, /** * @deprecated use `useTelemetry` instead **/ useOtelTelemetry: () => ({ send: () => { } }), useBreadcrumbs: () => ({ breadcrumbs: [], siblings: undefined }), useBanner: () => ({ banner: undefined, dismissBanner: () => { } }), useCodeHighlight: () => ({ highlight: (rawContent) => rawContent }), useUserMenu: () => ({}), usePageData: () => null, usePageProps: () => ({}), usePageSharedData: () => null, useMcpData: () => ({ docs: { enabled: false } }), }; const useThemeHooks = () => { const context = (0, react_1.useContext)(ThemeDataContext_1.ThemeDataContext); return new Proxy({}, { get(_, prop) { if (context && prop in context.hooks) { return context.hooks[prop]; } else if (prop in fallbacks) { return fallbacks[prop]; } else { throw new Error(`Unknown hook ${prop.toString()}`); } }, }); }; exports.useThemeHooks = useThemeHooks; //# sourceMappingURL=use-theme-hooks.js.map