react-storybook-addon-info-docgen
v1.1.1
Published
A React Storybook addon to show additional information for your stories.
Downloads
10
Readme
React Storybook Info Addon
A React Storybook addon to show additional information for your stories.
Usage
Install the following npm module:
npm i -D @kadira/react-storybook-addon-info
Then set the addon in the place you configure storybook like this:
import React from 'react';
import { configure, setAddon } from '@kadira/storybook';
import infoAddon from '@kadira/react-storybook-addon-info';
setAddon(infoAddon);
configure(function () {
...
}, module);
Then create your stories with the .addWithInfo
API.
import React from 'react';
import Button from './Button';
import { storiesOf, action } from '@kadira/storybook';
storiesOf('Button')
.addWithInfo(
'simple usage',
`
This is the basic usage with the button with providing a label to show the text.
`,
() => (
<div>
<Button label="The Button" onClick={action('onClick')}/>
<br />
<p>
Click the "?" mark at top-right to view the info.
</p>
</div>
),
);
Then create your stories with the .addWithHOC
API.
import React from 'react';
import TextField from './TextField';
import withState from 'recompose/withState';
import { storiesOf, action } from '@kadira/storybook';
storiesOf('TextField')
.addWithHOC(
'simple usage',
`
This is the basic usage with the TextField
`,
withState('value', 'onChange', 'init value'),
TextField,
({ value, onChange}) => (
<TextField value={value} onChange={onChange} />
)
);
Have a look at this example stories to learn more about the
addWithInfo
API.
Use with Docgen
We may add the description to prop. For example:
Object.assign(Button, {
displayName: 'Button',
propTypes: {
/** Single line comment: This is label description */
label: React.PropTypes.string.isRequired,
/*
* Multiple lines comment: This is style description
* Must be in object
*/
style: React.PropTypes.object,
disabled: React.PropTypes.bool,
onClick: React.PropTypes.func,
},
});
The FAQ
Components lose their names on static build
Component names also get minified with other javascript code when building for production. When creating components, set the displayName
static property to show the correct component name on static builds.