import React from 'react'; import { config, GrafanaBootConfig } from '@grafana/runtime'; import { ThemeContext } from '@grafana/ui'; import { createTheme } 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 getCurrentTheme = () => createTheme({ colors: { mode: config.bootData.user.lightTheme ? 'light' : 'dark', }, }); 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 })}); };