From a6ff5eee45215effb3344cb5d631a27a7c0369aa Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Fri, 22 Sep 2023 19:34:01 +0200 Subject: refactor(components): rewrite form components --- src/components/atoms/forms/form/form.test.tsx | 13 +++++++++++++ src/components/atoms/forms/form/form.tsx | 28 +++++++++++++++++++++++++++ src/components/atoms/forms/form/index.ts | 1 + 3 files changed, 42 insertions(+) create mode 100644 src/components/atoms/forms/form/form.test.tsx create mode 100644 src/components/atoms/forms/form/form.tsx create mode 100644 src/components/atoms/forms/form/index.ts (limited to 'src/components/atoms/forms/form') diff --git a/src/components/atoms/forms/form/form.test.tsx b/src/components/atoms/forms/form/form.test.tsx new file mode 100644 index 0000000..08165f5 --- /dev/null +++ b/src/components/atoms/forms/form/form.test.tsx @@ -0,0 +1,13 @@ +import { render, screen } from '../../../../../tests/utils'; +import { Form } from './form'; + +describe('Form', () => { + it('renders a form', () => { + render( +
null}> + Fields +
+ ); + expect(screen.getByRole('form')).toBeInTheDocument(); + }); +}); diff --git a/src/components/atoms/forms/form/form.tsx b/src/components/atoms/forms/form/form.tsx new file mode 100644 index 0000000..86481d2 --- /dev/null +++ b/src/components/atoms/forms/form/form.tsx @@ -0,0 +1,28 @@ +import { + type FormHTMLAttributes, + forwardRef, + type ForwardRefRenderFunction, +} from 'react'; + +export type FormRole = 'form' | 'search' | 'none' | 'presentation'; + +export type FormProps = FormHTMLAttributes & { + /** + * An accessible role. + */ + role?: FormRole; +}; + +const FormWithRef: ForwardRefRenderFunction = ( + { children, ...props }, + ref +) => ( +
+ {children} +
+); + +/** + * Form component. + */ +export const Form = forwardRef(FormWithRef); diff --git a/src/components/atoms/forms/form/index.ts b/src/components/atoms/forms/form/index.ts new file mode 100644 index 0000000..698d687 --- /dev/null +++ b/src/components/atoms/forms/form/index.ts @@ -0,0 +1 @@ +export * from './form'; -- cgit v1.2.3