import React from 'react'; import { config, GrafanaBootConfig } from '@grafana/runtime'; import { ThemeContext, getTheme } from '@grafana/ui'; import { GrafanaThemeType } from '@grafana/data'; export const ConfigContext = React.createContext(config); export const ConfigConsumer = ConfigContext.Consumer; export const provideConfig = (component: React.ComponentType) => { const ConfigProvider = (props: any) => ( {React.createElement(component, { ...props })} ); return ConfigProvider; }; export const getCurrentThemeName = () => config.bootData.user.lightTheme ? GrafanaThemeType.Light : GrafanaThemeType.Dark; export const getCurrentTheme = () => getTheme(getCurrentThemeName()); export const ThemeProvider = ({ children }: { children: React.ReactNode }) => { return ( {config => { return {children}; }} ); }; export const provideTheme = (component: React.ComponentType) => { return provideConfig((props: any) => {React.createElement(component, { ...props })}); };