config.js 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. import React from 'react';
  2. import {ThemeProvider} from 'emotion-theming';
  3. import {configure, setAddon, getStorybook, addDecorator} from '@storybook/react';
  4. import createPercyAddon from '@percy-io/percy-storybook';
  5. import infoAddon, {setDefaults} from '@storybook/addon-info';
  6. import {withKnobs} from '@storybook/addon-knobs';
  7. import theme from '../src/sentry/static/sentry/app/utils/theme';
  8. import './storybook.less';
  9. const withTheme = storyFn => <ThemeProvider theme={theme}>{storyFn()}</ThemeProvider>;
  10. const {percyAddon, serializeStories} = createPercyAddon();
  11. setAddon(percyAddon);
  12. setDefaults({
  13. inline: true,
  14. header: false,
  15. source: true,
  16. });
  17. setAddon(infoAddon);
  18. addDecorator(withTheme);
  19. addDecorator(withKnobs);
  20. // Use webpack's require.context to load modules dynamically
  21. // From https://storybook.js.org/basics/writing-stories/
  22. const req = require.context('../docs-ui/components', true, /\.stories\.js$/);
  23. configure(function() {
  24. require('../docs-ui/index.js');
  25. req.keys().forEach(filename => req(filename));
  26. }, module);
  27. serializeStories(getStorybook);