diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-04-14 19:42:51 +0200 | 
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-04-14 19:42:51 +0200 | 
| commit | 70b4e5c311999501cd6eff632ddbcac6e75ff035 (patch) | |
| tree | f9de55c3d1aa6565a164cf451c73d9fa5c0f7b87 /src/components/organisms/forms/search-form.tsx | |
| parent | 1d162d7aafb3cfe2c3351b5fd891bbf6d476e9b2 (diff) | |
chore: add a SearchForm component
Diffstat (limited to 'src/components/organisms/forms/search-form.tsx')
| -rw-r--r-- | src/components/organisms/forms/search-form.tsx | 57 | 
1 files changed, 57 insertions, 0 deletions
| diff --git a/src/components/organisms/forms/search-form.tsx b/src/components/organisms/forms/search-form.tsx new file mode 100644 index 0000000..351d93c --- /dev/null +++ b/src/components/organisms/forms/search-form.tsx @@ -0,0 +1,57 @@ +import Button from '@components/atoms/buttons/button'; +import Form from '@components/atoms/forms/form'; +import MagnifyingGlass from '@components/atoms/icons/magnifying-glass'; +import LabelledField, { +  LabelledFieldProps, +} from '@components/molecules/forms/labelled-field'; +import { useState, VFC } from 'react'; +import { useIntl } from 'react-intl'; +import styles from './search-form.module.scss'; + +export type SearchFormProps = Pick<LabelledFieldProps, 'hideLabel'>; + +const SearchForm: VFC<SearchFormProps> = ({ hideLabel }) => { +  const intl = useIntl(); +  const fieldLabel = intl.formatMessage({ +    defaultMessage: 'Search for:', +    description: 'SearchForm: field accessible label', +    id: 'X8oujO', +  }); +  const buttonLabel = intl.formatMessage({ +    defaultMessage: 'Search', +    description: 'SearchForm: button accessible name', +    id: 'WMqQrv', +  }); + +  const [value, setValue] = useState<string>(''); + +  const submitHandler = () => { +    return; +  }; + +  return ( +    <Form grouped={false} onSubmit={submitHandler} className={styles.wrapper}> +      <LabelledField +        type="search" +        id="search-form" +        name="search-form" +        label={fieldLabel} +        value={value} +        setValue={setValue} +        hideLabel={hideLabel} +        className={styles.field} +      /> +      <Button +        type="submit" +        kind="neutral" +        shape="initial" +        className={styles.btn} +        aria-label={buttonLabel} +      > +        <MagnifyingGlass className={styles.btn__icon} /> +      </Button> +    </Form> +  ); +}; + +export default SearchForm; | 
