import { Select as BaseSelect } from '../../components/Select'; import { Box } from '../../components/Box'; import { ComponentMeta, ComponentStory } from '@storybook/react'; import { Text } from '../../components/Typography'; import { setGeneratedPropArgs } from '../../helpers/generatedPropArgs'; import React, { useState } from 'react'; import base from 'paths.macro'; export default { argTypes: { ...setGeneratedPropArgs() }, parameters: { generator: true }, title: `Components/forms/${base.replace('/src/stories/3-forms/', '')}Select` } as ComponentMeta; const SelectedLabel = ({ selected }) => { if (selected?.label) { return {selected?.label}; } if (Array.isArray(selected) && selected.length) { return Selected ({selected.length}); } return Select an option; }; const ClearLabel = ({ hasOptionSelected }) => { const textProps = hasOptionSelected ? { p500: true } : { g300: true }; return ( Clear... ); }; const Template: ComponentStory = args => { const [value, setValue] = useState(args?.isMultiple ? [] : ''); const handleSelect = value => { return setValue(value); }; return ( Selected:
                        
                            {typeof value === 'string' || typeof value === 'number'
                                ? value
                                : JSON.stringify(value, null, 4)}
                        
                    
); }; export const Select = Template.bind({}); Select.args = { disabled: false, hint: 'This is a hint text to help user.', isClearable: false, isMultiple: false, options: [ { label: 'Portugal', value: 'pt' }, { label: 'Spain', value: 'es' }, { label: 'France', value: 'fr' }, { label: 'Italy', value: 'it' }, { label: 'Brazil', value: 'br' }, { label: 'USA', value: 'us' }, { label: 'United Kingdom', value: 'uk' }, { label: 'A very big label to format multiple line option in the list', value: 'xx' }, { label: 'Australia', value: 'au' } ], withError: false, withOptionsSearch: false };