UNPKG

storybook-addon-themes

Version:

A storybook addon to switch between different themes for your preview

33 lines (25 loc) 880 B
import addons, { makeDecorator, StoryContext, StoryGetter, WrapperSettings } from '@storybook/addons'; import { DECORATOR } from './constants'; import { Theme, ThemeConfig } from './models'; import parameters from './parameters'; import { getConfig } from './shared'; import { ThemeDecorator } from './decorators/vue'; function wrapper(getStory: StoryGetter, context: StoryContext, { parameters }: WrapperSettings) { const config = getConfig(parameters as ThemeConfig | Theme[]); const channel = addons.getChannel(); channel.emit(DECORATOR); return { components: { ThemeDecorator }, template: ` <theme-decorator :config="config"> <story/> </theme-decorator>`, data() { return { config }; }, } } export const withThemes = makeDecorator({ ...parameters, wrapper}); if (module && module.hot && module.hot.decline) { module.hot.decline(); }