mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-03-11 21:27:05 +00:00
Multiselect stories added to storybook
This commit is contained in:
parent
da33bfa168
commit
7954e4f261
11 changed files with 137 additions and 3 deletions
|
|
@ -0,0 +1,37 @@
|
|||
const React = require('react');
|
||||
const { storiesOf } = require('@storybook/react');
|
||||
const { action } = require('@storybook/addon-actions');
|
||||
const { Multiselect } = require('stremio/common');
|
||||
const styles = require('./styles');
|
||||
|
||||
storiesOf('Multiselect', module).add('MultiselectMultipleValues', () => {
|
||||
const [selected, setSelected] = React.useState(['a']);
|
||||
const onSelect = React.useCallback((event) => {
|
||||
action('onSelect')(event);
|
||||
if (selected.includes(event.value)) {
|
||||
setSelected(selected.filter((value) => value !== event.value));
|
||||
} else {
|
||||
setSelected([...selected, event.value]);
|
||||
}
|
||||
}, [selected]);
|
||||
return (
|
||||
<Multiselect
|
||||
className={styles['label-container']}
|
||||
direction={'bottom'}
|
||||
title={'MultiselectMultipleValues'}
|
||||
options={[
|
||||
{ value: 'a', label: 'A' },
|
||||
{ value: 'b' },
|
||||
{ value: 'c', label: 'C' },
|
||||
]}
|
||||
selected={selected}
|
||||
disabled={false}
|
||||
dataset={{ prop: 'value' }}
|
||||
renderLabelContent={null}
|
||||
renderLabelText={null}
|
||||
onOpen={action('onOpen')}
|
||||
onClose={action('onClose')}
|
||||
onSelect={onSelect}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
|
@ -0,0 +1 @@
|
|||
require('./MultiselectMultipleValues');
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
.label-container {
|
||||
flex: none;
|
||||
width: 17rem;
|
||||
height: 3.6rem;
|
||||
margin: 2rem;
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
const React = require('react');
|
||||
const { storiesOf } = require('@storybook/react');
|
||||
const { action } = require('@storybook/addon-actions');
|
||||
const { Multiselect } = require('stremio/common');
|
||||
const styles = require('./styles');
|
||||
|
||||
storiesOf('Multiselect', module).add('MultiselectNotAutoClosing', () => {
|
||||
const [selected, setSelected] = React.useState(['a']);
|
||||
const onSelect = React.useCallback((event) => {
|
||||
action('onSelect')(event);
|
||||
if (selected.includes(event.value)) {
|
||||
setSelected(selected.filter((value) => value !== event.value));
|
||||
} else {
|
||||
setSelected([...selected, event.value]);
|
||||
}
|
||||
|
||||
event.nativeEvent.closeMenuPrevented = true;
|
||||
}, [selected]);
|
||||
return (
|
||||
<Multiselect
|
||||
className={styles['label-container']}
|
||||
direction={'bottom'}
|
||||
title={'MultiselectNotAutoClosing'}
|
||||
options={[
|
||||
{ value: 'a', label: 'A' },
|
||||
{ value: 'b' },
|
||||
{ value: 'c', label: 'C' },
|
||||
]}
|
||||
selected={selected}
|
||||
disabled={false}
|
||||
dataset={{ prop: 'value' }}
|
||||
renderLabelContent={null}
|
||||
renderLabelText={null}
|
||||
onOpen={action('onOpen')}
|
||||
onClose={action('onClose')}
|
||||
onSelect={onSelect}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
|
@ -0,0 +1 @@
|
|||
require('./MultiselectNotAutoClosing');
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
.label-container {
|
||||
flex: none;
|
||||
width: 17rem;
|
||||
height: 3.6rem;
|
||||
margin: 2rem;
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
const React = require('react');
|
||||
const { storiesOf } = require('@storybook/react');
|
||||
const { action } = require('@storybook/addon-actions');
|
||||
const { Multiselect } = require('stremio/common');
|
||||
const styles = require('./styles');
|
||||
|
||||
storiesOf('Multiselect', module).add('MultiselectSingleValue', () => {
|
||||
const [selected, setSelected] = React.useState(['a']);
|
||||
const onSelect = React.useCallback((event) => {
|
||||
action('onSelect')(event);
|
||||
setSelected([event.value]);
|
||||
}, []);
|
||||
return (
|
||||
<Multiselect
|
||||
className={styles['label-container']}
|
||||
direction={'bottom'}
|
||||
title={'MultiselectSingleValue'}
|
||||
options={[
|
||||
{ value: 'a', label: 'A' },
|
||||
{ value: 'b' },
|
||||
{ value: 'c', label: 'C' },
|
||||
]}
|
||||
selected={selected}
|
||||
disabled={false}
|
||||
dataset={{ prop: 'value' }}
|
||||
renderLabelContent={null}
|
||||
renderLabelText={null}
|
||||
onOpen={action('onOpen')}
|
||||
onClose={action('onClose')}
|
||||
onSelect={onSelect}
|
||||
/>
|
||||
);
|
||||
});
|
||||
|
|
@ -0,0 +1 @@
|
|||
require('./MultiselectSingleValue');
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
.label-container {
|
||||
flex: none;
|
||||
width: 17rem;
|
||||
height: 3.6rem;
|
||||
margin: 2rem;
|
||||
}
|
||||
3
storybook/stories/Multiselect/index.js
Normal file
3
storybook/stories/Multiselect/index.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
require('./MultiselectMultipleValues');
|
||||
require('./MultiselectNotAutoClosing');
|
||||
require('./MultiselectSingleValue');
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
require('./Addon');
|
||||
require('./MetaItem');
|
||||
require('./ColorPicker');
|
||||
require('./SharePrompt');
|
||||
require('./Notification');
|
||||
require('./MetaItem');
|
||||
require('./ModalDialog');
|
||||
require('./Multiselect');
|
||||
require('./Notification');
|
||||
require('./SharePrompt');
|
||||
|
|
|
|||
Loading…
Reference in a new issue