import React, { useState } from 'react'; import { Meta, Story } from '@storybook/react'; import Button from '../Button/Button'; import { ISearchFieldProps, SearchFieldDumb as SearchField, } from './SearchField'; import LoadingIcon from '../Icon/LoadingIcon/LoadingIcon'; export default { title: 'Controls/SearchField', component: SearchField, parameters: { docs: { description: { component: SearchField.peek.description, }, }, }, } as Meta; export const Basic: Story = (args) => { return ; }; export const Interactive: Story = (args) => { const [state, setState] = useState(''); return (
setState(value)} />
Hit "enter" to submit: {state}
); }; export const Placeholder: Story = (args) => { return ; }; export const Disabled: Story = (args) => { return ; }; export const CustomIcon: Story = (args) => { return ( ); }; export const CustomTextField: Story = (args) => { const [state, setState] = useState({ value: '', submission: '', lastValue: '', }); const [key, setKey] = useState(''); return (
setState({ ...state, submission })} onChange={(value) => setState({ ...state, value })} onKeyDown={({ event: { key } }) => setKey(key)} onBlur={(lastValue) => setState({ ...state, lastValue })} />
Hit "enter" to submit: {state.submission}
Last keydown: {key}
Value on blur: {state.lastValue}
); }; export const ValidSearch: Story = (args) => { const [state, setState] = useState({ value: '', submission: '', lastValue: '', }); return ( 2} value={state.value} onSubmit={(submission) => setState({ ...state, submission })} onChange={(value) => setState({ ...state, value })} /> ); }; export const Props: Story = (args) => { return (
); }; export const Debounced: Story = (args) => { const [value, setValue] = useState('foo'); return (
setValue(value)} />
Value: {value}
); };