Files
freeCodeCamp/tools/ui-components/.storybook/preview.js
2021-11-25 16:32:52 +03:00

44 lines
925 B
JavaScript

export const parameters = {
actions: { argTypesRegex: '^on[A-Z].*' },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/
}
},
backgrounds: {
values: [
{
name: 'light',
value: '#ffffff'
},
{
name: 'dark',
value: '#0a0a23'
}
]
}
};
export const decorators = [renderTheme];
/**
* Gets matching theme name for currently selected background and provides it
* to the story.
*/
function renderTheme(Story, context) {
const selectedBackgroundValue = context.globals.backgrounds?.value;
const selectedBackgroundName = parameters.backgrounds.values.find(
bg => bg.value === selectedBackgroundValue
)?.name;
// There can be no background selected, prevent "undefined" className
const className = selectedBackgroundName || '';
return (
<div className={className}>
<Story />
</div>
);
}