UNPKG

@storybook/codemod

Version:

A collection of codemod scripts written with JSCodeshift

195 lines (166 loc) • 5.58 kB
/* eslint-disable */ import React from 'react' import Button from './Button' import { storiesOf } from '@storybook/react' import { action } from '@storybook/addon-actions' import { withInfo } from "@storybook/addon-info"; storiesOf( 'Button' ).add('simple usage', withInfo( '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> ))) storiesOf('Button').add('simple usage (inline info)', withInfo({ text: ` This is the basic usage with the button with providing a label to show the text. `, inline: true })(() => <Button label="The Button" onClick={action('onClick')} />)) storiesOf('Button').add('simple usage (disable source)', withInfo({ text: ` This is the basic usage with the button with providing a label to show the text. `, source: false, inline: true })(() => <Button label="The Button" onClick={action('onClick')} />)) storiesOf('Button').add('simple usage (no header)', withInfo({ text: ` This is the basic usage with the button with providing a label to show the text. `, header: false, inline: true })(() => <Button label="The Button" onClick={action('onClick')} />)) storiesOf('Button').add('simple usage (no prop tables)', withInfo({ text: ` This is the basic usage with the button with providing a label to show the text. `, propTables: false, inline: true })(() => <Button label="The Button" onClick={action('onClick')} />)) storiesOf('Button').add('simple usage (custom propTables)', withInfo({ text: ` This is the basic usage with the button with providing a label to show the text. Since, the story source code is wrapped inside a div, info addon can't figure out propTypes on it's own. So, we need to give relevant React component classes manually using \`propTypes\` option as shown below: ~~~js storiesOf('Button') .addWithInfo( 'simple usage (custom propTables)', <info>, <storyFn>, { inline: true, propTables: [Button]} ); ~~~ `, inline: true, propTables: [Button] })(() => ( <div> <Button label="The Button" onClick={action('onClick')} /> <br /> </div> ))) storiesOf('Button').add('simple usage (JSX description)', withInfo(<div> <h2>This is a JSX info section</h2> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ornare massa rutrum metus commodo, a mattis velit dignissim. Fusce vestibulum turpis sed massa egestas pharetra. Sed at libero nulla. </p> <p> <a href="https://github.com/storybooks/react-storybook-addon-info"> This is a link </a> </p> <p> <img src="http://placehold.it/350x150" /> </p> </div>)(() => ( <div> <Button label="The Button" onClick={action('onClick')} /> <br /> <p> Click the "?" mark at top-right to view the info. </p> </div> ))) storiesOf('Button').add('simple usage (inline JSX description)', withInfo({ text: <div> <h2>This is a JSX info section</h2> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ornare massa rutrum metus commodo, a mattis velit dignissim. Fusce vestibulum turpis sed massa egestas pharetra. Sed at libero nulla. </p> <p> <a href="https://github.com/storybooks/react-storybook-addon-info"> This is a link </a> </p> <p> <img src="http://placehold.it/350x150" /> </p> </div>, inline: true })(() => <Button label="The Button" onClick={action('onClick')} />)) storiesOf('Button').add('simple usage (maxPropsInLine === 1)', withInfo({ text: ` This is the basic usage with the button with providing a label to show the text. `, inline: true, maxPropsIntoLine: 1 })(() => <Button label="The Button" onClick={action('onClick')} />)) storiesOf('Button').add('simple usage (maxPropObjectKeys === 5)', withInfo({ text: ` This is the basic usage with the button with providing a label to show the text. `, inline: true, maxPropObjectKeys: 5 })( () => <Button label="The Button" object={{ a: 1, b: 2, c: 3, d: 4, e: 5, f: 6 }} /> )) storiesOf('Button').add('simple usage (maxPropArrayLength === 8)', withInfo({ text: ` This is the basic usage with the button with providing a label to show the text. `, inline: true, maxPropArrayLength: 8 })( () => <Button label="The Button" array={[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]} /> )) storiesOf('Button').add('simple usage (maxPropStringLength === 10)', withInfo({ text: ` This is the basic usage with the button with providing a label to show the text. `, inline: true, maxPropStringLength: 5 })(() => <Button label="The Button" string="1 2 3 4 5 6 7 8" />)) storiesOf('Button').add('with custom styles', withInfo({ text: ` This is an example of how to customize the styles of the info components. For the full styles available, see \`./src/components/Story.js\` `, inline: true, styles: stylesheet => { stylesheet.infoPage = { backgroundColor: '#ccc' } return stylesheet } })(() => <Button label="The Button" onClick={action('onClick')} />)) storiesOf('shared/ProgressBar', module) .addDecorator(withKnobs) .add('default style', withInfo('default style')(() => ( <ProgressBar progress={number('progress', 25)} delay={number('delay', 500)} /> )));