diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-04-16 16:08:49 +0200 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-04-16 16:41:30 +0200 |
| commit | 5a6e4eea16047083e2de0e91a1b3ed9be8d6eb68 (patch) | |
| tree | ea0c5390aca73907aade5321f30cb7bf8d3ab1cb /src/components/atoms/forms | |
| parent | daffe6e8b9e2021ffb9d006482143bc4db985f02 (diff) | |
refactor: support React 18
I replaced the deprecated VFC type with FC type and made all children
explicits.
Formatjs is still not compatible with React 18 so I need to skip type
checking when comitting. There are some type errors because of
IntlProvider in Storybook stories.
Diffstat (limited to 'src/components/atoms/forms')
| -rw-r--r-- | src/components/atoms/forms/checkbox.tsx | 4 | ||||
| -rw-r--r-- | src/components/atoms/forms/field.tsx | 4 | ||||
| -rw-r--r-- | src/components/atoms/forms/form.test.tsx | 6 | ||||
| -rw-r--r-- | src/components/atoms/forms/form.tsx | 6 | ||||
| -rw-r--r-- | src/components/atoms/forms/label.tsx | 6 | ||||
| -rw-r--r-- | src/components/atoms/forms/select.tsx | 4 |
6 files changed, 21 insertions, 9 deletions
diff --git a/src/components/atoms/forms/checkbox.tsx b/src/components/atoms/forms/checkbox.tsx index 8babcc8..aec97f0 100644 --- a/src/components/atoms/forms/checkbox.tsx +++ b/src/components/atoms/forms/checkbox.tsx @@ -1,4 +1,4 @@ -import { SetStateAction, VFC } from 'react'; +import { FC, SetStateAction } from 'react'; export type CheckboxProps = { /** @@ -32,7 +32,7 @@ export type CheckboxProps = { * * Render a checkbox type input. */ -const Checkbox: VFC<CheckboxProps> = ({ value, setValue, ...props }) => { +const Checkbox: FC<CheckboxProps> = ({ value, setValue, ...props }) => { return ( <input type="checkbox" diff --git a/src/components/atoms/forms/field.tsx b/src/components/atoms/forms/field.tsx index 2e75d0f..e45a8a7 100644 --- a/src/components/atoms/forms/field.tsx +++ b/src/components/atoms/forms/field.tsx @@ -1,4 +1,4 @@ -import { ChangeEvent, SetStateAction, VFC } from 'react'; +import { ChangeEvent, FC, SetStateAction } from 'react'; import styles from './forms.module.scss'; export type FieldType = @@ -72,7 +72,7 @@ export type FieldProps = { * * Render either an input or a textarea. */ -const Field: VFC<FieldProps> = ({ +const Field: FC<FieldProps> = ({ className = '', setValue, type, diff --git a/src/components/atoms/forms/form.test.tsx b/src/components/atoms/forms/form.test.tsx index 9cd3c58..8b534f1 100644 --- a/src/components/atoms/forms/form.test.tsx +++ b/src/components/atoms/forms/form.test.tsx @@ -3,7 +3,11 @@ import Form from './form'; describe('Form', () => { it('renders a form', () => { - render(<Form aria-label="Jest form" onSubmit={() => null}></Form>); + render( + <Form aria-label="Jest form" onSubmit={() => null}> + Fields + </Form> + ); expect(screen.getByRole('form', { name: 'Jest form' })).toBeInTheDocument(); }); }); diff --git a/src/components/atoms/forms/form.tsx b/src/components/atoms/forms/form.tsx index 8e80930..ef8dce4 100644 --- a/src/components/atoms/forms/form.tsx +++ b/src/components/atoms/forms/form.tsx @@ -1,4 +1,4 @@ -import { Children, FC, FormEvent, Fragment } from 'react'; +import { Children, FC, FormEvent, Fragment, ReactNode } from 'react'; import styles from './forms.module.scss'; export type FormProps = { @@ -11,6 +11,10 @@ export type FormProps = { */ 'aria-labelledby'?: string; /** + * The form body. + */ + children: ReactNode; + /** * Set additional classnames to the form wrapper. */ className?: string; diff --git a/src/components/atoms/forms/label.tsx b/src/components/atoms/forms/label.tsx index 8d57ee2..ce4c70f 100644 --- a/src/components/atoms/forms/label.tsx +++ b/src/components/atoms/forms/label.tsx @@ -1,8 +1,12 @@ -import { FC } from 'react'; +import { FC, ReactNode } from 'react'; import styles from './label.module.scss'; export type LabelProps = { /** + * The label body. + */ + children: ReactNode; + /** * Add classnames to the label. */ className?: string; diff --git a/src/components/atoms/forms/select.tsx b/src/components/atoms/forms/select.tsx index 25e86e0..dbe9b37 100644 --- a/src/components/atoms/forms/select.tsx +++ b/src/components/atoms/forms/select.tsx @@ -1,4 +1,4 @@ -import { ChangeEvent, SetStateAction, VFC } from 'react'; +import { ChangeEvent, FC, SetStateAction } from 'react'; import styles from './forms.module.scss'; export type SelectOptions = { @@ -60,7 +60,7 @@ export type SelectProps = { * * Render a HTML select element. */ -const Select: VFC<SelectProps> = ({ +const Select: FC<SelectProps> = ({ className = '', options, setValue, |
