2019-05-20 10:30:11 +00:00
|
|
|
import React from 'react';
|
|
|
|
import { storiesOf } from '@storybook/react';
|
|
|
|
import { action } from '@storybook/addon-actions';
|
|
|
|
import { withKnobs, boolean, text, select } from '@storybook/addon-knobs/react';
|
|
|
|
import withReadme from 'storybook-readme/with-readme';
|
|
|
|
import Readme from './README.md';
|
2019-07-02 08:04:54 +00:00
|
|
|
import { Button, Icons } from 'asc-web-components';
|
2019-05-24 13:17:36 +00:00
|
|
|
import Section from '../../../.storybook/decorators/section';
|
2019-07-02 08:04:54 +00:00
|
|
|
import { orderBy } from 'lodash';
|
2019-05-20 10:30:11 +00:00
|
|
|
|
2019-05-31 08:47:33 +00:00
|
|
|
storiesOf('Components|Buttons', module)
|
2019-05-20 10:30:11 +00:00
|
|
|
.addDecorator(withKnobs)
|
|
|
|
.addDecorator(withReadme(Readme))
|
2019-07-02 08:04:54 +00:00
|
|
|
.add('base', () => {
|
2019-07-18 13:24:36 +00:00
|
|
|
const sizeOptions = ['base', 'medium', 'big'];
|
2019-07-02 08:04:54 +00:00
|
|
|
const iconNames = orderBy(Object.keys(Icons), [name => name.toLowerCase()], ['asc']);
|
|
|
|
|
|
|
|
const iconName = select("icon", ['', ...iconNames], '');
|
|
|
|
const hintIcon = iconName ? React.createElement(Icons[iconName]) : undefined;
|
|
|
|
|
|
|
|
return (
|
|
|
|
<Section>
|
|
|
|
<Button
|
|
|
|
label={text('label', 'Base button')}
|
|
|
|
primary={boolean('primary', true)}
|
|
|
|
size={select('size', sizeOptions, 'big')}
|
|
|
|
|
|
|
|
isLoading={boolean('isLoading', false)}
|
|
|
|
isHovered={boolean('isHovered', false)}
|
|
|
|
isClicked={boolean('isClicked', false)}
|
|
|
|
isDisabled={boolean('isDisabled', false)}
|
2019-07-01 07:01:57 +00:00
|
|
|
|
2019-07-02 08:04:54 +00:00
|
|
|
onClick={action('clicked')}
|
2019-07-01 07:01:57 +00:00
|
|
|
|
2019-07-02 08:04:54 +00:00
|
|
|
icon={hintIcon}
|
|
|
|
/>
|
|
|
|
</Section>
|
|
|
|
)
|
|
|
|
});
|