import React, { useState } from 'react';
import { storiesOf } from '@storybook/react';
import { Dropdown } from '../src';
import _ from 'lodash';
import iconToasterInfo from '../src/images/icon-trash-black.svg';
const data = [
{
id: 1,
value: 'Value 1',
},
{
id: 2,
value: 'Value 2',
},
{
id: 3,
value: 'Value 3',
},
{
id: 4,
value: 'Value 4',
},
{
id: 5,
value: 'Value 5',
isDisabled: true,
},
{
id: 6,
value: 'Value 6',
},
{
id: 8,
value: 'Value 8',
},
{
id: 7,
value: 'Value 7',
},
{
id: 9,
value:
"Ceci est la valeur numéro neuf qui a pour but d'overflow. Si ce n'est pas le cas c'est que j'ai fais de la merde",
},
{
id: 10,
value: 'Value 10',
},
{
id: 11,
value: 'Value 11',
},
{
id: 12,
value: 'AAA',
},
{
id: -1,
value: 'Aucune',
},
];
storiesOf('Dropdown', module).add('Single selection', () => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return
{children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
});
storiesOf('Dropdown', module).add(
'Single selection with label sort by id',
() => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
{
return _.sortBy(itemsList, 'id');
}}
/>
)}
);
}
);
storiesOf('Dropdown', module).add(
'Single selection with required label',
() => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
}
);
storiesOf('Dropdown', module).add(
'Single selection with required label disabled without values',
() => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
}
);
storiesOf('Dropdown', module).add('Single selection with icon', () => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
});
storiesOf('Dropdown', module).add('Single selection with icon disabled', () => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
});
storiesOf('Dropdown', module).add('Single selection without search bar', () => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
});
storiesOf('Dropdown', module).add(
'Single selection with value disabled',
() => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([
{
id: 4,
value: 'Value 4',
},
]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
}
);
storiesOf('Dropdown', module).add('Single selection with button', () => {
const button = {
id: 1,
text: 'Create category',
handleClick: () => {
console.log('Coucou');
},
iconSrc: iconToasterInfo,
};
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
});
storiesOf('Dropdown', module).add(
'Single selection with disabled button',
() => {
const button = {
id: 1,
text: 'Create category',
handleClick: () => {
console.log('Coucou');
},
iconSrc: iconToasterInfo,
isDisabled: true,
};
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
}
);
storiesOf('Dropdown', module).add('Single selection with custom render', () => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
const data = [
{
id: 1,
value: 'value 1',
renderValue: () => (
{'value 1'}
{'little hint'}
{'I AM THE BEST'}
),
},
{
id: 2,
value: 'value 2',
renderValue: () => (
{'value 2'}
{'little hint'}
),
},
{
id: 3,
value: 'value 3',
renderValue: () => (
{'value 3'}
{'little hint'}
),
},
{
id: 4,
value: 'value 4',
renderValue: () => (
{'value 4'}
{'little hint'}
),
},
{
id: 5,
value: 'value 5',
renderValue: () => (
{'value 5'}
{'little hint'}
),
},
];
return (
{(selectedItems, onSelectionChange) => (
)}
);
});
storiesOf('Dropdown', module).add('Multiple selection', () => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
});
storiesOf('Dropdown', module).add('Multiple selection with icon', () => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
});
storiesOf('Dropdown', module).add(
'Multiple selection without search bar',
() => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
}
);
storiesOf('Dropdown', module).add('Multiple selection with button', () => {
const button = {
id: 1,
text: 'Create category',
handleClick: () => {
console.log('Coucou');
},
iconSrc: iconToasterInfo,
};
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
});
storiesOf('Dropdown', module).add(
'Multiple selection with disabled button',
() => {
const button = {
id: 1,
text: 'Create category',
handleClick: () => {
console.log('Coucou');
},
iconSrc: iconToasterInfo,
isDisabled: true,
};
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
return (
{(selectedItems, onSelectionChange) => (
)}
);
}
);
storiesOf('Dropdown', module).add(
'Multiple selection with custom render',
() => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
const data = [
{
id: 1,
value: 'value 1',
renderValue: () => (
{'value 1'}
{'little hint'}
),
},
{
id: 2,
value: 'value 2',
renderValue: () => (
{'value 2'}
{'little hint'}
),
},
{
id: 3,
value: 'value 3',
renderValue: () => (
{'value 3'}
{'little hint'}
),
},
{
id: 4,
value: 'value 4',
renderValue: () => (
{'value 4'}
{'little hint'}
),
},
{
id: 5,
value: 'value 5',
renderValue: () => (
{'value 5'}
{'little hint'}
),
},
];
return (
{(selectedItems, onSelectionChange) => (
)}
);
}
);
storiesOf('Dropdown', module).add(
'Multiple selection with custom render and without search bar',
() => {
function Parent({ children }) {
const [selectedItems, setSelectedItems] = useState([]);
const onSelectionChange = (items) => {
setSelectedItems(items);
};
return {children(selectedItems, onSelectionChange)}
;
}
const data = [
{
id: 1,
value: 'value 1',
renderValue: () => (
{'value 1'}
{'little hint'}
),
},
{
id: 2,
value: 'value 2',
renderValue: () => (
{'value 2'}
{'little hint'}
),
},
{
id: 3,
value: 'value 3',
renderValue: () => (
{'value 3'}
{'little hint'}
),
},
{
id: 4,
value: 'value 4',
renderValue: () => (
{'value 4'}
{'little hint'}
),
},
{
id: 5,
value: 'value 5',
renderValue: () => (
{'value 5'}
{'little hint'}
),
},
];
return (
{(selectedItems, onSelectionChange) => (
)}
);
}
);