2019-07-08 07:12:43 +00:00
|
|
|
import React from 'react'
|
|
|
|
import { storiesOf } from '@storybook/react'
|
2019-08-22 08:05:03 +00:00
|
|
|
import { withKnobs, text, boolean } from '@storybook/addon-knobs/react';
|
2019-07-22 07:59:31 +00:00
|
|
|
import { BooleanValue } from 'react-values'
|
2019-07-08 07:12:43 +00:00
|
|
|
import withReadme from 'storybook-readme/with-readme'
|
|
|
|
import styled from '@emotion/styled';
|
2019-09-08 13:36:39 +00:00
|
|
|
import Readme from './README.md';
|
|
|
|
import GroupButtonsMenu from '.';
|
|
|
|
import DropDownItem from '../drop-down-item';
|
|
|
|
import Button from '../button';
|
2019-07-08 07:12:43 +00:00
|
|
|
|
|
|
|
const GroupButtonsMenuContainer = styled.div`
|
|
|
|
height: 2000px;
|
|
|
|
`;
|
|
|
|
|
|
|
|
storiesOf('Components|GroupButtonsMenu', module)
|
2019-07-30 11:17:19 +00:00
|
|
|
.addDecorator(withReadme(Readme))
|
|
|
|
.addDecorator(withKnobs)
|
|
|
|
.add('base', () => {
|
2019-08-22 08:05:03 +00:00
|
|
|
const disableEven = boolean('disable even', false);
|
|
|
|
const disableOdd = boolean('disable odd', false);
|
|
|
|
|
|
|
|
const groupItems = [
|
|
|
|
{
|
|
|
|
label: 'Select',
|
|
|
|
isDropdown: true,
|
|
|
|
isSeparator: true,
|
|
|
|
isSelect: true,
|
|
|
|
fontWeight: 'bold',
|
|
|
|
children: [
|
|
|
|
<DropDownItem key='aaa' label='aaa' />,
|
|
|
|
<DropDownItem key='bbb' label='bbb' />,
|
|
|
|
<DropDownItem key='ccc' label='ccc' />,
|
|
|
|
],
|
|
|
|
onSelect: (a) => console.log(a)
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableEven,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableOdd,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableEven,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableOdd,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableEven,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableOdd,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableEven,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableOdd,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableEven,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableOdd,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableEven,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableOdd,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableEven,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableOdd,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableEven,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableOdd,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableEven,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
},
|
|
|
|
{
|
|
|
|
label: 'Menu item',
|
|
|
|
disabled: disableOdd,
|
|
|
|
onClick: () => console.log('Menu item action')
|
|
|
|
}
|
|
|
|
];
|
|
|
|
|
2019-07-30 11:17:19 +00:00
|
|
|
return (
|
|
|
|
<BooleanValue>
|
|
|
|
{({ value: visible, toggle }) => (
|
|
|
|
<>
|
|
|
|
<Button
|
|
|
|
label="Show menu"
|
2019-09-09 13:06:22 +00:00
|
|
|
onClick={() => {
|
2019-07-30 11:17:19 +00:00
|
|
|
toggle(visible);
|
|
|
|
}}
|
|
|
|
/>
|
|
|
|
<GroupButtonsMenuContainer>
|
|
|
|
<BooleanValue>
|
|
|
|
{({ value: checked, toggle }) => (
|
|
|
|
<GroupButtonsMenu
|
|
|
|
checked={checked}
|
|
|
|
menuItems={groupItems}
|
|
|
|
visible={visible}
|
|
|
|
moreLabel={text('moreLabel', 'More')}
|
|
|
|
closeTitle={text('closeTitle', 'Close')}
|
|
|
|
onClose={() => console.log('Close action')}
|
2019-09-09 13:06:22 +00:00
|
|
|
onChange={() => toggle(checked)}
|
2019-07-30 11:17:19 +00:00
|
|
|
selected={groupItems[0].label}
|
|
|
|
/>
|
2019-07-22 07:59:31 +00:00
|
|
|
)}
|
2019-07-30 11:17:19 +00:00
|
|
|
</BooleanValue>
|
|
|
|
</GroupButtonsMenuContainer>
|
|
|
|
</>
|
|
|
|
)}
|
|
|
|
</BooleanValue>
|
|
|
|
);
|
|
|
|
});
|