All Projects → evgenykochetkov → React Storybook Addon Props Combinations

evgenykochetkov / React Storybook Addon Props Combinations

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

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to React Storybook Addon Props Combinations

storybook-xstate-addon
A storybook addon to assist with writing stories that rely on xstate
Stars: ✭ 48 (-63.08%)
Mutual labels:  addon, storybook
Storybook Addon
Develop themable components with Emotion/Styled Components/Material-UI with help of Storybook & React Theming
Stars: ✭ 122 (-6.15%)
Mutual labels:  addon, storybook
storybook-addon-next
A no config Storybook addon that makes Next.js features just work in Storybook
Stars: ✭ 184 (+41.54%)
Mutual labels:  addon, storybook
Storybook Addon Jest
REPO/PACKAGE MOVED - React storybook addon that show component jest report
Stars: ✭ 177 (+36.15%)
Mutual labels:  addon, storybook
Storycap
A Storybook Addon, Save the screenshot image of your stories 📷 via puppeteer.
Stars: ✭ 451 (+246.92%)
Mutual labels:  addon, storybook
Addon Smart Knobs
🧠 This Storybook plugin uses @storybook/addon-knobs but creates the knobs automatically based on PropTypes.
Stars: ✭ 215 (+65.38%)
Mutual labels:  addon, storybook
create-material-ui-app
create-react-app + storybook + storybook-addon-material-ui
Stars: ✭ 55 (-57.69%)
Mutual labels:  addon, storybook
Addon Jsx
This Storybook addon show you the JSX / template of the story
Stars: ✭ 209 (+60.77%)
Mutual labels:  addon, storybook
msw-storybook-addon
Mock API requests in Storybook with Mock Service Worker.
Stars: ✭ 168 (+29.23%)
Mutual labels:  addon, storybook
storybook-styled-components
No description or website provided.
Stars: ✭ 76 (-41.54%)
Mutual labels:  addon, storybook
Storybook Addon Styled Component Theme
storybook addon
Stars: ✭ 168 (+29.23%)
Mutual labels:  addon, storybook
Storybook Addon A11y
REPO/PACKAGE MOVED - Storybook addon to help, improving accessibility within you're react components.
Stars: ✭ 37 (-71.54%)
Mutual labels:  addon, storybook
storybook-addon-mock
This addon allows you to mock fetch or XMLHttpRequest in the storybook.
Stars: ✭ 67 (-48.46%)
Mutual labels:  addon, storybook
storybook-addon-headless
A Storybook addon to preview content from a headless CMS in components
Stars: ✭ 23 (-82.31%)
Mutual labels:  addon, storybook
Storybook Addon Material Ui
Addon for storybook wich wrap material-ui components into MuiThemeProvider. 📃 This helps and simplifies development of material-ui based components.
Stars: ✭ 513 (+294.62%)
Mutual labels:  addon, storybook
Storybook Addon Preview
Storybook Addon Preview can show user selected knobs in various framework code in Storybook
Stars: ✭ 43 (-66.92%)
Mutual labels:  addon, storybook
Addon Pi Hole
Pi-hole - Home Assistant Community Add-ons
Stars: ✭ 120 (-7.69%)
Mutual labels:  addon
Swift Selection Search
Swift Selection Search (SSS) is a simple Firefox add-on that lets you quickly search for some text in a page using your favorite search engines.
Stars: ✭ 125 (-3.85%)
Mutual labels:  addon
Librefox
License: Mozilla Public License 2.0
Stars: ✭ 1,574 (+1110.77%)
Mutual labels:  addon
Ember Socket Guru
Addon for easy integration with Pusher.js, ActionCable, Socket.io and Phoenix Channels
Stars: ✭ 119 (-8.46%)
Mutual labels:  addon

npm version npm 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.

Live storybook demo

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

Options can be provided as 4th argument to addWithPropsCombinations or set globally using setDefaults.

Name Type Default Description Storybooks
CombinationRenderer Component default renderer A component that renders a single props combination for your component. Receives Component, props and options as props. Source, Demo
combinationsModifier function x => x 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 included combination modifiers below. Source, Demo
mustProvideAllProps boolean false Ensures that possible values are provided for all props listed in propTypes. Source, Demo
showSource boolean true Toggles rendering of sample source for each combination. Source, Demo
style object {} Optional styling for wrapping div of each rendered combination

Included Combination Modifiers

The following combination modifiers are included by default. If you'd like to expand this list, PRs are welcome!

Name Description
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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].