feat(storybook): add theme toggle (#44234)

This commit is contained in:
Maciek Sitkowski
2021-11-25 14:32:52 +01:00
committed by GitHub
parent f5c214dc8d
commit 63f6d9d3f2
4 changed files with 37 additions and 21 deletions

View File

@@ -5,5 +5,39 @@ export const parameters = {
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>
);
}