@redocly/theme
Version:
Shared UI components lib
44 lines • 1.77 kB
JavaScript
;
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