import React from 'react'; import { storiesOf } from '@storybook/react'; import { Button } from 'asc-web-components'; import Section from '../../../.storybook/decorators/section'; function onClick(e) { e = e || window.event; var target = e.target || e.srcElement, text = target.textContent || target.innerText; console.log("onClick", text); } const getButtons = (primary) => { const sizes = ['big', 'medium', 'base']; const states = ['isActivated', 'isHovered', 'isClicked', 'isDisabled']; const baseButton = { size: 'base', primary: true, isActivated: false, isHovered: false, isClicked: false, isDisabled: false, isLoading: false, onClick: onClick, label: "base button" }; let buttons = []; baseButton.primary = primary; sizes.forEach(size => { let sizeButtons = []; states.forEach(state => { let btn = { ...baseButton, size: size, label: primary ? (size === "base" ? "Save" : "Publish") : "Cancel" } btn[state] = true; sizeButtons.push(btn); }) buttons.push({ size: size, buttons: sizeButtons }); }); console.log("buttons", buttons); return buttons; }; storiesOf('Components|Buttons', module) // To set a default viewport for all the stories for this component .addParameters({ viewport: { defaultViewport: 'responsive' } }) .addParameters({ options: { showAddonPanel: false } }) .add('all', () => (

Main buttons (primary action)

{Object.values(getButtons(true)).map((btnSize, i) => { console.log(btnSize); return ( {Object.values(btnSize.buttons).map((btn, j) => ( ))} ) })}
Active Hover Click Disable

Main buttons (secondary action)

{Object.values(getButtons(false)).map((btnSize, i) => { console.log(btnSize); return ( {Object.values(btnSize.buttons).map((btn, j) => ( ))} ) })}
Active Hover Click Disable
));