Knobs
Storybook has an add-on called knobs which allows you to interact with your components and change their proprerties in real-time.
First let's install knobs with the following command.
npm i -D @storybook/addon-knobsNext we have to add the add-on to the Storybook configuration in main.js.
module.exports = {
stories: ["../src/**/*.stories.(js|mdx)"],
addons: [
...
"@storybook/addon-knobs",
...
]
};We also need to tell Storybook to use withKnobs as a decorator. Inside preview.js, import withKnobs and add it as a decorator.
import { withKnobs } from "@storybook/addon-knobs";
...
addDecorator(withKnobs);Let's add a knob for setting the disabled state of our buttons. Inside Button.stories.mdx import the following.
import { withKnobs, boolean } from "@storybook/addon-knobs";Then we can add the disabled attribute to our button using the boolean value we just imported.
<Preview withToolbar>
<Story name="primary">
<PrimaryButton disabled={boolean("Disabled", false)}>
Hello world
</PrimaryButton>
</Story>
</Preview>After restarting your storybook server, head back to your UI, under the canvas tab, you should see a knob at the bottom with a checkbox discerning the disabled state. If you click it, it should disable the button.