UNPKG

@redocly/theme

Version:

Shared UI components lib

33 lines (26 loc) 976 B
import { useContext } from 'react'; import type { UiAccessibleConfig } from '@redocly/theme/config'; import { ThemeDataContext } from '@redocly/theme/core/contexts'; // TODO: rename and additionally export as alias for backward compatibility export function useThemeConfig<T extends Record<string, unknown>>( useProductConfig: boolean = true, ): T & NonNullable<UiAccessibleConfig> { const context = useContext(ThemeDataContext); if (!context?.config) { return {} as T; } const { config, hooks } = context; const { useCurrentProduct } = hooks; // eslint-disable-next-line react-hooks/rules-of-hooks const currentProduct = useCurrentProduct(); const mergedConfig = useProductConfig && currentProduct?.configOverride ? { ...config, ...currentProduct.configOverride, // Do not override analytics config from product analytics: config.analytics, } : config; return mergedConfig as T; }