Coder Social home page Coder Social logo

ezralalonde / react-storybook-addon-props-combinations Goto Github PK

View Code? Open in Web Editor NEW

This project forked from evgenykochetkov/react-storybook-addon-props-combinations

0.0 2.0 0.0 1.3 MB

Given possible values for each prop, renders your component with all combinations of prop values.

Home Page: https://evgenykochetkov.github.io/react-storybook-addon-props-combinations/

JavaScript 100.00%

react-storybook-addon-props-combinations's Introduction

npm version Build Status

Props Combinations addon for React Storybook

Given possible values for each prop, renders your component with all combinations of prop values. Useful for finding edge cases or just seeing all component states at once.

Installation

Install it:

npm i -D react-storybook-addon-props-combinations

Then set the addon in your .storybook/config.js:

import { configure } from '@storybook/react'

import { setDefaults } from 'react-storybook-addon-props-combinations'

setDefaults({
  // overwrite global defaults here
})

configure(() => {
  // ...
}, module)

Basic usage

import React from 'react';
import { storiesOf } from '@storybook/react';
import { action } from '@storybook/addon-actions';

import withPropsCombinations from 'react-storybook-addon-props-combinations'

import YourComponent from './somewhere'

storiesOf('Basics', module)
  .add('Standard usage', withPropsCombinations(
    // provide your component
    YourComponent,
    // and an object with the shape
    // {propName: arrayOfPossiblevalues}
    {
      disabled: [false, true],
      onClick: [action('clicked')],
      children: ['hello world', <b>some elements</b>]
    }
  )

Options

Are provided as 4th argument to addWithPropsCombinations or set globally using setDefaults

showSource

default: true

Toggles rendering of sample source for each combination.

Example source | Result

mustProvideAllProps

default: false

Ensures that possible values are provided for all props listed in propTypes.

Example source | Result

CombinationRenderer

default implementation

A component that renders a single props combination for your component. Receives Component, props and options as props.

Example source | Result

combinationsModifier

default: x => x(identity function)

A function that takes an array of generated prop combinations, does something with it(adds new combinations, removes or modifies some of existing ones, etc), and returns that modified array. (See a list of included modifiers below)

Example source | Result

Included combination modifiers

(If you'd like to expand this list, PRs are welcome!)

withOneOfBool

Takes an array of property names and adds more combination with one of these props set to true. For example, if we had [{ label: 'my button' }], withOneOfBool(['small', 'big']) will add { label: 'my button', small: true } and { label: 'my button', big: true }.

See this story for a more detailed example.

react-storybook-addon-props-combinations's People

Contributors

evgenykochetkov avatar avaly avatar

Watchers

Ezra Lalonde avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.