diff --git a/packages/grafana-ui/src/themes/ThemeContext.test.tsx b/packages/grafana-ui/src/themes/ThemeContext.test.tsx new file mode 100644 index 00000000000..26feb2c617c --- /dev/null +++ b/packages/grafana-ui/src/themes/ThemeContext.test.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import { config } from '@grafana/runtime'; +import { css } from 'emotion'; +import { mount } from 'enzyme'; +import { useStyles } from './ThemeContext'; + +describe('useStyles', () => { + it('passes in theme and returns style object', () => { + const Dummy: React.FC = function() { + const styles = useStyles(theme => { + expect(theme).toEqual(config.theme); + + return { + someStyle: css` + color: ${theme?.palette.critical}; + `, + }; + }); + + expect(typeof styles.someStyle).toBe('string'); + + return
(Component: Rea
export function useTheme(): GrafanaTheme {
return useContext(ThemeContextMock || ThemeContext);
}
+
/** Hook for using memoized styles with access to the theme. */
-export const useStyles = (getStyles: (theme?: GrafanaTheme) => any) => {
- const currentTheme = useTheme();
- const callback = stylesFactory(stylesTheme => getStyles(stylesTheme));
- return callback(currentTheme);
-};
+export function useStyles